java - 确定玩家上交基于文本的圈和叉

标签 java arrays if-statement for-loop

我是 Java 初学者,为了进行一些练习,我正在创建一个基于文本的圆圈和十字。到目前为止,我有一个 Player 类、一个 Board 类和一个 Game 类。在 Game 类中,我有一个 Board 实例和两个 Player 实例。我已经成功地编写了代码,让玩家可以采取行动并确定游戏是赢还是平。我现在想确保一个玩家一次只能进行一次移动,并且不能连续移动一次以上,即玩家A,玩家B,玩家A,玩家B......而不是玩家A,玩家A,玩家一个...

我想到的方法是在 myTurn 的 Player 类中创建一个 boolean 字段,并采用以下方法:

public boolean isMyTurn (){
if (myTurn == true){
return false;
}
return true;
}

然后,我在采取行动之前在游戏玻璃中调用此方法,但由于某种原因它不起作用。也许我在某个地方犯了一个错误,但如果有人有任何其他方法/想法,我可以编写一些代码来确定付款人轮流是否有效,请告诉我。如果您也能提供一些例子,我将不胜感激,因为我仍然是初学者。

最佳答案

我会让 Game 类对此负责。例如:

class Game {
    ...
    public void makeTurn(){
        if(isFirst)
            firstPlayer.makeTurn();
        else
            secondPlayer.makeTurn();

        isFirst = !isFirst;
    }

    private bool isFirst = true;
    private Player firstPlayer, secondPlayer;
}

这在逻辑上甚至是有道理的。玩家可以一个接一个地做出许多 Action 。是游戏(游戏规则)阻止了他这样做。

关于java - 确定玩家上交基于文本的圈和叉,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8030615/

相关文章:

java - 将 For 循环与 Weather Java Web 服务结合使用

java - Spring Security 4.指定访问决策管理器时出现异常

javascript - AngularJS - 多维数组的自定义过滤器

php - "Cannot use string offset as an array"错误

python - 年金公式的 future 值(value)不起作用

java - 无需使用 Maven 重建即可运行 Jenkins 集成测试

java - 在 Spring 中初始化已经创建的对象

python - 获取Python中列表的最小N个元素的索引

java - 我如何表达两个值彼此不相等?

java - 使用迭代器从 ArrayList 中删除字符串数组