Sequenza Selezione Iterazione Funzioni Ricorsione Operat. su interi Stringhe Vettori Array
Tabelle File Liste Alberi Esami Maturità Preparazione esami Database Macchina di Turing Automi
Algebra Geometria Giochi            

Esercizi sui Giochi

 

1

Gioco Mastermind.

Si gioca in due. Il primo giocatore pensa un numero formato da 4 cifre fra loro differenti. Il secondo giocatore deve indovinare il numero. Ad ogni tentativo del secondo giocatore, il primo deve rispondere con una E per ogni cifra esatta e posizionata correttamente e con una A per ogni cifra esatta ma non correttamente posizionata.

Ad esempio: sia da indovinare 1 2 3 4 e il secondo giocatore dica 1 3 4 7. La risposta è E A A (E per la cifra "1" e A A per le cifre "3" e "4").

Scrivere un programma nel quale l'elaboratore simuli il 1º giocatore.

[N = TRUNC(RANDOM*10) in PASCAL è l'istruzione che genera numeri compresi fra 0 e 9 (le cifre del numero); si controlli che le cifre siano fra loro differenti]

2

Gioco dei cerini.
Posti 15 cerini su un tavolo, due giocatori, a turno, devono togliere 1, 2 o 3 cerini. Perde chi toglie l'ultimo cerino.

3

Gioco dei cerini. (variante)

Vi sono due giocatori e 25 cerini in tavola. Ogni giocatore a turno può togliere da 1 a 4 cerini; vince chi, alla fine, avrà raccolto un numero pari di cerini. Provate il gioco con un vostro compagno e cercate di delineare una strategia vincente.

4

Gioco della "conta".

Vi sono N ragazzi disposti in cerchio. Iniziando da una posizione definita e fissata in modo pseudo-casuale un intero M (1 < M < 100) si inizia a fare la "conta" contando in cerchio.

Ogni M-simo ragazzo viene escluso dal gioco e il cerchio si restringe. Vince l'ultimo ragazzo rimasto. Scrivere un programma che realizzi la situazione descritta e stampi l'elenco degli esclusi.

5

Un gioco a carte.

Si gioca con un normale mazzo di 52 carte, con le seguenti regole:

  1. si affrontano 2 giocatori;

  2. vengono date 5 carte;

  3. le combinazioni vincenti sono: poker, tris, coppia (asso=minimo - re=massimo);

  4. i giocatori puntano 1000 lire ogni mano e in caso di parità il piatto rimane in tavola.

Scrivere un programma che simuli in modo pseudo casuale 10 mani di una partita, stampi le carte di ogni giocatore e gestisca il montepremi.

6

Slot-machine.

Si deve simulare il funzionamento di una "slot-machine". La macchina ha 4 simboli a disposizione: $, !, *, ?

Questi simboli compaiono a gruppi di 3 in modo casuale con possibilità di ripetizione.

Si hanno vincite :

  • per tre simboli uguali;

  • per 2 $ e un terzo simbolo qualunque;

  • per 2 ! e un terzo simbolo qualunque;

Le vincite sono di valore decrescente nell'ordine che segue: 3$, 3!, 3*, 3?, 2$ e x, 2! e x.

Le vincite partono da 10 dollari e sono nell'ordine: 10, 8, 6, 6, 5, 5.

Per ogni gioco non riuscito si perdono 2 dollari. Partendo da un capitale iniziale di 100 dollari eseguire ripetutamente il gioco per un numero massimo di puntate (100 puntate) o fino alla perdita del capitale iniziale. Stampare le singole uscite, la vincita o la perdita ad ogni gioco, il capitale attuale, il numero di giochi eseguiti fino a quel momento.

7

Gioco degli 11 fiammiferi.

Il gioco comincia con 11 fiammiferi disposti sul tavolo. Due giocatori, alternativamente, possono raccogliere 1, 2 o 3 fiammiferi. Vince il giocatore che costringe l'avversario a raccogliere l'ultimo fiammifero. Determinare la strategia di gioco che permette al giocatore che apre il gioco di vincere sicuramente e realizzare un programma che simuli una partita tra il calcolatore e l'operatore e che permetta al calcolatore di ottenere delle vincite. Si generalizzi quindi il gioco, e quindi il programma, in modo tale che il numero dei fiammiferi sia variabile e possa essere deciso al momento in cui si gioca.

8

Fare un programma che mi permetta di giocare nel seguente modo: io penso un numero naturale compreso tra due limiti fissati, e il computer deve indovinare tale numero nel minor numero di tentativi: mi possono essere fatte delle domande alle quali posso rispondere solo con un sì o un no.

Il programma dovrà anche controllare che l'utente non fornisca risposte contraddittorie.

9

Un numero casuale compreso tra 1 e 1000 viene generato dall'elaboratore. L'utente dovrà indovinarlo, sulla base di risposte del tipo TROPPO ALTO o TROPPO BASSO. Indovinato il numero, o dopo un massimo di 15 tentativi, dovrà apparire la richiesta di ripetizione.

10

Inventare due giochi e scrivere i relativi programmi basati sulla generazione pseudo-casuale dei numeri.

11

Lo Yathzee

Lo Yathzee è un antico gioco cinese con i dadi: si gioca con 5 dadi da parte di 2 o più giocatori. Ogni giocatore dispone di una tabella formata di 13 caselle:

  1. somma degli 1

  2. somma dei due

  3. somma dei 3

  4. somma dei 4

  5. somma dei 5

  6. somma dei 6

  7. tre di un tipo

  8. quattro di un tipo

  9. full (3 + 2)

  10. quattro in scala

  11. cinque in scala

  12. cinque uguali (yathzee)

  13. totale punti

Lo scopo del gioco è quello di riempire al meglio le 13 caselle. Ogni giocatore a turno lancia 5 dadi e può rilanciarne 1 sola volta da 1 a 5, a questo punto è costretto a riempire una delle tredici caselle a sua disposizione.

I punteggi per i), l), m), n), sono fissi: 25, 30, 40, 50 punti, rispettivamente, mentre per le altre caselle i punteggi mutano.

