python——實現五子棋
阿新 • • 發佈:2018-11-26
''' 五子棋 矩陣做棋盤 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()