我试图弄清楚如何对两个事物进行循环,例如玩家,并检查每个事物是否都是活跃的,如果是,他们应该做不同的事情。
首先应检查是否有胜利者,如果不是第一个玩家应该进行移动并检查他是否通过这样做获胜。在第一个玩家完成他的移动并且没有获胜之后,第二个玩家应该做他的移动,当然还要测试他是否赢了。如果没有人赢了,那么第一个玩家应该进行下一步行动等等。
这就是我现在的想法。
boolean playerOne = true;
boolean playerTwo = false;
boolean haveWinner = false;
while(haveWinner == false) {
if (playerOne == true & playerTwo == false) {
/*do something */
playerOne = false;
playerTwo = true;
} else if (playerOne == false & playerTwo == true) {
/* do something */
playerOne = true;
playerTwo = false;
} else {
System.out.println("No ones turn");
}
}
我知道这不会像那样工作,因为第一个If请求是真的,而其他如果不通过。但是我怎么能让它基本上每次切换?
答案 0 :(得分:5)
您不需要playerTwo
变量。只需切换playerOne
变量以确定它是否是玩家的一个回合(在这种情况下,它将是玩家的回合)。
这使你的循环简单如下:
boolean playerOne = true;
boolean haveWinner = false;
while (!haveWinner) {
if (playerOne) {
/*player one's turn - do something */
playerOne = false;
} else {
/* player two's turn - do something */
playerOne = true;
}
}
或者你甚至可以用以下代码保存一行代码:
boolean playerOne = true;
boolean haveWinner = false;
while (!haveWinner) {
if (playerOne) {
/*player one's turn - do something */
} else {
/* player two's turn - do something */
}
playerOne = !playerOne;
}