Si abbia per esempio:

si ha

a) 0, b) 6, c) 0, d) 0, e) 5, f) 6, g) 6, h) 0, o) 17
 

2

 

2

 

2

 

5

 

6


Se invece si avesse

5

 

5

 

5

 

5

 

3

a) 0, b) 0, c) 3, d) 0, e) 20, f) 0, g) 15, h) 20, o) 23.


Ad ogni turno di lanci ogni giocatore deve riempire una casella della propria tabella (eventualmente mettendo zero), diversa da quelle già utilizzate.

Si effettuano 13 turni di lanci e vince il giocatore che raggiunge la somma più elevata di punti delle tredici caselle.

i] predisporre una tabella per il gioco;

ii] giocate con dadi veri con i vostri compagni alcune partite;

iii] scrivete un programma per la simulazione del lancio del dado in modo che sia il computer a effettuare il lancio di 5 dadi e rilanci una seconda volta i dadi richiesti.

Scrivere l'intero programma yathzee

i] predisporre la tabella secondo il numero dei giocatori;

ii] lancia i dadi, rilancia i dadi richiesti;

iii] richiede che tipo di scelta si intende operare (a)....o));

iv] controlla e assegna il punteggio;

v] calcola i totali e proclama il vincitore.

 

12

Misuratore di riflessi

Simulare con un programma un misuratore di riflessi così concepito: generare n segnali acustici ad intervalli irregolari compresi fra un certo tempo minimo e massimo. Dopo ogni segnale acustico l'utente ha 0.3 secondi di tempo per battere un tasto. Alla fine dare la percentuale di errori commessi.

13

Misuratore di riflessi

Realizzare un misuratore di riflessi così concepito: sullo schermo appaiono di continuo lettere ad intervalli casuali che bisogna ribattere sulla tastiera entro 0.5 secondi pena il conteggio di un errore. In qualche angolo dello schermo si deve vedere continuamente il numero degli errori e la percentuale degli errori.

14

Un segnale acustico avverte che è iniziato un conteggio temporale interno; quando si riterranno passati 30 secondi, dovrà essere premuto un tasto che causerà la cessazione del conteggio. Dovranno venir visualizzati sia il tempo effettivo che il tempo presunto, e le differenze tra i itempi con l'indicazione se in eccesso o in difetto.

15

Ruba mazzetto

Simulare il gioco di carte «ruba mazzetto» in cui la macchina svolge alternativamente il ruolo di un giocatore A e del suo avversario B. Le regole del gioco sono le seguenti: «dopo aver mescolato il mazzo e distribuito metà carte a testa, i giocatori scoprono a turno una carta (estraendola dalla testa del proprio mazzo) su una pila (inizialmente vuota) fino a quando un giocatore X scopre una carta avente valore x = 1, 2 o 3 di un seme qualsiasi. Il giocatore avversario Y deve allora versare x carte sulla pila estraendole dalla testa del proprio mazzo. Se nessuna di queste ha un valore pari a 1, 2, 3 allora tutta la pila viene rovesciata e messa in coda al mazzo del giocatore X. Se invece, durante questa fase, Y scopre una carta con valore 1, 2, 3 allora Y passa la mano ad X che deve rispondere allo stesso modo e così via fino a quando non vengono estratte delle carte prive dei valori 1, 2, 3. Perde chi resta senza carte».

16

Filetto

Preparare un programma che consenta a due giocatori di utilizzare lo schermo per una partita a tris (filetto).

 

X

O

 

X

O

X

O

 

Nel gioco del filetto vince chi completa per primo una riga, colonna o una diagonale principale di una matrice 3 x 3 con il proprio simbolo ('O' o 'X').

17

Gioco dell'impiccato

Il gioco dell'impiccato consiste nell'indovinare una parola segreta pensata da un altro giocatore lettera dopo lettera. Se la lettera annunciata compare nella parola, va evidenziato il posto che occupa, altrimenti si inizia a disegnare la figura di un impiccato, composta da faccia, braccia, gambe e piedi. Se l'impiccato viene completamente disegnato, chi doveva disegnare ha perso. Automatizzare questo popolare giochetto.

(Anche non grafico)

18

Tombola

Simulare a video il tabellone del gioco della tombola. Ad ogni estrazione i numeri (da 1 a 90), dovranno essere visualizzati nella giusta posizione.

Controllare che un numero non sia già uscito.
 

19

Battaglia navale

Realizzare una macchina che consenta di condurre il gioco della battaglia navale tra la macchina stessa e l'utente. STabilire casualmente chi inizia il gioco.