C# while循环有问题吗
下面的代码有两种方法:C# while循环有问题吗,c#,asp.net,.net,methods,while-loop,C#,Asp.net,.net,Methods,While Loop,下面的代码有两种方法:BetAmount接受用户输入Multiplier获取BetAmount并基于图像为真/假返回乘数。例如,如果BetAmount为10且所有图像均为真,则Multiplier应返回30 在ok按钮\u单击方法中,只要totalAmount>0,标签应继续显示结果。如果所有图像均为false,并且我在文本框中输入10,则循环应从totalAmount中减去10,直到totalAmount=0。最初,totalAmount=100。把它想象成一台老虎机,如果图像不真实,你就会赔
BetAmount
接受用户输入Multiplier
获取BetAmount
并基于图像为真/假返回乘数。例如,如果BetAmount
为10且所有图像均为真,则Multiplier
应返回30
在ok按钮\u单击
方法中,只要totalAmount>0,标签应继续显示结果。如果所有图像均为false,并且我在文本框中输入10,则循环应从totalAmount中减去10,直到totalAmount=0。最初,totalAmount=100。把它想象成一台老虎机,如果图像不真实,你就会赔钱
protected void okButton_Click(object sender, EventArgs e)
{
bool imageOne = true;
bool imageTwo = false;
bool imageThree = false;
double totalAmount = 100;
double winAmount = Multiplier(imageOne, imageTwo, imageThree);
double result = 0;
while (true)
{
if (winAmount > 0)
{
result = totalAmount + winAmount;
}
else
{
result = totalAmount - BetAmount();
}
resultLabel.Text = result.ToString();
}
}
protected double BetAmount()
{
double betValue = double.Parse(numTextBox.Text);
return betValue;
}
protected double Multiplier(bool firstImage, bool secondImage, bool thirdImage)
{
double multiplier = BetAmount();
if (firstImage == true) multiplier *= 1;
if (secondImage == true) multiplier *= 1;
if (thirdImage == true) multiplier *= 1;
return multiplier;
}
正如许多评论者所观察到的,你似乎没有充分考虑你想做什么,如果你愿意的话,你的“业务规则”。这应该是第一件要放下的事。我从这里开始:
我的目标是创建一个老虎机应用程序。我已经能够创建一个显示三个随机图像的卷轴。如果其中一张图像是Cherry,则totalAmount应增加下注金额。如果是两个樱桃,则betAmount乘以2并加在总数上。如果图像显示没有樱桃,则totalAmount应减去下注金额 有了这些,再加上您的代码中一些有根据的猜测,我得到了以下结论:
int multiplier = 0;
if (firstImage == true) multiplier++;
if (secondImage == true) multiplier++;
if (thirdImage == true) multiplier++;
return multiplier * BetAmount();
您还需要添加逻辑,以防止用户下注的点数超过其拥有的点数,并在用户用完时结束游戏
还有更多,但这应该会让您走上正轨。您遇到了什么问题?每次我在文本框中输入值10,页面都会继续加载,我看不到任何结果。我注意到IIS Express Worker进程将我的CPU性能提高到了几乎100%。我想知道这是否是问题的原因。为什么您认为当
totalAmount
等于0
时循环会停止?指定的循环没有退出条件,只有while(true)
。为什么不while(totalAmount>0)
?multiplier*=1
不会更改multiplier
的值。它只是将它乘以1
。我的目标是创建一个老虎机应用程序。我已经能够创建一个显示三个随机图像的卷轴。如果其中一张图像是Cherry,则totalAmount应增加下注金额。如果是两个樱桃,则betAmount乘以2并加在总数上。如果图像显示没有樱桃,那么totalAmount应该减去下注金额。如果您投票反对,请随时解释为什么这是一个糟糕的答案。BobRodes-谢谢您的帮助!谢谢你把我的项目分成几个步骤。我即将完成这个项目,我的最后一个障碍是解决如何在总共100个积分中加上赢家或减去损失。int balance=100//需要修复这里的代码,因为它重置为100。受保护的int-PlayerBalance(){if(CalculateWinAmount()>0){balance+=CalculateWinAmount();//CalculateWinAmount返回中奖赌注}否则{balance-=BetAmount();}返回余额;}受保护的void displayerbance(){playertotalamountlab.Text=playerbance().ToString();}@Amit看看我提到的“少数问题”中的第一个。提示:每次单击“确定”按钮时,都会调用“确定按钮”\u click()。(每次调用OK按钮时totalAmount会发生什么情况?)