五子棋游戏简易版
目前只能人人对战
o 代表黑棋 x 代表白棋 . 代表无棋子
以下是代码:
def nemBoard():
'''初始化棋盘'''
board = [[0 for i in range(19)] for j in range(19)]
return board
def possiableToChoice(board,i,j):
'''可以下棋子的地方'''
if board[i][j] == 0:
return True
else:
return False
def play(board,player):
'''下子'''
try:
while True:
if player == 1 :
print("Turn Black")
else:
print("Turn White")
i = int(input("choise line (1--19):"))-1
j = int(input("choise row (1--19):"))-1
if possiableToChoice(board,i,j):
board[i][j] = player
return i,j
else:
None
except:
play(board,player)
def win(board,player,i,j):
'''胜利条件'''
direction = [(-1,0),(1,0),(0,-1),(0,1),(-1,-1),(-1,1),(1,-1),(1,1)]
for a in direction:
sum = 0
for l in range(5):
for k in range(0-l,5-l):
if board[i+k*a[0]][j+k*a[1]] == player and i+k*a[0] >= 0 and j+k*a[1] >= 0 :
sum = sum + 1
if sum == 5:
return False
return True
def displayBoard(board):
'''表示棋盘'''
print(" ",end='')
for k in range(1,20):
print("%-2d"%k,end='')
print()
print(" ",end='')
for k in range(1,20):
print("# ",end='')
print()
for i in range(19):
print("%2d # "%(i+1),end='')
for j in range(19):
if board[i][j] == 1:
print("o ",end='')
elif board[i][j] == 2:
print("x ",end='')
else:
print(". ",end='')
print()
def game():
'''(伪)启动游戏'''
player = 1
board = nemBoard()
displayBoard(board)
i = 1
j = 1
while win(board,player%2+1,i,j):
i,j = play(board,player)
displayBoard(board)
player = player % 2 + 1
game()
运行效果略