in breve.. la parte di codice qui presente dovrebbe fare questo: viene buttata una carta, se la carta è presente a terra, leva la carta, altrimenti l'aggiunge al piatto..
codice:
for (int k=0;k<3;k++)
{
ordina(piatto,size);
cout<<"quale carta butti? ["<<a<<b<<c<<"] : "; cin>>x;
switch(x)
{
case 0: a=""; break;
case 1: b=""; break;
case 2: c=""; break;
}
A=true;
for (int i=0;i<size;i++)
{
if (((piatto[i]-io[x])%10==0)&&(A==true)) //trova la carta
{
Mmazzo=piatto[i];
cout<<"\nLe carta sul tuo mazzo e': \n";getMazzo(Mmazzo);
A=false;
if (i==size-1)
{
piatto[i]=0; //questo annulla la carta
size--;
}
else{
piatto[i]=piatto[size-1];
piatto[size-1]=0;
size--;
}
}
}
if (A==true)
{
piatto[size++]=io[x];
}
getPiatto(size);
}
ora vi espongo il problema tramite una semplice tabella.. 0 sta per carta non presa, 1 carta presa:
0 0 0 il programma funziona
1 1 1 il programma funziona
1 1 0 il programma funziona
1 0 0 il programma funziona
1 0 1 il programma funziona
0 0 1 il programma NON funziona
0 1 0 il programma NON funziona
0 1 1 il programma funziona
e non riesco proprio a capire perche