Mah, dovendo utilizzare vettori semplici hai diverse possibilità. Si potrebbe evitare di utilizzare un sistema tedioso come quello che ho pensato di scrivere, ma volendo farlo come esercizio scolastico gestirei il problema così:
potresti dichiarare un vettore di 40 elementi, uno per ogni carta. Da 0 a 9 un seme, da 10 a 19 un altro ecc., assegnando poi i punteggi come dicevi. Se ho ben capito la matta è solo una carta, quindi assegnale il punteggio massimo che può avere. Potresti fare come ha detto crybot con la peculiarità seguente: quando viene estratta la matta viene attivato un flag (assegni true ad una variabile booleana) che mi fa capire che c'è la matta tra le carte del giocatore. In quel caso sai che il punteggio va fino a quello calcolato (che chiamiamo x), ma potrebbe valere x-1, x-2, ..., x-6.
Se ho capito bene il problema quella di prima potrebbe essere una banale soluzione. Sottolineo però che il questo modo si eseguono estrazioni senza ripetizione mantenendo però n=40, in sostanza. Per renderlo coerente sotto il profilo probabilistico dovresti effettuare estrazioni sugli elementi rimasti, quindi con un random che spazia prima tra 40, poi 39, 38, ... elementi, dove ottenendo j non è detto che sia nella posizione j dell'array. Mi spiego con un esempio:
x=rand(40)=5
[...] // ora l'elemento 5 è azzerato
x=rand(39)=5
// l'elemento interessato è in posizione 6 (quello in posizione 5 è già stato estratto).
Mah, spero di essere riuscito a spiegarmi
|