Robocode, imparare a programmare sfidando i propri amici in battaglie fra Robot

Per un programmatore alle prime armi, volenteroso e con molta voglia di imparare c’è sempre l’ostacolo di “sì, ma che cosa programmo?”. Effettivamente seguendo le guide che vengono proposte sui libri del codice scelto, nelle prime 100 pagine viene proposto il classico “Hello World” e poco di più. Ma un geek non può mettersi davanti ad un libro ed aspettare che la conoscenza piova dal cielo… un vero geek la conoscenza se la costruisce!
Per quelli che vogliono avvicinarsi al mondo Java c’è un “programma giochino” che permetterà di imparare divertendosi (soprattutto divertendosi anche dopo aver imparato): Robocode.


Robocode venne proposto inizialmente dall’IBM (non so bene cosa se ne facesse l’IBM di una cosa simile, probabilmente era per il settore di ricerca IBM) e, nel tempo è stato proposto in diversi linguaggi (la prima sintassi del gioco che vidi era in C).
Sostanzialmente, quello che un “giocatore” deve fare, è crearsi il proprio robottino (nella versione per java è più un carroarmato che non un robot) e buttarlo in un arena per farlo combattere contro altri.

La progettazione del robottino corrisponde nient’altro che alla scrittura del codice che gli permetta di muoversi e di reagire agli eventi. Quindi è possibile per esempio, impostare una traiettoria inziale del robot, come può essere “avanti alla velocità x” e poi intercettare eventuali eventi al fine di cambiare il comportamento della propria creatura.
Per esempio se scopro dove si trova il mio avvessario, posso fare in modo che il mio robottino si metta ad inseguirlo sparandogli, oppure, per evitare che sia lui a vincere lo farò inseguire a zig-zag o qualasiasi cosa possa venirvi in mente.
Assicuro che il divertimento, anche per uno come me che il Java lo usa ormai da qualche anno, è assicurato… e la vittoria sui vostri amici non ha prezzo! 🙂

Le battaglie, soprattutto quelle che fate online, contro i robo-programmatori di tutto il mondo, si dividono in categorie.
Il vostro robot potrà essere Megabots se non viene imposta nessuna restrizione alla dimensione del vostro file compilato (anche 10 Mbyte di robot va bene); Minibots impone una dimensione inferiore a 1500 bytes; Microbots dimensione inferiore a 750 bytes; Nanobots inferiore 250 bytes. E’ ovvio che più la dimensione del file deve essere ridotta, meno cose sarà possibile far fare al robot, o comunque qui si vedrà chi dei programmatori riesce ad ottimizzare al meglio il codice, facendo cioè fare molte cose in poche righe di codice.

Chi si aggiudicherà la coppa di “miglior programmatore dell’anno” distruggendo tutti gli avversari/colleghi?
Per qualsiasi informazione, oltre al sito ufficiale di Robocode, vi rimando anche a questa pagina su wikipedia che contiene una serie di utili link per trovare risorse per giocare.

Quando sarete tutti pronti organizzeremo la RoboCode Geekissimo League!!! 🙂