'''
五子棋
矩阵做棋盘 16*16 "+"
打印棋盘 for for
游戏是否结束
开始下棋 while True 游戏是否结束:
黑白交替 player=0 p%2==0 ==1 p+=1
下棋动作一样 但棋子不一样
'''
#创建棋盘
def initBroad():
global board #调用全局的board
board=[None]*16
for i in range(len(board))
board[i]=["+ "]*16
#打印棋盘
def printBoard():
global board
for i in range(len(board)):
for j in range(len(board[i])):
print(board[i][j],end="")
print("")
#开始下棋
def startGame():
global board
player=0
while isGameContinue():
if player%2==0:
#黑方下棋
print("==>黑方下棋")
if not playChess("●"):
continue
else:
#白方下棋
print("==>白方下棋")
if not playChess("○")
continue
player+=1
def playChess(chess):
#获取位置
x=int(input("==> X="))-1
y=int(input("==> Y="))-1
if board[x][y]=="+ ":
board[x][y]=chess
printBoard()
return True #落子成功
else:
print("==> 已有棋子 请重新落子\a")
printBoard()
return False #落子失败
def isGameContinue():
for i in range(len(board)):
for j in range(len(board[i])):
if board[i][j]!="+ ":
#横向
if j<=11:
if board[i][j]==board[i][j+1]==board[i][j+2]==board[i][j+3]==board[i][j+4]:
whoWin(i,j)
return False
#竖向
if i<=11:
if board[i][j]==board[i+1][j]==board[i+2][j]==board[i+3][j]==board[i+4][j]:
whoWin(i,j)
return False
#反斜
if i<=11 and j<=11:
if board[i][j]==board[i+1][j+1]==board[i+2][j+2]==board[i+3][j+3]==board[i+4][j+4]:
whoWin(i,j)
return False
#正斜
if i>=4 and j<=11:
if board[i][j]==board[i-1][j+1]==board[i-2][j+2]==board[i-3][j+3]==board[i-4][j+4]:
whoWin(i,j)
return False
return True
def whoWin(i,j):
if board[i][j]=="●":
print("黑方胜出")
else:
print("白方胜出")
for i in range(10):
print("\a")
board=[]
initBroad()
printBoard()
startGame()
python——实现五子棋
猜你喜欢
转载自blog.csdn.net/y805805/article/details/84496835
今日推荐
周排行