最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python實(shí)現(xiàn)簡(jiǎn)單的井字棋

 更新時(shí)間:2021年05月26日 08:35:52   作者:哈爾的心  
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)單的井字棋,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了python實(shí)現(xiàn)簡(jiǎn)單的井字棋的具體代碼,供大家參考,具體內(nèi)容如下

使用python實(shí)現(xiàn)井字棋游戲,沒(méi)有具體算法,只是用隨機(jī)下棋簡(jiǎn)單實(shí)現(xiàn):

import random
board = [['+','+','+'],['+','+','+'],['+','+','+']]
def ma(board):
    if isempty(board):
        a = random.randint(0, 2)
        b = random.randint(0, 2)
        if board[a][b] != 'X' and board[a][b] != 'O':
            print("機(jī)器走:")
            board[a][b] = 'O'
            oput(board)
        else:
            ma(board)
    else:
        print("平局")
def oput(board):
    print("  0 1 2")
    for i in range(3):
        print(i, end=' ')
        for j in range(3):
            print(board[i][j], end=" ")
        print("")
def winput(i,j):
    if board[i][j] == 'X':
        print("human win")
    else:
        print("machine win")
    return 1

def test(board):
    for i in range(3):
        for j in range(3):
            if board[i][j] != '+':
                if j == 0:
                    if board[i][j] == board[i][j + 1] == board[i][j + 2]:
                        return winput(i,j)
                if i == 0:
                    if board[i][j] == board[i + 1][j] == board[i + 2][j]:
                        return winput(i,j)
                if i == 0 and j == 0:
                    if board[i][j] == board[i + 1][j + 1] == board[i + 2][j + 2]:
                        return winput(i,j)
                if i == 2 and j == 0:
                    if board[i][j] == board[i - 1][j + 1] == board[i - 2][j + 2]:
                        return winput(i,j)

def isempty(board):
    for i in range(3):
        for j in range(3):
            if board[i][j] == '+':
                return True
    return False
def main():
    print("初始棋盤:")
    oput(board)
    flag = 0
    t = input("human first? Y/N  human for X, machine for O\n")
    if t == 'Y':
        while isempty(board):
            print("人走:  ")
            a, b = map(int, input("輸入落子縱橫坐標(biāo): a,b \n").split(','))
            if board[a][b] == '+':
               board[a][b] = 'X'
               oput(board)
               flag = test(board)
               if flag == 1:
                  break
            else:
                print("落子位置不對(duì)")
                continue
            ma(board)
            flag = test(board)
            if flag == 1:
                break
            if isempty(board) == 0 and flag == 0:
                print("平局")
                break
    elif t == 'N':
        while isempty(board):
            ma(board)
            flag = test(board)
            if isempty(board) == 0 and flag == 0:
                print("平局")
                break
            if flag == 1:
                break
            print("人走:  ")
            a, b = map(int, input("輸入落子縱橫坐標(biāo): a,b \n").split(','))
            if board[a][b] == '+':
                board[a][b] = 'X'
                oput(board)
                flag = test(board)
                if flag == 1:
                    break
            else:
                print("落子位置不對(duì)")
                continue

if __name__ == "__main__":
    main()

結(jié)果:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python利用open函數(shù)讀寫文件的示例詳解

    Python利用open函數(shù)讀寫文件的示例詳解

    在目前的環(huán)境中,讀取文件應(yīng)該算是最基本的操作了,python也內(nèi)置了讀寫文件的函數(shù),讓我們來(lái)看下Python是如何利用open函數(shù)讀寫文件吧
    2023-04-04
  • python select.select模塊通信全過(guò)程解析

    python select.select模塊通信全過(guò)程解析

    這篇文章主要為大家解析了python select.select模塊通信全過(guò)程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • 推薦技術(shù)人員一款Python開源庫(kù)(造數(shù)據(jù)神器)

    推薦技術(shù)人員一款Python開源庫(kù)(造數(shù)據(jù)神器)

    今天小編給大家推薦一款Python開源庫(kù),技術(shù)人必備的造數(shù)據(jù)神器!非常不錯(cuò),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2020-07-07
  • 利用pipenv和pyenv管理多個(gè)相互獨(dú)立的Python虛擬開發(fā)環(huán)境

    利用pipenv和pyenv管理多個(gè)相互獨(dú)立的Python虛擬開發(fā)環(huán)境

    這篇文章主要介紹了利用pipenv和pyenv管理多個(gè)相互獨(dú)立的Python虛擬開發(fā)環(huán)境,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Django url 路由匹配過(guò)程詳解

    Django url 路由匹配過(guò)程詳解

    這篇文章主要介紹了Django url 路由匹配過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • django在接受post請(qǐng)求時(shí)顯示403forbidden實(shí)例解析

    django在接受post請(qǐng)求時(shí)顯示403forbidden實(shí)例解析

    這篇文章主要介紹了django在接受post請(qǐng)求時(shí)顯示403forbidden實(shí)例解析,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • Python中的閉包使用及作用

    Python中的閉包使用及作用

    這篇文章主要介紹了Python中的閉包使用及作用,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • Python接口自動(dòng)化淺析如何處理動(dòng)態(tài)數(shù)據(jù)

    Python接口自動(dòng)化淺析如何處理動(dòng)態(tài)數(shù)據(jù)

    本文是python接口自動(dòng)化系列文章,主要介紹了接口自動(dòng)化過(guò)程中,動(dòng)態(tài)數(shù)據(jù)如何生成、動(dòng)態(tài)數(shù)據(jù)與數(shù)據(jù)庫(kù)數(shù)據(jù)進(jìn)行對(duì)比并替換,有需要的朋友可以參考下
    2021-08-08
  • 對(duì)python內(nèi)置map和six.moves.map的區(qū)別詳解

    對(duì)python內(nèi)置map和six.moves.map的區(qū)別詳解

    今天小編就為大家分享一篇對(duì)python內(nèi)置map和six.moves.map的區(qū)別詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • python中(str,list,tuple)基礎(chǔ)知識(shí)匯總

    python中(str,list,tuple)基礎(chǔ)知識(shí)匯總

    本文給大家匯總介紹的是python中str(字符串)、list(列表)、tuple(元組)、dict(字典)的一些基礎(chǔ)知識(shí),有需要的小伙伴可以參考下
    2018-02-02

最新評(píng)論

琼中| 洱源县| 崇礼县| 江华| 咸丰县| 正定县| 福建省| 马山县| 内丘县| 襄樊市| 象州县| 梓潼县| 丹巴县| 湟源县| 余庆县| 天峻县| 固阳县| 元氏县| 科技| 临泽县| 琼结县| 新兴县| 县级市| 博白县| 大宁县| 班玛县| 三门峡市| 柳江县| 连云港市| 宜兰市| 钦州市| 外汇| 东兰县| 吉木乃县| 沾益县| 台安县| 永德县| 台南县| 庆安县| 桃源县| 乐至县|