• Non ci sono risultati.

Corso di Informatica Medica

N/A
N/A
Protected

Academic year: 2021

Condividi "Corso di Informatica Medica"

Copied!
40
0
0

Testo completo

(1)

Corso di Informatica Medica

Esercitazione IV

Alessandro A. Nacci

nacci@elet.polimi.it - alessandronacci.com

(2)
(3)

QUANTO FATTO OGGI VERRA’ UTILIZZATO

NELLE PROSSIME LEZIONI!

(4)

Fino ad ora...

x

y 0

% % %

% % %

% % %

% % % %

%

Un  quadrato  di  lato  L  riempie   LxL  caratteri  del  terminale

Una  linea  di  lunghezza  L  riempe  

Un  punto  riempie   un  carattere  del  

terminale

NELLA LEZIONE PRECEDENTE

(5)

Genera quadrato

forma genera_quadrato(int dim, char carattere);

x

y 0

% % %

% % %

% % %

% % % %

%

Un  quadrato  di  lato  L   riempie  LxL  caratteri  

del  terminale

Un  punto  riempie   un  carattere  del  

terminale

Una  linea  di  lunghezza  L  riempe   Lx1  caratteri  del  terminale

(6)

Genera linea

forma genera_linea(int dim,

direzione direzione_linea, char carattere);

x

y 0

% % %

% % %

% % %

% % % %

%

Un  quadrato  di  lato  L   riempie  LxL  caratteri  

del  terminale

Un  punto  riempie   un  carattere  del  

terminale

Una  linea  di  lunghezza  L  riempe   Lx1  caratteri  del  terminale

(7)

Genera punto

forma genera_punto(char carattere);

x

y 0

% % %

% % %

% % %

% % % %

%

Un  quadrato  di  lato  L   riempie  LxL  caratteri  

del  terminale

Un  punto  riempie   un  carattere  del  

terminale

Una  linea  di  lunghezza  L  riempe   Lx1  caratteri  del  terminale

(8)

Genera polinomio

forma genera_polinomio(int a2, int a1, int a0, int dim, char carattere);

x

y 0

% % %

% % %

% % %

% % % %

%

Un  quadrato  di  lato  L   riempie  LxL  caratteri  

del  terminale

Un  punto  riempie   un  carattere  del  

terminale

Una  linea  di  lunghezza  L  riempe   Lx1  caratteri  del  terminale

(9)

PIANO CARTESIANO

(10)

Un semplice videogioco

Scriviamo un programma C che implementi il

gioco del Forza 4

Due giocatori, entrambi

“reali”

Il programma deve

permettere di giocare

Il programma deve

annunciare il vincintore

(11)

Forza 4: rappresentazione

(12)

Forza 4: rappresentazione

Come  facciamo  a  rappresentare  nel  terminale,  con  quello   che  già  conosciamo,  delle  pedine  rosse  e  delle  pedine  nere?

(13)

Forza 4: rappresentazione

%

% #

# # %

(14)

Forza 4: rappresentazione

%

% #

# # %

Quindi  abbiamo  una  matrice,   descritta  da  due  indici  e  

che  contiene  caratteri...

(15)

Forza 4: rappresentazione

%

% #

# # %

x

y 0

Quindi  abbiamo  una  matrice,   descritta  da  due  indici  e  

che  contiene  caratteri...

(16)

Forza 4: rappresentazione

%

% #

# # %

x

y 0

Ma è il PIANO CARTESIANO!

Quindi  abbiamo  una  matrice,   descritta  da  due  indici  e  

che  contiene  caratteri...

(17)

Forza 4: rappresentazione

%

% #

# # %

x

y 0

Ma è il PIANO CARTESIANO!

Generico  forma

di  categoria  F_PUNTO  

Generico  forma

di  categoria  F_PUNTO  

Quindi  abbiamo  una  matrice,   descritta  da  due  indici  e  

che  contiene  caratteri...

(18)

Forza 4: rappresentazione

%

% #

# # %

x

y 0

Ma è il PIANO CARTESIANO!

Generico  forma

di  categoria  F_PUNTO  

Generico  forma

di  categoria  F_PUNTO  

Quindi  abbiamo  una  matrice,   descritta  da  due  indici  e  

che  contiene  caratteri...

POSSIAMO RIUTILIZZARE PRATICAMENTE TUTTO QUELLO CHE ABBIAMO

FATTO NELL’ESERCIZIO PRECEDENTE...

(19)

Forza 4: rappresentazione

%

% #

# # %

x

y 0

Ma è il PIANO CARTESIANO!

Generico  forma

di  categoria  F_PUNTO  

Generico  forma

di  categoria  F_PUNTO  

Quindi  abbiamo  una  matrice,   descritta  da  due  indici  e  

che  contiene  caratteri...

