0

如果骰子显示为 6,则玩家在本回合完全不移动,并且在下一回合也被放弃。

为此,我为播放器尝试了一个整数类型的警告标记变量和一个整数类型的时间计数器变量。

如果骰子显示 6,我想在第一次运行期间将警告标记变量增加 1(并且让 while 循环不执行任何操作),然后在第二次运行期间将值保持为 1(while 循环将不起作用),然后降低在 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.
}

如何操纵变量以获得我需要的结果?或者我的部分完整方法在逻辑上绝对不正确?

谢谢。

4

3 回答 3

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;
}
于 2012-10-30T05:17:06.897 回答
1

你能告诉我这对你有用吗?

   flag=true;    
    while condition{
      if flag==true{
         if die == 6
         {
           flag=false;
           continue;}
         } 
         else { Do STUFF }
     } else 
         {
            flag==true;
          }
    }
于 2012-10-30T05:17:32.380 回答
1

Java 是面向对象的编程语言。使用此功能。

请参阅以下伪代码,如果您在理解它时遇到问题,请告诉我。

创建一个类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;
    }
}
于 2012-10-30T05:35:29.287 回答