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
 
I corsi di Scienze Matematiche Fisiche e Naturali
 
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