I've designed a simple card game where two cards are displayed and the user has to bet on whether they will get a card that is in between the two cards displayed. If the user doesn't want to bet, they just deal again. The user begins with £100.
The game works fine in most aspects, but has a huge flaw. The user can bet more than they have in their balance. So, if the user has £100, they bet £105, and they win, they will have £205 in their balance. This is clearly bad ! And if they have £100, they bet £105 and they lose, their balance stays the same. This is also pretty bad.
So I thought a simple if-statement would sort this out:
if (wager > balance)
{
winLoseLabel.Text = "You can't bet more than you have!";
}
switch (betResult)
{
case TIE:
winloseLabel.Text = "Tie. You still lose. HA!";
myRules.Balance -= wager;
break;
case PLAYERWINS:
winloseLabel.Text = "You win. Woop-de-do..";
myRules.Balance += wager;
break;
case DEALERWINS:
winloseLabel.Text = "You lose. Get over it.";
myRules.Balance -= wager;
break;
}
Why doesn't this work? I'm pretty sure it's something so simple, but I'm pretty new to C#, so go easy on me!
You should have an else
there:
if (wager > balance)
{
winLoseLabel.Text = "You can't bet more than you have!";
}
else
{
switch (betResult)
{
//...
}
}
Your if-statement is correct, however, you do not end the routine if it's triggered.
You can do this by adding a "return;" statement after setting the label, or, if you are depending on code underneath what you are showing us, you can include the switch-statement in the "else" part of the if-statement...
在你的if语句之后,无论如何你都会进入案例陈述,你不应该在案例陈述/周围有其他的吗?
I dont understand exactly, but try
if (wager > balance)
{
winLoseLabel.Text = "You can't bet more than you have!";
return;
}
or
if (wager <= balance)
{
switch (betResult)
{
case TIE:
winloseLabel.Text = "Tie. You still lose. HA!";
myRules.Balance -= wager;
break;
case PLAYERWINS:
winloseLabel.Text = "You win. Woop-de-do..";
myRules.Balance += wager;
break;
case DEALERWINS:
winloseLabel.Text = "You lose. Get over it.";
myRules.Balance -= wager;
break;
}
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.