Games
In questa lezione esploreremo un semplice gioco in cui dei robot si muovono da un nodo all'altro di un grafo attraversando gli archi tra di essi. Il grafo potrebbe rappresentare un labirinto. Ogni robot quando è il suo turno di muoversi riceve in input la lista dei nodi adiacenti al nodo in cui si trova e decide in quale di questi andare (o eventualmente di rimanere fermo). Nel caso di un labirinto è come se il robot vedesse ad ogni incroncio le possibili strade che può prendere. L'obiettivo è di raggiungere prima degli altri robot un tesoro che si trova in un nodo del grafo (ovviamente, non conosciuto). Ogni robot può implementare la sua strategia di gioco e possono essere aggiunti tutti i robot che si vogliono.
Nell'esempio in figura il tesoro è il disco un po' più grande di colore oro. Poi ci sono due robot uno di colore rosso e l'altro di colore blu.
I moduli che implementano il gioco si trovano nel seguente pacchetto. Il modulo rgame
implementa una semplice GUI che mostra una finestra con dei bottoni che permettono di iniziare un nuovo gioco e di visualizzarne l'andamento. Spegazioni più dettagliate si trovano nei commenti del codice. Se si vuole aggiungere un nuovo robot si può scrivere un modulo player3
(o si può modificare uno dei moduli player1
e player2
che implementano due robot di esempio) seguendo sempre le indicazioni contenute nei commenti del codice. E che comunque vedremo nel corso ddella lezione.