Robocode: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Bot: manutenzione template portale |
Recupero di 2 fonte/i e segnalazione di 0 link interrotto/i.) #IABot (v2.0.9.5 |
||
(36 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'[[intelligenza artificiale]] del proprio robot.
▲{{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.
== Altri progetti ==
{{interprogetto}}
== Collegamenti esterni ==
* {{Collegamenti esterni}}
*
*
*
*
*
*
*
*
*
*
*
*
{{portale|informatica|software libero|videogiochi}}
[[Categoria:
|