第一节中,实现了棋盘的显示。
这一节我们需要的就是落子的实现。
具体需要怎么操作呢?
首先,需要定义一个二维数组,将棋子的每个位置存储在数组中,然后通过控制数组中的内容,来决定怎么放棋子。
怎么实现呢?我需要对初始化__init__()函数改造一下,如下:
def __init__(self, x=15, y=15):
"""初始化"""
# 棋盘横向变量
self.x = x
# 棋盘纵向变量
self.y = y
# 定义一个存储棋子的位置的矩阵
self.go_map = [[0 for _ in range(x)] for _ in range(y)]
# 存储棋盘界面
self.str = ''
其次,考虑怎么在棋盘的位置上放置对应的棋子。
如果self.go_map[x][y]=0,则说明该位置上没有放置任何棋子。
如果self.go_map[x][y]=1,则说明该位置上已经被我方放置棋子了。
如果self.go_map[x][y]=2,则说明该位置上已经被对方放置棋子了。
代码具体实现需要改造一下gomoku_board函数,如下:
def gomoku_board(self):
"""画出棋盘"""
for y in xrange(self.y):
for x in xrange(self.x-1):
# 该位置没有棋子
if self.go_map[x][y]==0:
self.str += ' '
# 该位置已被我方占据
elif self.go_map[x][y]==1:
self.str += 'O'
# 该位置已被对方占据
elif self.go_map[x][y]==2:
self.str += 'X'
self.str += '-'
self.str += '\n'
if y != (self.y-1):
for _ in xrange(self.x):
self.str += '| '
self.str += '\n'
print self.str
return self.str
最后,稍微构造一下主函数的输出,就可以看到效果了。
主函数代码具体如下:
# 主函数
if __name__ == '__main__':
gomoku = Gomoku()
gomoku.go_map[0][0]=1
gomoku.go_map[1][1]=2
gomoku.gomoku_board()
让我们最后看一下效果图。
看到上图中的'O'和'X'吗?已经如我们的期望输出了。
是不是很有意思?那让我们期待下一节吧。