Lab X: Battaglia Navale

Slides:



Advertisements
Presentazioni simili
IL PIANO CARTESIANO ED ELEMENTI
Advertisements

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: Marzo 2013 Marco D. Santambrogio – Gianluca Durelli -
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
Process synchronization
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 9 Agosto 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 6: 16 Maggio 2013 Gianluca Durelli – Marco D. Santambrogio –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2: 04 Aprile 2013 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Stringhe e tipi di dati strutturati Marco D. Santambrogio – Ver. aggiornata al.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2: 25 Marzo 2013 Marco D. Santambrogio – Gianluca Durelli -
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5: 29 Aprile 2013 Gianluca Durelli – Marco D. Santambrogio –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 8 Aprile 2013 Marco D. Santambrogio – Gianluca Durelli -
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 11 Aprile 2013 Marco D. Santambrogio – Gianluca Durelli -
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE ExtraLab 6: I corsi del SIT Marco D. Santambrogio – 13 Maggio 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 18 Aprile 2013 Gianluca Durelli – Marco D. Santambrogio –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 6: 13 Maggio 2013 Gianluca Durelli – Marco D. Santambrogio –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Tipi di dati strutturati Marco D. Santambrogio – Ver. aggiornata al 4 Marzo 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Funzioni e Procedure Marco D. Santambrogio – Ver. aggiornata al 18 Aprile 2012.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 6 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 7: 10 Giugno 2013 Gianluca Durelli – Marco D. Santambrogio –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE ExtraLab 3: Partiamo con il SIT! Marco D. Santambrogio – 15 Aprile 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 24 Ottobre 2011 Sadegh Astaneh – Marco D. Santambrogio –
Process synchronization
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE ExtraLab 4: Partiamo con il SIT! Marco D. Santambrogio – 19 Aprile 2013.
Process synchronization
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ulitma lezione… fine corso IEIM 2013 Marco D. Santambrogio – Ver. aggiornata al.
Lezione 17 maggio 2007 Parametri da linea di comando FILE Strutture (introduzione)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 6 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Script 1 Marco D. Santambrogio – Ver. aggiornata al 2 Dicembre 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 7: 13 Giugno 2013 Gianluca Durelli – Marco D. Santambrogio –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 8 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5: 29 Aprile 2013 Gianluca Durelli – Marco D. Santambrogio –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5: 29 Aprile 2013 Gianluca Durelli – Marco D. Santambrogio –
Milano, 17 Dicembre 2013 Informatica B Informatica B Matlab Laboratorio del 14/01/2014 Responsabili di laboratorio: Gianluca Durelli:
Milano, 10 Dicembre 2013 Informatica B Informatica B Matlab Laboratorio del 10/12/2013 Responsabili di laboratorio: Gianluca Durelli:
Informatica B Matlab Laboratorio del 17/12/2013
Milano, 17 Dicembre 2013 Informatica B Informatica B Matlab Laboratorio del 14/01/2014 Responsabili di laboratorio: Gianluca Durelli:
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Esercitazione 1 Marco D. Santambrogio – Ver. aggiornata al 9 Aprile 2014.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: Marzo 2014 Marco D. Santambrogio – Gianluca Durelli -
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 13 Marzo 2014.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 20 Ottobre 2014.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 31 Marzo 2014 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 7: 16 Giugno 2014 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 3 Aprile 2014 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5: 24 Aprile 2014 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 10 Aprile 2014 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 27 Marzo 2015.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 7 Aprile 2014 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2: 27 Marzo 2014 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA Lab 2: 20 Aprile 2015 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 L Aprile 2015 Marco D. Santambrogio – Gianluca Durelli -
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3 L Aprile 2015 Marco D. Santambrogio – Gianluca Durelli -
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA Lab 4: 11 Maggio 2015 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4 L Maggio 2015 Marco D. Santambrogio – Gianluca Durelli -
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA Lab 6: 22 Giugno 2015 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA Lab 3: 27 Aprile 2015 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA Lab 5: 18 Maggio 2015 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5: 14 Aprile 2014 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Librerie… Marco D. Santambrogio – Ver. aggiornata al 20 Luglio 2015.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 – Info B Marco D. Santambrogio – Matteo Ferroni –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1 – Info B Marco D. Santambrogio – Matteo Ferroni –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4 – Info B Marco D. Santambrogio – Matteo Ferroni –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4 – Info B Marco D. Santambrogio – Matteo Ferroni –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 – Info B Marco D. Santambrogio – Matteo Ferroni –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Esercitazione pre 1ma prova in itinere Marco D. Santambrogio – Ver. aggiornata.
Transcript della presentazione:

Lab X: Battaglia Navale Process synchronization Operating System Lab X: Battaglia Navale Gianluca Durelli – durelli@elet.polimi.it Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Maggio 2013 © 2005 William Fornaciari

Argomenti Argomenti di questo laboratorio: Obiettivo: Funzioni Strutture dati Obiettivo: Risolvere gli esercizi 1 e 2

Battaglia Navale Definizione strutture dati Inizializzazione partita Disegna tabellone di gioco Esegui mossa giocatore Controlla vincitore Gestione dell’intera partita

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

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, l’importante è inizializzare le strutture dati. La rappresentazione è oggetto del prossimo esercizio

Esercizio 3 – Disegna tabellone di gioco Si rappresenti il tabellone di gioco definito a valle dell’inizializzazione dell’esercizio 2 Si sfruttino le funzioni già presenti nel file sorgente, e presentate a lezione: disegna_schermo disegna_linea …

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 dell’altro giocatore

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

Esercizio 6 – Gestione dell’intera 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

BUON LAVORO!