我刚刚实现了一个播放器界面,以使我的程序更加面向对象。该游戏有一个计算机玩家和一个人类玩家,两者都可以从玩家界面实现。

但是,如何确保人和计算机轮流使用我的主要方法?如果我当前运行此代码,则它仅允许播放器1播放直到赢得,然后再移动到计算机上。

最佳答案

在主要功能中移动游戏循环while,否则它正在等待游戏以HumanPlayer.getUserInput()结尾。另外,您应该添加一个函数来验证任一玩家是否获胜,因为它与getUserInput的定义不匹配。

HumanPlayer human = new HumanPlayer();
ComputerPlayer computer = new ComputerPlayer();

while(!human.hasWon() && !computer.hasWon()) { // Remove the loop from getUserInput() !!!
     human.getUserInput();
     computer.getUserInput();
}


函数public boolean hasWon()应该在Player中定义,并在HumanPlayerComputerPlayer中覆盖,以便对已经拥有的代码进行数学运算以验证它们是否获胜。



如果您还有其他问题,请告诉我。

10-07 14:24