目录
board
class Board(object):
"""棋盘类"""
def __init__(self):
self.board_data = [" "] * 9 # 棋盘数据
self.movable_list = list(range(9)) # 可移动列表
def show_board(self, show_index=False):
"""显示棋盘
:param show_index: True 表示显示索引 / False 表示显示数据
"""
for i in (0, 3, 6):
print(" | |")
if show_index:
print(" %d | %d | %d" % (i, i + 1, i + 2))
else:
print(" %s | %s | %s" % (self.board_data[i],
self.board_data[i + 1],
self.board_data[i + 2]))
print(" | |")
if i != 6:
print("-" * 23)
def move_down(self, index, chess):
"""在指定位置落子
:param index: 列表索引
:param chess: 棋子类型 X 或 O
"""
# 1. 判断 index 是否在可移动列表中
if index not in self.movable_list:
print("%d 位置不允许落子" % index)
return
# 2. 修改棋盘数据
self.board_data[index] = chess
# 3. 修改可移动列表
self.movable_list.remove(index)
def is_draw(self):
"""是否平局"""
return not self.movable_list
def is_win(self, chess, ai_index=-1):
"""是否胜利
:param chess: 玩家的棋子
:param ai_index: 预判索引,-1 直接判断当前棋盘数据