1. Definizione del problema
Si vuole realizzare un programma che simuli l’estrazione di carte napoletane con queste regole (n.b.: Le carte napoletane hanno: 4 semi e 10 valori (da 1 a 10), quindi ogni valore può comparire al massimo 4 volte (una per ogni seme).
Il gioco funziona così:
-
L’utente inserisce un numero tra 1 e 10 (valore della carta).
-
Il programma effettua 20 estrazioni di carte.
-
L’utente vince se il valore scelto:
-
è uscito almeno 2 volte nelle 20 estrazioni.
-
⚠ Non si possono avere più di 4 carte uguali, perché il mazzo reale non lo permette.
2. Modellazione informatica del problema
In informatica dobbiamo:
-
Generare numeri casuali tra 1 e 10 (valori delle carte).
-
Tenere traccia di:
-
quante volte è uscito ogni valore
-
quante carte sono state estratte in totale
-
-
Impedire che un valore venga estratto più di 4 volte.
Per farlo usiamo:
-
una lista di contatori lunga 10:
-
uscite[0]→ conta quante volte è uscito il valore 1 -
uscite[1]→ conta quante volte è uscito il valore 2 -
…
-
uscite[9]→ conta quante volte è uscito il valore 10
-
3. Strategia di soluzione
-
Chiedere all’utente il valore da indovinare.
-
Inizializzare:
-
un contatore per le uscite del valore scelto
-
una lista che memorizza quante volte è uscito ciascun valore
-
-
Ripetere l’estrazione finché non si ottengono 20 carte valide.
-
A ogni estrazione:
-
generare un numero casuale tra 1 e 10
-
controllare se quel valore è già uscito 4 volte
-
se sì → si scarta
-
se no → si accetta
-
-
-
Alla fine:
-
se il valore scelto è uscito almeno 2 volte → vittoria
-
altrimenti → sconfitta
-
4. Programma

5. Spiegazione delle parti principali
Lista dei contatori
Serve a memorizzare quante volte è uscito ciascun valore.
Ciclo di estrazione
Garantisce che vengano estratte esattamente 20 carte valide.
Controllo del vincolo delle carte
Impedisce che un valore venga estratto più di 4 volte, rispettando la struttura del mazzo reale.
Condizione di vittoria
Verifica se il valore scelto dall’utente è uscito almeno 2 volte.
6. Concetto informatico importante
Questo programma simula:
-
estrazione senza reinserimento
-
con vincoli di disponibilità
È diverso dal dado, dove si usa:
senza limiti sul numero di volte che un valore può uscire.
7. Competenze esercitate
Con questo esercizio lo studente usa:
-
input -
while -
if -
liste
-
contatori
-
numeri casuali
-
modellazione di un problema reale