用python實現(xiàn)五子棋實例
更新時間:2022年05月02日 08:50:46 作者:一起看日落啊
這篇文章主要為大家詳細介紹了用python實現(xiàn)五子棋實例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了用python實現(xiàn)五子棋的具體代碼,供大家參考,具體內(nèi)容如下
# 制作一個棋盤 """ ++++++++++ ++++++++++ ++++++++++ ++++++++++ """ def createBoard(): ? ? board = [] ? ? for i in range(15): ? ? ? ? board.append(["+"] * 15) ? ? return board def printBoard():# ?print(" ", end="") ? ? for i in range(1, 16): ? ? ? ? number = str(i).rjust(3) ? ? ? ? print(number, end="") ? ? print()#打印列號之后換行 ? ? for i in range(15): ? ? ? ? number = str(i + 1).ljust(3)#注意這個函數(shù),是將行號每個都變成左對齊,占3位,以實現(xiàn)棋盤對齊功能 ? ? ? ? print(number, end="")#打印行號 ? ? ? ? for j in range(15): ? ? ? ? ? ? print(board[i][j], end=" ?") ? ? ? ? print() def isGameOver(): ? ? count = 0 ? ? # 先判斷連續(xù) ? ? for x in range(15): ? ? ? ? for y in range(15): ? ? ? ? ? ? if board[x][y] != "+": ? ? ? ? ? ? ? ? count += 1 ? ? ? ? ? ? ? ? # 向右 ? ? ? ? ? ? ? ? if y < 11: ? ? ? ? ? ? ? ? ? ? flag = True #表示默認游戲結束 ? ? ? ? ? ? ? ? ? ? for c in range(y + 1, y + 5): ? ? ? ? ? ? ? ? ? ? ? ? if board[x][y] != board[x][c]: ? ? ? ? ? ? ? ? ? ? ? ? ? ? flag = False ? ? ? ? ? ? ? ? ? ? ? ? ? ? break ? ? ? ? ? ? ? ? ? ? if flag: ? ? ? ? ? ? ? ? ? ? ? ? if board[x][y] == "●": ? ? ? ? ? ? ? ? ? ? ? ? ? ? print(">>>黑方勝!") ? ? ? ? ? ? ? ? ? ? ? ? else : ? ? ? ? ? ? ? ? ? ? ? ? ? ? print(">>>白方勝!") ? ? ? ? ? ? ? ? ? ? ? ? return True; # 表示游戲結束 ? ? ? ? ? ? ? ? # 向下 ? ? ? ? ? ? ? ? if x < 11: ? ? ? ? ? ? ? ? ? ? if board[x][y] == board[x+1][y] == board[x+2][y] == board[x+3][y] == board[x+4][y]: ? ? ? ? ? ? ? ? ? ? ? ? if board[x][y] == "●": ? ? ? ? ? ? ? ? ? ? ? ? ? ? print(">>>黑方勝!") ? ? ? ? ? ? ? ? ? ? ? ? else : ? ? ? ? ? ? ? ? ? ? ? ? ? ? print(">>>白方勝!") ? ? ? ? ? ? ? ? ? ? ? ? return True ? ? ? ? ? ? ? ? # 向右下 ? ? ? ? ? ? ? ? if x < 11 and y < 11: ? ? ? ? ? ? ? ? ? ? if board[x][y] == board[x+1][y+1] == board[x+2][y+2] == board[x+3][y+3] == board[x+4][y+4]: ? ? ? ? ? ? ? ? ? ? ? ? if board[x][y] == "●": ? ? ? ? ? ? ? ? ? ? ? ? ? ? print(">>>黑方勝!") ? ? ? ? ? ? ? ? ? ? ? ? else : ? ? ? ? ? ? ? ? ? ? ? ? ? ? print(">>>白方勝!") ? ? ? ? ? ? ? ? ? ? ? ? return True ? ? ? ? ? ? ? ? # 向右上 ? ? ? ? ? ? ? ? if x > 3 and y < 11: ? ? ? ? ? ? ? ? ? ? if board[x][y] == board[x-1][y+1] == board[x-2][y+2] == board[x-3][y+3] == board[x-4][y+4]: ? ? ? ? ? ? ? ? ? ? ? ? if board[x][y] == "●": ? ? ? ? ? ? ? ? ? ? ? ? ? ? print(">>>黑方勝!") ? ? ? ? ? ? ? ? ? ? ? ? else : ? ? ? ? ? ? ? ? ? ? ? ? ? ? print(">>>白方勝!") ? ? ? ? ? ? ? ? ? ? ? ? return True ? ? # 再判斷和棋 ? ? if count == 15 ** 2: ? ? ? ? print(">>>和棋!") ? ? ? ? return True ? ? return False#如果以上連棋都沒出現(xiàn)就游戲繼續(xù) def chess(c): ? ? x, y = eval(input("請輸入坐標:")) ? ? x -= 1 ? ? y -= 1 ? ? if board[x][y] == "+": ? ? ? ? board[x][y] = c ? ? ? ? return True ? ? else: ? ? ? ? print(">>>此處已有棋子,請重新下棋!") ? ? ? ? return False # 程序的開始 board = createBoard(); printBoard() player = 0 while not isGameOver():#游戲繼續(xù)的操作 ? ? if player % 2 == 0: ? ? ? ? print(">>>請黑方下棋,", end="") ? ? ? ? if not chess("●"): ? ? ? ? ? ? continue ? ? else: ? ? ? ? print(">>>請白方下棋,", end="") ? ? ? ? if not chess("○"): ? ? ? ? ? ? continue ? ? printBoard() ? ? player += 1 print(">>>游戲結束!")
五子棋勝局判斷的根據(jù)所在如上圖。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
修復Python?Pandas數(shù)據(jù)標記錯誤的幾種方法總結
用于分析數(shù)據(jù)的?Python?庫稱為?Pandas,在?Pandas?中讀取數(shù)據(jù)最常見的方式是通過?CSV?文件,但?CSV?文件的限制是它應該采用特定的格式,否則在標記數(shù)據(jù)時會拋出錯誤,在本文中,我們將討論修復?Python?Pandas?錯誤標記數(shù)據(jù)的各種方法2023-10-10Python求平面內(nèi)點到直線距離的實現(xiàn)
今天小編就為大家分享一篇Python求平面內(nèi)點到直線距離的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01Django框架HttpResponse和HttpRequest對象學習
這篇文章主要介紹了Django框架HttpResponse和HttpRequest對象學習,有需要的朋友可以借鑒參考下,希望可以有所幫助,祝大家早日升職加薪2021-09-09pandas數(shù)據(jù)處理基礎之篩選指定行或者指定列的數(shù)據(jù)
這篇文章主要介紹了pandas數(shù)據(jù)處理基礎之篩選指定行或者指定列的數(shù)據(jù)的相關資料,需要的朋友可以參考下2018-05-05Win10系統(tǒng)下Pytorch環(huán)境的搭建過程
今天給大家?guī)淼氖顷P于Python的相關知識,文章圍繞著Win10系統(tǒng)Pytorch環(huán)境搭建過程展開,文中有非常詳細的介紹及圖文示例,需要的朋友可以參考下2021-06-06