La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab X: Battaglia Navale Gianluca Durelli – Marco D. Santambrogio –

Presentazioni simili


Presentazione sul tema: "DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab X: Battaglia Navale Gianluca Durelli – Marco D. Santambrogio –"— Transcript della presentazione:

1 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab X: Battaglia Navale Gianluca Durelli – Marco D. Santambrogio – Ver. aggiornata al 12 Maggio 2013

2 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEArgomenti Argomenti di questo laboratorio: Funzioni Strutture dati Obiettivo: Risolvere gli esercizi 1 e 2 2

3 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Battaglia Navale Definizione strutture dati Inizializzazione partita Disegna tabellone di gioco Esegui mossa giocatore Controlla vincitore Gestione dellintera partita 3

4 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Esercizio 1 – Definizione strutture dati Si definiscano le strutture dati per la gestione della battaglia navale: 2 Giocatori Ogni giocatore ha: Un nome Un tabellone su cui posizionare le navi (TabelloneNavi) Un tabellone su cui segnare i risultati delle sue mosse (colpito, affondato, mancato) (TabelloneRisultati) Un insieme di navi di diverso tipo e dimensione: –Sottomarino: lunghezza 1 –Incrociatore: lunghezza 2 –Portaerei: lunghezza 4 Ogni nave: Ha una posizione nel tabellone (x,y) E messa in una direzione (orizzontale o verticale) Può essere o meno affondata E di un particolare tipo: –Sottomarino, Incrociatore, Portaerei Regole generali: La dimensione del campo da gioco e il numero di navi per ogni tipo è un parametro definibile a priori Le navi possono essere posizionate sul tabellone in orizzontale oppure verticale Le navi non possono sovrapporsi tra loro 4

5 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Esercizio 2 – Inizializzazione partita Si scriva il codice necessario per dare inizio ad una partita: Richiesta dati dei giocatori: Nome Posizione iniziale delle navi: –Per ognuna delle navi da posizionare vengono richieste le coordinate x ed y e la direzione (orizzontale o verticale) –La nave viene posizionata a partire dalla posizione x,y e muovendosi nel verso delle x crescenti (orizzontale) oppure y crescenti (verticale) Suggerimento: Si usino 2 funzioni: Una per la richiesta dei dati Una per controllare che data una nave ed un tabellone questa non vada a sovrapporsi a navi già presenti –In caso contrario si proceda alla richiesta di nuove corrdinate dove posizionare la nave Nota: Non è necessario rappresentare graficamente le navi, limportante è inizializzare le strutture dati. La rappresentazione è oggetto del prossimo esercizio 5

6 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Esercizio 3 – Disegna tabellone di gioco Si rappresenti il tabellone di gioco definito a valle dellinizializzazione dellesercizio 2 Si sfruttino le funzioni già presenti nel file sorgente, e presentate a lezione: disegna_schermo disegna_linea … 6

7 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Esercizio 4 - Esegui mossa giocatore Scrivere la parte di codice necessaria a realizzare una mossa del gioco: Richiesta coordinate dove colpire Controllo risultato mossa: Colpito Colpito ed affondato Mancato Aggiornamento del TabelloneRisultati del giocatore che fa la mossa Eventuale aggiornamento del TabelloneNavi dellaltro giocatore 7

8 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Esercizio 5 – Controllo vincitore Scrivere una funzione che determina se la partita è stata vinta da qualcuno oppure è necessario continuare a giocare: Una partita si dichiara vinta dal giocatore A quando questo ha affondato tutte le navi del giocatore B 8

9 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Esercizio 6 – Gestione dellintera partita Scrivere una funzione che gestista la partita. La funzione combina le funzioni scritte negli esercizi precedenti: Inizializza le strutture dati Inizia un ciclo in cui ad ogni iterazione: Si disegna il tabellone Viene chiesta la mossa al giocatore corrente Il gioco viene aggiornato con il risultato della mossa Viene controllato se la partita ha un vincitore –In questo caso il ciclo termina Si stampano le informazioni relative al vincitore della partita 9

10 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE BUON LAVORO! 10


Scaricare ppt "DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab X: Battaglia Navale Gianluca Durelli – Marco D. Santambrogio –"

Presentazioni simili


Annunci Google