problem med att få rätt belopp
Hej. Jag har skapat följande program där man kan gissa slumptal mellan 1-12, ifall man svarar rätt så vinner man det 2*satsade pengar, 4 gånger, 10 gånger...beroende på vilken svårighetsgrad. Mitt problem är att när man startar med 1000 kr och vinner 4 gånger pengarna så står det vid nästa omgång att jag fotfarande har 1000 kr att spela för.
När man gissar fel däremot så är det nya beloppet med i texten.
Detta är ett simpelt fel men har blivit helt blind när jag kollar på min egna kodning.....
#include <iostream>
#include <ctime>
#include <string>
#include <stdlib.h>
#include <iomanip>
using namespace std;
float vann(int konto, int bet);
float vann(int konto, int bet)
{
int resultat = 0;
cout << "Du vann!" << endl;
resultat = konto+bet*2;
cout << "Du har " << resultat << " kr kvar.\n" << endl;
return resultat;
}
float intevinna(int konto, int bet);
float intevinna(int konto, int bet)
{
int resultat = 0;
cout << "\n\n\n\n\n\n\nDu forlorade!" << endl;
resultat = konto-bet;
cout << "Du har " << resultat << " kr kvar...\n" << endl;
return resultat;
}
int main()
{
srand(time(NULL));
float konto = 1000;
int bet = 0;
int svar;
int siffra = 0;
int siffra2 = 0;
int siffra3 = 0;
int siffra4 = 0;
int i = 3;
int pc = (rand() % 12) + 1;
string igen;
cout << "__________________-ROULETTE-__________________\n" << endl;
while (konto > 0)
{
meny:
cout << "Välj bland siffrorna 1-12. Försök svara rätt.\n\nDet finns olika svårighetsgrader: \n\n--> 1 försök = 10x valt belopp\n --> 2 försök = 4x valt belopp\n --> 4 försök = 2x valt belopp\n\n------Hur många försök (liv) vill du ha?-------\n\n" << endl;
cin >> svar;
if (svar > 12 || svar < 1)
{
cout << "Ogiltig siffra, försök igen." << endl;
goto meny;
}
else
{
bet:
cout << "Hur mycket vill du satsa? (max " << konto << " kr)" << endl;
cin >> bet;
if (bet > konto)
{
cout << "Du har inte tillräckligt med pengar.\n" << endl;
goto bet;
}
if(svar == 1)
{
cout << "Beräknad vinst är " << bet*10 << " kr." << endl;
cout << "Välj 1 siffra mellan 1-12" << endl;
cin >> siffra;
}
else if (svar == 2)
{
cout << "Beräknad vinst är " << bet*4 << " kr." << endl;
cout << "Välj 2 siffror mellan 1-12" << endl;
cin >> siffra;
cin >> siffra2;
}
else if (svar == 4)
{
cout << "Beräknad vinst är " << bet*2 << " kr." << endl;
cout << "Välj 4 siffror mellan 1-12" << endl;
cin >> siffra;
cin >> siffra2;
cin >> siffra3;
cin >> siffra4;
}
switch(svar)
{
case 1:
if(siffra == pc)
{
cout << "\n\n\nDu vann " << bet*10 << " kr." << endl;
cout << "Rätt siffra var: >>> " << pc << " <<<" << endl;
}
else
{
konto = intevinna(konto, bet);
cout << "Rätt siffra var: >>> " << pc << " <<<" << endl;
}
break;
case 2:
if(siffra == pc || siffra2 == pc)
{
cout << "\n\n\nDu vann " << bet*4 << " kr." << endl;
cout << "Rätt siffra var: >>> " << pc << " <<<" << endl;
}
else
{
konto = intevinna(konto, bet);
cout << "Rätt siffra var: >>> " << pc << " <<<" << endl;
}
break;
case 4:
if(siffra == pc || siffra2 == pc || siffra3 == pc || siffra4 == pc)
{
cout << "\n\n\nDu vann " << bet*2 << " kr." << endl;
cout << "Rätt siffra var: >>> " << pc << " <<<" << endl;
}
else
{
konto = intevinna(konto, bet);
cout << "Rätt siffra var: >>> " << pc << " <<<" << endl;
}
break;
}
if (konto <= 0)
{
cout << "Du har inga pengar kvar." << endl;
cout << "Vill du spela igen? ja eller nej" << endl;
cin >> igen;
if (igen == "ja" || igen == "Ja")
{
cout << "Detta spel använder sig inte av riktiga pengar så därför får du här med tillbaka " << konto+1000 << " att spela för. Var mer försiktig denna gång....." << endl;
goto meny;
}
else if (igen == "nej" || igen == "Nej")
{
cout << "Spelet kommer att avslutas om...." << endl;
while(i != 0)
{
cout << i-- << endl;
}
if(i == 0)
{
cout << "Hejdå.\n**stängs av**" << endl;
}
return 0;
}
}
}
}
}
Kan det vara så att du på några ställen bl.a. ska lägga till raden:
konto = vann(konto, bet);
Exakt! tack för hjälpen.