Vai alla Home Page About me Courseware Federica Living Library Federica Federica Podstudio Virtual Campus 3D Le Miniguide all'orientamento Gli eBook di Federica La Corte in Rete
 
 
Il Corso Le lezioni del Corso La Cattedra
 
Materiali di approfondimento Risorse Web Il Podcast di questa lezione

Aniello Murano » 10.Esercitazione di laboratorio su Liste Doppiamente puntate


Liste puntate doppie (remind)

Una Lista doppiamente puntata è un insieme dinamico in cui ogni elemento ha uno o più campi contenenti informazioni e due riferimenti, uno all’elemento successivo (next) della lista ed uno all’elemento precedente (prev) della lista.

Liste puntate doppie (remind)

Liste puntate doppie (remind)


Esercizio

Si implementi in linguaggio C un menù di scelta multipla per la simulazione di un gioco, simile ad una battagli navale e di seguito descritto, su una scacchiera di 6 x 6 celle di interi. Pertanto:

Si implementi una funzione che permetta la creazione di una scacchiera 6 x 6 utilizzando una struttura lista a puntatori, tramite il comando struct.

Dunque ogni cella può avere quattro successori: su, giù, dx e sx, che simulano lo spostamento nelle quattro direzioni.

Esercizio

Si implementi una funzione che permette di riempire tutte le celle della scacchiera (per semplicità anche manualmente) nel seguente modo:

  • 5 celle con valore 1
  • 5 celle con valore 2
  • Tutte le altre con valore 0

Si implementi inoltre una funzione che permetta di visualizzare a video la scacchiera 6 x 6 costruita con la precedente funzione

Esercizio

Si implementi una funzione che inserendo da tastiera i valori 8 (per su), 2 (per giù) 4 (per sinistra) e 6 (per destra), simuli il relativo movimento da una cella ad un’altra sulla scacchiera

Esercizio

Infine, utilizzando una variabile (contatore) punteggio, con una funzione in linguaggio C si simuli il gioco che deve procedere come segue. Il giocatore partendo dal centro della scacchiera può muovere per 10 volte e:

  • se si incontra il valore 1, la variabile punteggio viene incrementato di 1, il valore del nodo è posto a 0 e il gioco riparte dalla cella di arrivo;
  • se si incontra il valore 2, la variabile punteggio viene incrementato di 1, il nodo rimosso (ripristinando tutti i collegamenti (ponti) su quel nodo) e il gioco riparte dalla cella da cui si era effettuata la mossa (dunque la mossa non ha effetto).

Negli altri casi, il valore della variabile punteggio rimane invariato e il gioco riparte dalla cella di arrivo.

Esercizio

Il risultato finale del gioco sarà:

Il giocatore vince se punteggio è maggiore o uguale a 5.
L’esercizio completo va consegnato via mail al tutor entro 3 giorni lavorativi

  • Contenuti protetti da Creative Commons
  • Feed RSS
  • Condividi su FriendFeed
  • Condividi su Facebook
  • Segnala su Twitter
  • Condividi su LinkedIn
Progetto "Campus Virtuale" dell'Università degli Studi di Napoli Federico II, realizzato con il cofinanziamento dell'Unione europea. Asse V - Società dell'informazione - Obiettivo Operativo 5.1 e-Government ed e-Inclusion