2012-10-30 143 views
0

如果骰子显示6,则玩家在此回合​​中根本不会移动,并且也会在下一回合中放弃。我可以操纵变量在Java中变化的方式吗?

为了实现这一点,我尝试了一个整数类型的警告标记变量的玩家和整数类型的时间计数器变量。

如果骰子显示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. 
} 

如何操纵变量得到我需要的结果呢?或者,我的部分完整方法在逻辑上完全不可行?

谢谢。

回答

1

u能告诉我,如果这对你的作品?

flag=true;  
    while condition{ 
     if flag==true{ 
     if die == 6 
     { 
      flag=false; 
      continue;} 
     } 
     else { Do STUFF } 
    } else 
     { 
      flag==true; 
      } 
    } 
+0

哦,我明白了!布尔人可能会工作。 – hologram

+0

是啊...让我知道它是否解决您的问题! – agirish

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

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; 
    } 
}