本源码是根据疯狂python讲义里面的例子进行的完善,书中缺少电脑自动下棋和判断输赢,本人在学习的过程中对其进行了一点完善,话不多说上代码:
import random
#定义棋盘大小
BOARD_SIZE = 15
#定义一个二维列表来充当棋盘
board = []
def initBoard() :
#为每个元素赋值“✚”,用于在控制台画出棋盘
global row
for i in range(BOARD_SIZE) :
row = ["✚"] * BOARD_SIZE
board.append(row)
#控制台输出棋盘的方法
def printBoard() :
for i in range(BOARD_SIZE) :
for j in range(BOARD_SIZE) :
print(board[i][j],end="")
print()
initBoard()
printBoard()
inputstr = input("请输入您下棋的坐标,应以x,y的格式:\n")
flag = False
while inputstr != None :
x_str,y_str = inputstr.split(sep = ",")
#为对应的列表赋值"●"
board[int(y_str)][int(x_str)] = "●"
'''电脑随机生成2个整数,作为电脑的坐标,用"○"代替
1.坐标的有效性,只能是数字,不能超出棋盘范围
2.下棋的点不能重复下棋
3.每次下棋后需要扫描谁赢了'''
i = int(y_str)
j = int(x_str)
for x in range(j - 4 , j + 5) :
if x >= 0 and x + 4 < 15 : #横向有没有出现5连(在边缘依次逐一遍历,是否五个棋子的类型一样)
if board[i][x] == "●" and \
board[i][x + 1] == "●" and \
board