Jag behöver hjälp med en liten version av svälta räv. Spelarna är kortlekar. Först läggs ett kort ut som man sedan ska lägga över för att ta korten. Man lägger vartannat kort. Ess räknas som ett om det läggs ut först och som 14 om det läggs på ett annat kort.
Problemet är att Klover verkar vara som en trumf färg. Varje kort beskrivs med en farg vilken har typen enum Kortfarg {hjarter, spader, klover, ruter} och med en valör av typen int.
int main()
{
Kortbunt spelare[2], leken;
leken.ny_kortlek();
leken.blanda();
for (int i=1; i < 53; i++)
{
spelare[i%2].lagg_overst(leken.ge_oversta());
}
int nasta=1;
while (spelare[0].antal_kort() > 0 && spelare[1].antal_kort() > 0)
{
Kort k, forsta;
if (leken.antal_kort()==0)
{
forsta=spelare[nasta].ge_oversta();
cout << "Spelare " << nasta+1 << " lagger "; forsta.skriv_ut(); cout << "\n\nForsta\n\n";
leken.lagg_overst(forsta);
nasta=(nasta+1)%2;
}
else
{
k=spelare[nasta].ge_oversta();
cout << "Spelare " << nasta+1 << " lagger "; k.skriv_ut();
leken.lagg_overst(k);
if (k.farg() == forsta.farg() && (k.valor()>forsta.valor() || k.valor()==1))
{
cout << "Spelare " << nasta+1 << " tar korten.";
spelare[nasta].lagg_till_bunt(leken);
cout << "Spelare 1 har nu " << spelare[0].antal_kort() << " kort.\nSpelare 2 har nu " << spelare[1].antal_kort()
<< " kort";
}
else
nasta=(nasta+1)%2;
}
}
if (spelare[1].antal_kort() == 0)
cout << "spelare 2 har vunnit!";
else
cout << "spelare 1 har vunnit!";
}
Tack på förhand!