Attività: sviluppo del software necessario per implementare il gioco
“Teseo”
Si definisca una classe Labirinto che implementa un "labirinto". Un labirinto è una matrice quadrata di dimensione n in cui ogni cella può essere spazio percorribile o muro. Nel labirinto e' posto un eroe.
Si preveda un metodo che sposta l'eroe nella direzione verso cui è rivolto (uno dei 4 lati del labirinto) fin quando è possibile; lo spostamento in una casella e' possibile solo se la casella destinazione non è muro.
Se nella casella destinazione c'è il muro l'eroe ruota di novanta gradi verso destra e continua. Il gioco termina quando l'eroe riesce ad uscire dal labirinto (si trascurino i problemi di non terminazione dovuti a configurazioni bloccate).
Si definisca poi una classe LabirintoConMostro che estende la precedente aggiungendo un mostro all'interno del labirinto. Le regole sono come prima, con in più il fatto che ora il gioco termina anche nel caso in cui l'eroe finisca nella casella occupata dal mostro e venga quindi mangiato.
Si definisca infine una classe LabirintoConMostroInMovimento che estende la precedente premettendo anche al mostro di muoversi all'interno del labirinto. Le regole di movimento del mostro sono le stesse previste per l’eroe. Il mostro e l’eroe fanno una mossa ciascuno alternativamente ed in gioco termina con le stesse regole fissate per la classe LabirintoConMostro.
Formichi, Meini – Corso di informatica © 2013 Zanichelli Editore S.p.A.