到上一节为止,已经实现玩家的基本功能,所以这一节,基本的目标就是实现人机对战。
要实现人机对战,我们就要实现电脑的功能。
那就增加一个computer_down函数来实现我们的需要,具体代码如下:
def computer_down(self, pos_x=None, pos_y=None):
"""
电脑落子
: param pos_x: 从图形界面输入时,输入的x坐标为多少
: param pos_y: 从图形界面输入时,输入的y坐标为多少
"""
while True:
try:
# 接受玩家的输入
pos_x, pos_y = (random.randint(0, self.x - 1), random.randint(0, self.y - 1))
if 0 <= pos_x <= self.x -1 and 0 <= pos_y <= self.y -1:
if self.go_map[pos_x][pos_y] == 0:
self.go_map[pos_x][pos_y] = 2
self.cur_step += 1
return
else:
print "该位置已经被占据,请选择其他位置"
continue
except ValueError: # 玩家输入不正确的情况(例如输入了‘A’)
continue
主函数对应更新一下,如下:
# 主函数
if __name__ == '__main__':
gomoku = Gomoku()
while True:
gomoku.player_down()
res=gomoku.go_result()
gomoku.gomoku_board(res)
gomoku.computer_down()
res=gomoku.go_result()
gomoku.gomoku_board(res)
效果如下图: