我试图弄清楚如何制作一个循环超过两个东西,例如玩家,并检查他们每个是否是活跃的,如果是这样,他们应该做不同的事情.
它应首先检查是否有胜利者,如果不是第一个玩家应该进行他的移动并检查他是否通过这样做获胜.在第一个玩家完成他的移动并且没有获胜之后,第二个玩家应该做他的移动,当然还要测试他是否赢了.如果没有人赢了,那么第一个玩家应该做下一步行动,依此类推.
这就是我现在想到的.
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");
}
}
Run Code Online (Sandbox Code Playgroud)
我知道这不会像那样工作,因为第一个If请求是真的,而其他如果不通过.但是我怎么能让它基本上每次切换?
你不需要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;
}
}
Run Code Online (Sandbox Code Playgroud)
或者你甚至可以用以下方法保存一行代码:
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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
677 次 |
| 最近记录: |