Robocode: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Bot: Aggiungo: bg:Robocode |
Recupero di 2 fonte/i e segnalazione di 0 link interrotto/i.) #IABot (v2.0.9.5 |
||
(39 versioni intermedie di 21 utenti non mostrate) | |||
Riga 1:
{{O|software|ottobre 2018}}
'''Robocode''' è un progetto [[open source]] il cui scopo è insegnare la programmazione in [[Java_(linguaggio)|Java]] divertendo.▼
|Logo =
|Screenshot = Robocode-logo.png
|Didascalia = Logo del progetto
|UltimaVersione = 1.8.2.0
|DataUltimaVersione = 2-06-2013
|UltimaVersioneBeta =
|DataUltimaVersioneBeta =
|SistemaOperativo = multipiattaforma
|Genere = Edutainment
|SoftwareLibero = sì
|Lingua =
}}▼
{{Citazione|Build the best, destroy the rest!| Motto di Robocode}}
▲'''Robocode''' è un progetto [[open source]] il cui scopo è insegnare la programmazione in [[
L'apprendimento avviene attraverso un gioco che consiste nel programmare un [[robot]] e farlo competere in un'arena contro altri robot, identici ma programmati differentemente.
Il giocatore è il programmatore del robot e influenza indirettamente il gioco realizzando l'[[
▲{{Infobox Software
▲| nome = Robocode
▲| sviluppatore = Mathew Nelson, Flemming N. Larsen
▲| licenza = [[Common Public License]]
▲}}
== Storia ==
Robocode è stato creato da un ricercatore del campus [[IBM]] di [[Cambridge]], Mat Nelson.
Robocode è sviluppato dal 2006 da Flemming N. Larsen sotto [[Common Public License]], una licenza per software open source pubblicata da IBM.
== Aspetti didattici ==
Lo scopo primario di Robocode è di insegnare la programmazione in Java:
il giocatore affronta lo sviluppo di algoritmi che consentano ai robot di mostrare un'abilità intelligente all'interno del dominio specifico di Robocode.
I giocatori alle prime armi imparano le conoscenze basilari, come [[ereditarietà]], [[polimorfismo (informatica)|polimorfismo]], gestione degli eventi, [[
Il motore grafico che realizza la simulazione delle battaglie offre la possibilità di "vedere" gli effetti degli algoritmi ideati; in questo modo il giocatore partecipa attivamente alla costruzione della conoscenza.
Anche se Robocode non è un simulatore ideale, la sua semplicità l'ha reso popolare.
Inoltre è possibile comparare il proprio lavoro con quello di migliaia di Robocoders (sviluppatori di robot).
Per eseguire in tutta sicurezza il codice dei robot programmati da altre persone, Robocode è stato realizzato come una [[sandbox]] e tutti i robot hanno restrizioni nell'uso della macchina in cui sono eseguiti.
È da rilevare che in Robocode non sono presenti sangue, persone o riferimenti politici. Le battaglie avvengono per il divertimento intrinseco nelle competizioni.
Riga 49 ⟶ 50:
In Robocode dei carri armati (i robot) combattono in una battaglia che avviene in un rettangolo chiamato arena di dimensioni variabili e circondato da mura. La dimensione dell'arena è di 800x600 pixel ma può essere modificata; i robot hanno dimensione fissa di 36x45 pixel.
Una battaglia consiste in un numero di [[ripresa (pugilato)|round]] prefissato dall'utente.
Il vincitore della battaglia è il robot che, al termine di tutti i round, ha ottenuto il punteggio più alto.
Un round termina quando tutti i robot tranne uno sono stati distrutti: il "sopravvissuto" è il vincitore.
I robot iniziano ogni round con un livello di energia pari a 100 e sono distrutti quando questa scende sotto zero.
==== I turni ====
Robocode si basa sul concetto di turni.
In ogni turno tutti i robot hanno un limitato ammontare di tempo per scegliere la propria azione. Quando un robot ha completato il suo turno, le sue azioni sono effettivamente eseguite in modo sequenziale.
Se un robot eccede nell'utilizzo del tempo limite di un turno, perde il diritto di eseguire azioni in quel turno. Se in un round questo avviene più di trenta volte, il robot è distrutto dal sistema e perde quel round.
Riga 64 ⟶ 65:
I robot combattono sparandosi utilizzando un cannone.
Sono inoltre equipaggiati di un radar con il quale "vedono" gli altri robot fino a una distanza di 1200 [[pixel]].
[[
===== Il radar =====
Riga 70 ⟶ 71:
Alcune di queste informazioni sono velocità, distanza (in pixel), nome ed energia, direzione e posizione. Queste ultime due informazioni sono simili a quelle usate nell'orientamento e in [[topografia]]: in Robocode lo zero degli angoli è verso l'alto, come se fosse una [[bussola]], e non verso destra come in [[trigonometria]].
<!-- TO DO: ci vorrebbe
{| border=1
|+ Sistema di riferimento di un robot nell'arena.
Riga 94 ⟶ 95:
===== Il cannone =====
Il cannone può sparare con una potenza di fuoco variabile e, in proporzione alla potenza usata, è sottratta energia al robot che spara.
Se il proiettile colpisce un avversario, il robot che ha sparato guadagna energia proporzionalmente alla potenza del proiettile.
Riga 115 ⟶ 116:
===== I movimenti del carro armato =====
I robot si muovono con
Velocità positiva indica movimento in avanti e velocità negativa indica indietreggiamento.
La massima velocità dei robot è pari a 8 pixel/turno.
Se due robot collidono, essi perdono 0.6 punti energia. Se un robot urta un avversario con la parte frontale del veicolo mentre procede, muovendosi in avanti, la mossa è considerata ramming (speronamento).
Quando un robot effettua ramming gli viene attribuito un punteggio aggiuntivo.
==== Il sistema di punteggio ====
Riga 148 ⟶ 149:
* '''Melee''': tre o più robot lottano tutti contro tutti.
* '''Teams''': due o più squadre, composti ciascuno da cinque robot collaboranti.
=== RoboRumble@Home ===
La competizione più importante è la RoboRumble@Home, basata su un sistema distribuito simile al [[SETI@home]]. La RoboRumble@Home permette di eseguire combattimenti di tipo 1-on-1, Melee e Teams. I combattimenti Melee e 1-on-1 sono disponibili per tutte e quattro le tipologie di robot.
==
{{interprogetto}}
* [http://www.ibm.com/developerworks/java/library/j-robocode/ Serie di articoli introduttivi dell’IBM]▼
* [http://www.ibm.com/developerworks/library/j-robotips/index.html Suggerimenti e strategie dell'IBM]▼
* [http://robowiki.net/ RoboWiki]▼
* [http://robowiki.net/w/index.php?title=Robocode/FAQ FAQ per Robocoders]▼
* [http://robowiki.net/w/index.php?title=RoboRumble RoboRumble@Home]▼
* [http://www.robocode.ie/ Competizione irlandese di Robocode]▼
* [http://www.robocode.de/ Sito tedesco di Robocode]▼
* [http://jgap.sourceforge.net/doc/robocode/robocode.html Robocode e JGAP (Java Genetic Algorithms and Genetic Programming Package)]▼
== Collegamenti esterni ==
{{portale|informatica}}▼
* {{Collegamenti esterni}}
* {{cita web | 1 = http://www.alphaworks.ibm.com/ | 2 = Laboratorio di ricerca AlphaWorks | accesso = 31 luglio 2009 | dataarchivio = 28 febbraio 2009 | urlarchivio = https://web.archive.org/web/20090228015431/http://www.alphaworks.ibm.com/ | urlmorto = sì }}
* {{cita web | 1 = http://www.alphaworks.ibm.com/tech/robocode | 2 = Sito originario di Robocode | accesso = 31 luglio 2009 | dataarchivio = 20 luglio 2009 | urlarchivio = https://web.archive.org/web/20090720103133/http://www.alphaworks.ibm.com/tech/robocode | urlmorto = sì }}
▲*
▲*
* {{cita web | 1 = http://robocode.org.ru/ | 2 = Sito della comunità russa di Robocode | accesso = 31 luglio 2009 | urlarchivio = https://web.archive.org/web/20090316042627/http://robocode.org.ru/ | dataarchivio = 16 marzo 2009 | urlmorto = sì }}
▲*
* {{cita web | 1 = https://hvilela.blogspot.com/2009/02/robocode-and-genetic-algorithms.html | 2 = Robocode e algoritmi genetici | accesso = 4 maggio 2019 | urlarchivio = https://web.archive.org/web/20160305043612/http://hvilela.blogspot.com/2009/02/robocode-and-genetic-algorithms.html | dataarchivio = 5 marzo 2016 | urlmorto = sì }}
▲{{portale|informatica|software libero|videogiochi}}
[[Categoria:Videogiochi liberi]]
|