欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

用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ù)標記錯誤的幾種方法總結

    修復Python?Pandas數(shù)據(jù)標記錯誤的幾種方法總結

    用于分析數(shù)據(jù)的?Python?庫稱為?Pandas,在?Pandas?中讀取數(shù)據(jù)最常見的方式是通過?CSV?文件,但?CSV?文件的限制是它應該采用特定的格式,否則在標記數(shù)據(jù)時會拋出錯誤,在本文中,我們將討論修復?Python?Pandas?錯誤標記數(shù)據(jù)的各種方法
    2023-10-10
  • Python實戰(zhàn)之外星人入侵游戲示例代碼

    Python實戰(zhàn)之外星人入侵游戲示例代碼

    這篇文章主要介紹了利用Python編寫的外星人入侵游戲的示例代碼,文中的代碼講解詳細,對我們學習Python有一定的幫助,感興趣的可以學習一下
    2022-01-01
  • Python中Pickle模塊和base64模塊的使用解析

    Python中Pickle模塊和base64模塊的使用解析

    這篇文章主要介紹了Python中Pickle模塊和base64模塊的使用解析,pickle模塊是python的標準模塊,提供了對于python數(shù)據(jù)的序列化操作,可以將數(shù)據(jù)轉換為bytes類型,其序列化速度比json模塊要高,需要的朋友可以參考下
    2023-09-09
  • Python求平面內(nèi)點到直線距離的實現(xiàn)

    Python求平面內(nèi)點到直線距離的實現(xiàn)

    今天小編就為大家分享一篇Python求平面內(nèi)點到直線距離的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • Django框架HttpResponse和HttpRequest對象學習

    Django框架HttpResponse和HttpRequest對象學習

    這篇文章主要介紹了Django框架HttpResponse和HttpRequest對象學習,有需要的朋友可以借鑒參考下,希望可以有所幫助,祝大家早日升職加薪
    2021-09-09
  • pandas數(shù)據(jù)處理基礎之篩選指定行或者指定列的數(shù)據(jù)

    pandas數(shù)據(jù)處理基礎之篩選指定行或者指定列的數(shù)據(jù)

    這篇文章主要介紹了pandas數(shù)據(jù)處理基礎之篩選指定行或者指定列的數(shù)據(jù)的相關資料,需要的朋友可以參考下
    2018-05-05
  • pytest配置文件pytest.ini的具體使用

    pytest配置文件pytest.ini的具體使用

    本文主要介紹了pytest配置文件pytest.ini的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • Win10系統(tǒng)下Pytorch環(huán)境的搭建過程

    Win10系統(tǒng)下Pytorch環(huán)境的搭建過程

    今天給大家?guī)淼氖顷P于Python的相關知識,文章圍繞著Win10系統(tǒng)Pytorch環(huán)境搭建過程展開,文中有非常詳細的介紹及圖文示例,需要的朋友可以參考下
    2021-06-06
  • Python中快速掌握Data Frame的常用操作

    Python中快速掌握Data Frame的常用操作

    這篇文章主要介紹了Python中快速掌握Data Frame的常用操作,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • Pytest自定義mark標記篩選用例

    Pytest自定義mark標記篩選用例

    這篇文章介紹了Pytest自定義mark標記篩選用例的方法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06

最新評論