Sei sulla pagina 1di 4

#include <iostream>

#include <stdlib.h>
#include <ctime>

using namespace std;

int main()
{
float mazzo[40]; // array di 40 numeri con la virgola. il primo elemento è mazzo[0]
int carteEstratte[40];
int nGiocatori; //Numero giocatori escluso mazziere
int numeroCarteEstratte=0;
int cartaEstratta; //Assume il valore dell'ultima carta estratta dal mazzo

srand(time(0)); // rende il valore ottenuto da rand() effettivamente casuale

cout<<"Inserire numero di giocatori (escluso il mazziere)"<<endl;


cin>>nGiocatori;
nGiocatori++; //Conto anche il mazziere

float punteggi[nGiocatori]; //Creo un array con i punteggi di tutti i giocatori. il valore è scritto
quando il

for (int i=0; i<7; i++)


{
mazzo[i]=i+1; //i valore carta, carta 0 è asso - Associo a tutte le carte da 1 a 7 i relativi
valori
mazzo[i+10]=i+1;
mazzo[i+20]=i+1;
mazzo[i+30]=i+1;
}

for (int i=0; i<3; i++)


{
mazzo[i+7]=0.5; //Assegno valore 1/2 a tutte le figure
mazzo[i+17]=0.5;
mazzo[i+27]=0.5;
mazzo[i+37]=0.5;
}

for (int i=0; i<nGiocatori; i++) // mentre i < nGiocatori è vera ripeti il codice tra le graffe e poi
esegui i++
{
cout<<endl<<"Tocca al giocatore "<<i<<endl;

float valoreAttuale = 0; // conterrà la somma dei valori delle carte estratte,

int decisioneGiocatore = 1;
while(decisioneGiocatore == 1 && valoreAttuale < 7.5) // ripeti il codice tra le graffe mentre
il giocatore vuole continuare e il valore totale è < 7.5
{

cartaEstratta=rand()%40; // ottieni un numero naturale tra 0 e 39


// rand() dà un numero casuale tra 0 e il massimo intero
ottenibile. % restituisce il resto della divisione tra gli operandi
// 9 % 2 restituisce 1. 13 % 5 restituisce 3 . x % 3

for (int j=0; j<numeroCarteEstratte; j++) // scorre l'array di carte estratte


{
if (cartaEstratta==carteEstratte[j]) // se la carta era già stata estratta
{
cartaEstratta=rand()%40; // Estraggo una nuova carta
j=0; // Riazzero l'indice delle carte estratte per ricontrollare tutte le carte estratte ed
accertarmi che la carta non sia lì
}
}

carteEstratte[numeroCarteEstratte] = cartaEstratta; //Aggiungo all'array di carte estratte


la carta appena estratta
numeroCarteEstratte++; // Incremento il numero di carte estratte

valoreAttuale += mazzo[cartaEstratta]; // += somma a valoreAttuale


mazzo[cartaEstratta]; è come dire valoreAttuale = valoreAttuale + mazzo[cartaEstratta];

if(valoreAttuale < 7.5)


{
if (i==0)// Computer
{
decisioneGiocatore=rand()%2;
cout<<"Il computer ha estratto una carta che vale "<<mazzo[cartaEstratta]<<" e ha
deciso di ";Weighted Weighted
if(decisioneGiocatore == 0)
{
cout<<"fermarsi"<<endl;
}else{
cout<<"continuare"<<endl;
}

}
else
{
cout<<"Ho estratto una carta che vale "<<mazzo[cartaEstratta]<<" e sei a
"<<valoreAttuale<<". Vuoi continuare? (1 per continuare, 0 per fermarsi)"<<endl;
cin>>decisioneGiocatore;
}
}

cout<<"Il giocatore "<<i<<" ha totalizzato "<<valoreAttuale<<" punti"<<endl;


punteggi[i] = valoreAttuale; //Memorizzo il punteggio del giocatore

}
I
float punteggioMassimo=-1; // imposta punteggio massimo a un valore minore di 0
int giocatoreVincitore = 0;

for (int i=0; i<nGiocatori; i++)


{
if (punteggi[i]>punteggioMassimo && punteggi[i] <= 7.5)
{
punteggioMassimo=punteggi[i];
giocatoreVincitore=i;
}
}

if(punteggioMassimo == -1)
{
cout<<endl<<"Nessun vincitore"<<endl;
}
else
{

cout<<endl<<"Vince il giocatore "<<giocatoreVincitore<<endl;


}