Robocode: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
JackieBot (discussione | contributi)
m r2.7.2) (Bot: Aggiungo vi:Robocode
Recupero di 2 fonte/i e segnalazione di 0 link interrotto/i.) #IABot (v2.0.9.5
 
(21 versioni intermedie di 14 utenti non mostrate)
Riga 1:
{{O|software|ottobre 2018}}
{{Software
|Nome = Robocode
|Logo =
|Screenshot = Robocode-logo.png
|Didascalia = Robocode:Logo builddel the best, destroy the rest!progetto
|Sviluppatore = Mathew Nelson, Flemming N. Larsen
|UltimaVersione = 1.78.2.10
|DataUltimaVersione = 052-0806-20102013
|UltimaVersioneBeta =
|DataUltimaVersioneBeta =
|SistemaOperativo = multipiattaforma
|Linguaggio = java
|Genere = Edutainment
|Licenza = [[Common Public License]]
|SoftwareLibero = sì
|Lingua =
|SitoWeb = [http://robocode.sourceforge.net/ robocode.sourceforge.net]
}}
{{Citazione|Build the best, destroy the rest!| Motto di Robocode}}
'''Robocode''' è un progetto [[open source]] il cui scopo è insegnare la programmazione in [[Java (linguaggio di programmazione)|Java]] divertendo.
 
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.
Riga 25:
== Storia ==
Robocode è stato creato da un ricercatore del campus [[IBM]] di [[Cambridge]], Mat Nelson.
RilasciatoPubblicato il [[27 luglio]] [[2001]] utilizzando il laboratorio di ricerca AlphaWorks che rende il tutto disponibile agli utenti.
 
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, [[Classe (informatica)|classi]], mentre i più esperti testano concetti quali [[pattern matching]], algoritmi di ricerca ottimizzati, [[reti neurali]].
 
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.
Quest’approccioQuest'approccio è utilizzato anche in [[Logo (informatica)|LOGO]], un linguaggio di programmazione orientato alla grafica.
 
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 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 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]].
[[ImmagineFile:Robocode tank.gif|frame|right|Il carro armato di Robocode]] Il radar, il cannone e il corpo (l'intero veicolo) del carro armato ruotano di 360 gradi indipendentemente tra loro, oppure il cannone può essere bloccato per seguire la rotazione del veicolo o ancora il radar può essere bloccato per seguire la rotazione del cannone o del veicolo.
 
===== Il radar =====
Riga 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 un’immagineun'immagine.. -->
{| border=1
|+ Sistema di riferimento di un robot nell'arena.
 
Riga 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 116:
 
===== I movimenti del carro armato =====
I robot si muovono con un’accelerazioneun'accelerazione costante e una velocità variabile (in avanti e indietro).
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 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.
 
== Altri progetti ==
{{interprogetto|commons=Robocode}}
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* [http://robocode.sourceforge.net/ Sito ufficiale]
* [{{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ì }}
* [http{{cita web|https://www.ibm.com/developerworks/java/library/j-robocode/ |Serie di articoli introduttivi dell’IBM]}}
* [http{{cita web|https://www.ibm.com/developerworks/library/j-robotips/index.html |Suggerimenti e strategie dell'IBM]}}
* [{{cita web|http://robowiki.net/ |RoboWiki]}}
* [{{cita web|url=http://robowiki.net/w/index.php?title=Robocode/FAQ |titolo=FAQ per Robocoders]}}
* [{{cita web|url=http://robowiki.net/w/index.php?title=RoboRumble |titolo=RoboRumble@Home]}}
* [{{cita web|http://www.robocode.ie/ |Competizione irlandese di Robocode]}}
* [{{cita web|http://www.robocode.de/ |Sito tedesco di Robocode]}}
* [{{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 = http://jgap.sourceforge.net/doc/robocode/robocode.html | 2 = Robocode e JGAP (Java Genetic Algorithms and Genetic Programming Package)] | urlmorto = sì }}
* [http{{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:GiochiVideogiochi software liberoliberi]]
 
[[bg:Robocode]]
[[ca:Robocode]]
[[cs:Robocode]]
[[de:Robocode]]
[[en:Robocode]]
[[fr:Robocode]]
[[ja:Robocode]]
[[pl:Robocode]]
[[pt:Robocode]]
[[vi:Robocode]]