Corso di Interfacce Utente - A.A. 2004-2005

PROGETTO DI LABORATORIO

Descrizione dell'applicazione "gioco del labirinto"

Generalita' e scopo del gioco

In questo gioco si ha un labirinto dove si muovono due personaggi: Teseo e il minotauro.

Lo scopo di Teseo e' raggiungere il minotauro prima che questo esca dal labirinto.
Lo scopo del minotauro e' uscire del labirinto prima di essere raggiunto da Teseo.
Il gioco finisce quando Teseo raggiunge il minotauro (e allora ha vinto Teseo) oppure quando il minotauro esce (e allora ha vinto il minotauro).

Il labirinto

Il labirinto e' strutturato come una griglia bidimensionale di caselle.
Ogni parete di confine fra due caselle puo' essere:

Le pareti di contorno della griglia sono tutte muri tranne una che e' libera. La casella che confina con questa parete e' l'uscita del labirinto.
Le pareti del labirinto sono configurate in modo tale che da qualsiasi casella della griglia sia possibile raggiungere l'uscita.

Esempio di labirinto (le linee nere continue sono i muri, le linee nere interrotte sono i buchi, le linee sottili rosse sono i muretti):

Modalita' di gioco

Sono possibili quattro modalita' di gioco:

  1. L'utente manovra Teseo, il minotauto e' manovrato dal sistema
  2. L'utente manovra il minotauro, Teseo e' manovrato dal sistema
  3. Entrambi i personaggi sono manovrati dall'utente
  4. Entrambi i personaggi sono manovrati dal sistema

Movimenti dei personaggi

Inizialmente Teseo e' collocato all'uscita e il minotauro e' collocato al centro del labirinto. Il primo a muovere e' Teseo.

Nel seguito uso la parola "personaggio" per indicare intercambiabilmente Teseo o il minotauro.

In ogni momento un personaggio ha una posizione e una direzione di marcia. Alla prossima mossa puo' decidere di:

Se nella direzione del tentato avanzamento c'e' un muro allora la mossa non e' valida. Se se si esce dal labirinto, allora la mossa e' valida solo se il personaggio e' il minotauro (Teseo non puo' uscire).

Se nella direzione del tentato avanzamento c'e' libero, allora il personaggio avanza effettivamente, spostandosi nella casella accanto.

Se nella direzione del tentato avanzamento c'e' un muretto, allora sara' necessaria un'altra mossa nella stessa direzione per poter avanzare. Il personaggio potra' dunque completare la scavalcata del muretto al prossimo turno.

Se nella direzione del tentato avanzamento c'e' un buco, allora saranno necessarie altre due mosse nella stessa direzione per poter avanzare. Il personaggio potra' dunque completare il passaggio attraverso il buco nei prossimi due turni.

I due personaggi eseguono una mossa per uno. Il sistema, nel manovrare i personaggi, non genera mai mosse non valide. Viceversa l'utente potrebbe generare mosse non valide. Se uno dei due personaggi esegue una mossa non valida, ha consumato una mossa inutilmente.

Fine del gioco

Il gioco termina se l'ultima mossa eseguita ha portato le posizioni di Teseo e del minotauro a coincidere, oppure se l'ultimo a muovere e' stato il minotauro, che si trovava nella casella di uscita, e ha mosso verso l'uscita.