Si consideri il ben noto gioco del sasso-carta-forbici.

 

Lo scopo è sconfiggere l'avversario scegliendo un segno in grado di battere quello dell'altro, secondo le seguenti regole:

  1. Il sasso spezza le forbici (vince il sasso)
  2. Le forbici tagliano la carta (vincono le forbici)
  3. La carta avvolge il sasso (vince la carta)

Se i due giocatori scelgono la stessa arma, il gioco è pari e si gioca di nuovo.

Il seguente m-file realizza una partita di sasso-carta-forbice:

clear;
rng shuffle;
risposta='s';
while (risposta == 's')
a=randi(3);
user=input('Inserisci 1 per sasso, 2 per carta, 3 per forbici: ');
% Controlla se l'input è corretto
while (user~=1 & user~=2 & user~=3)
user=input('Inserisci 1 per sasso, 2 per carta, 3 per forbici: ');
end
% Visualizza cosa ha estratto Matlab
switch(a)
case 1
disp('Matlab: sasso');
case 2
disp('Matlab: carta');
case 3
disp('Matlab: forbici');
end
% Visualizza cosa ha inserito l'utente
switch(user)
case 1
disp('Tu: sasso');
case 2
disp('Tu: carta');
case 3
disp('Tu: forbici');
end
% Controlla chi ha vinto
mat_vincitore=[0 2 1 ; 1 0 2 ; 2 1 0];
vincitore=mat_vincitore(user,a);
% Mostra il vincitore
if (vincitore==0)
disp('Pareggio');
elseif (vincitore==1)
disp('Vinci tu!');
else
disp('Vince Matlab!');
end
risposta=input('Vuoi giocare ancora (s,n)? ');
end
Esercizio PG.1

Prendere il codice inserito nell'm-file e modificarlo realizzando una partita costituita da 10 lanci. Il vincitore sarà ora chi ha ottenuto più vittorie.

Esercizio PG.2

Modificare il codice inserito nell'm-file e modificarlo in modo che il vincitore della sfida sia chi arriva per primo a 10.

Ultime modifiche: domenica, 31 dicembre 2023, 18:21