Salve a tutti, sto sviluppando un gioco di briscola come progetto per un esame di informatica. Sto cercando di articolare una sequenza di if che permettano al computer di giocare la carta più conveniente, solo che non funziona. Allego il codice che ho scritto per eventuali consigli:
int PcGiocaSecondo (){ //Il calcolatore decide la carta da giocare se è il secondo a tirare
for (int i=0; i<3; i++){
if (terra[0].seme != briscola.seme){ //Seme briscola diverso dal seme a terra
if ((terra[0].seme == manoPC[i].seme) && (manoPC[0].punti > terra[0].punti))
{
box = manoPC[i].valore;
manoPC[i].valore = terra[2].valore;
terra[1].valore = box;
box = manoPC[i].seme;
manoPC[i].seme = terra[1].seme;
terra[1].seme = box;
box = manoPC[i].punti;
manoPC[i].punti = terra[1].punti;
terra[1].punti = box;
cout<<"L'avversario ha lanciato la carta "<<manoPC[i].valore<<manoPC[i].seme<<endl;
}
if ((terra[0].seme == manoPC[i].seme) && (manoPC[0].punti < terra[0].punti)) //Punteggio in mano minore di quello a terra
{
box = manoPC[i].valore;
manoPC[i].valore = terra[2].valore;
terra[1].valore = box;
box = manoPC[i].seme;
manoPC[i].seme = terra[1].seme;
terra[1].seme = box;
box = manoPC[i].punti;
manoPC[i].punti = terra[1].punti;
terra[1].punti = box;
cout<<"L'avversario ha lanciato la carta "<<manoPC[i].valore<<manoPC[i].seme<<endl;
}
if ((terra[0].seme == manoPC[i].seme) && (manoPC[0].punti = terra[0].punti) && (manoPC[i].valore < terra[0].valore)) //Valore carte in mano più basso di quello a terra
{
box = manoPC[i].valore;
manoPC[i].valore = terra[2].valore;
terra[1].valore = box;
box = manoPC[i].seme;
manoPC[i].seme = terra[1].seme;
terra[1].seme = box;
box = manoPC[i].punti;
manoPC[i].punti = terra[1].punti;
terra[1].punti = box;
cout<<"L'avversario ha lanciato la carta "<<manoPC[i].valore<<manoPC[i].seme<<endl;
}
}
}
}
Il mazzo è rappresentato da una struttura con valore, seme e punteggio di ogni carta. Eseguendo il codice (all'interno del gioco) non avviene nessuna selezione della carta.