我刚刚实现了一个播放器界面,以使我的程序更加面向对象。该游戏有一个计算机玩家和一个人类玩家,两者都可以从玩家界面实现。
但是,如何确保人和计算机轮流使用我的主要方法?如果我当前运行此代码,则它仅允许播放器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
中定义,并在HumanPlayer
和ComputerPlayer
中覆盖,以便对已经拥有的代码进行数学运算以验证它们是否获胜。如果您还有其他问题,请告诉我。