如果骰子显示为6,则本回合中的玩家根本不会移动,也会在下一回合中丧失。
为了实现这一点,我尝试了播放器的整数类型警告标记变量和整数类型时间计数器变量。
如果模具显示6,我想在第一次运行期间将警告标记变量增加1(并且使while循环不执行任何操作),然后在第二次运行期间将值保持为1(而循环将不起作用) ,然后在while循环的第三次运行时将其降低到0(因此while循环将起作用)。除非模具再次显示6,否则标记将保持为零,之后将重复相同的过程。
我有一个像这样的while循环:
while the warning marker is equal to 0 {
Do Stuff
if the die shows a 6, the warning marker increases by 1.
the time counter also increases by 1.
}
如何操作变量以获得我需要的结果?或者我的部分完整方法在逻辑方面是绝对的?
感谢。
答案 0 :(得分:1)
我想你想重新解决这个问题。
这就是我的理解。你有一个警告标记。 你有一个循环来检查标记是否为0,如果是,那么你做了什么。 如果骰子是六,你将增加警告标记。如果它的新值是3,那么你将它重置为0.同时,时间计数器总是在增加。
如果这是正确的,我想你想要的是:
int warningMarker = 0;
int timeMarker = 0;
while (true) {
if (die == 6) {
++warningMarker;
if (warningMarker == 3) {
warningMarker = 0;
}
}
if (warningMarker == 0) {
doSomething();
}
++timeMarker;
}
答案 1 :(得分:1)
你能告诉我这是否对你有用吗?
flag=true;
while condition{
if flag==true{
if die == 6
{
flag=false;
continue;}
}
else { Do STUFF }
} else
{
flag==true;
}
}
答案 2 :(得分:1)
Java是面向对象的Pragramming语言。使用此功能。
请参阅以下伪代码,如果您遇到问题,请告诉我。
创建一个类Player
,如下所示:
class Player
{
boolean skipChance = false;
... // Other fields
... //
}
按以下方式更改while
:
while(isGameOn())
{
Player p = getCurrentPlayer();
if( ! p.skipChance)
{
int val = p.throwDice();
if(val == 6)
{
p.skipChance = true;
continue; // control moves to while.
}
// Do stuff
}
else
{
p.skipChance = false;
}
}