POSSIAMO RIUTILIZZARE PRATICAMENTE TUTTO QUELLO CHE ABBIAMO

FATTO NELL’ESERCIZIO PRECEDENTE...

ECCO A COSA SERVONO LE FUNZIONI! :D

(20)

Cosa manca

(21)

Cosa manca

Anche se possiamo utilizzare buona parte del codice già scritto per il “PIANO

CARTESIANO”, qualche concetto ancora ci manca:

(22)

Cosa manca

Anche se possiamo utilizzare buona parte del codice già scritto per il “PIANO

CARTESIANO”, qualche concetto ancora ci manca:

Come rappresentiamo un GIOCATORE?

(23)

Cosa manca

Anche se possiamo utilizzare buona parte del codice già scritto per il “PIANO

CARTESIANO”, qualche concetto ancora ci manca:

Come rappresentiamo un GIOCATORE?

Come gestiamo l’inserimento di una pedina?

(24)

Cosa manca

Anche se possiamo utilizzare buona parte del codice già scritto per il “PIANO

CARTESIANO”, qualche concetto ancora ci manca:

Come rappresentiamo un GIOCATORE?

Come gestiamo l’inserimento di una pedina?

Come controlliamo la vincita?

(25)

Il giocatore

(26)

Il giocatore

Un giocatore è identificato da:

(27)

Il giocatore

Un giocatore è identificato da:

IL SUO NOME

(28)

Il giocatore

Un giocatore è identificato da:

IL SUO NOME

QUALE PEDINA HA SCELTO

(29)

Il giocatore

Un giocatore è identificato da:

IL SUO NOME

QUALE PEDINA HA SCELTO

(30)

L’inserimento di una pedina

%

% #

# # %

x

y 0

#

(31)

L’inserimento di una pedina

%

% #

# # %

x

y 0

#

(32)

L’inserimento di una pedina

%

% #

# # %

x

y 0

#

Dobbiamo  creare  una  sorta di  effetto  gravita!

(33)

L’inserimento di una pedina: codice C

(34)

Verifica delle vincita

#

# %

% # #

# # % % % %

x

y 0

(35)

Verifica delle vincita

#

# %

% # #

# # % % % %

x

y 0

(36)

Verifica delle vincita

#

# %

% # #

# # % % % %

x

y 0

Dobbiamo  controllare  che,  dato  un  simbolo,  un   vettore  contiene  4  occorrenze  di  quest’ultimo  

(37)

Verifica della vincita

Per verificare una vincinta, dobbiamo prima di tutto saper controllare se, dato un

vettore generico, esistono FORZA=4 occorrenze consecutive di un carattere

‘occorrenza’ dato in ingresso

Con questa funzione potremo poi controllare sia vettori verticali, che orizzontali che obliqui

(38)

Controllo di un generico vettore

Se ho un vettore A, e voglio controllare se qualcuno ha vinto, potrei usare il seguente metodo

Parto dal secondo elemento e, per ogni elemento

Se l’elemento A[i] considerato è uguale al carattere occorrenza ed è uguale all’elemento A[i-1], incremento un contatore occorrenze (occorrenze++)

Se l’elemento A[i] non è uguale ad occorrenza oppure l’elemento A[i] != A[i-1], occorrenze viene riportato a 0 (occorrenze=0)

Ogni qual volta che occorrenze arriva a FORZA-1, nel nostro caso 4-1, vale a dire 3, ho verificato che c’è una vincita

Se non succede mai che occorrenze == FORZA-1, allora non

(39)

Controllo di un generico vettore: codice C

(40)

Tutte il materiale sarà disponibile sul mio sito internet:

alessandronacci.com

Potete lasciare il vostro giudizio qui:

http://tinyurl.com/IEIMExe2013

Riferimenti

Documenti correlati

Si dice che i due punti formano un sistema di riferimento per la retta, il primo punto si dice origine ed il secondo punto si dice punto unita’; il numero reale da cui proviene un

In un palazzo di 100 piani si vuole stabilire qual ` e il piano pi` u alto dal quale ` e possibile lanciare un uovo senza che esso si rompa.. Le uova sono considerate tutte aventi

Dati due file di testo F1.txt e F2.txt, si scriva una funzione bool righe() che restituisce il valore true se i due file hanno lo stesso numero di righe, false altrimenti.. Dati

Ricerca esaustiva: si scandisce il vettore, confrontando gli elementi con quello da cercare, fino a che.. • si sono confrontati tutti gli

• This means that it is possible to define parametric

[r]

La tendenza ad ossidarsi e ridursi genera un flusso di elettroni (e quindi di corrente elettrica) dall’anodo verso

- miglioramenti nella realizzazione del rivestimento vetrato dell’edificio 3 ovvero eventuale esecuzione del rivestimento sulla totalità della facciata Nord, eventuale esecuzione