python實(shí)現(xiàn)簡(jiǎn)單的井字棋
本文實(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)文章
Django框架搭建的簡(jiǎn)易圖書信息網(wǎng)站案例
這篇文章主要介紹了Django框架搭建的簡(jiǎn)易圖書信息網(wǎng)站案例,結(jié)合具體實(shí)例形式分析了基于Django框架實(shí)現(xiàn)圖書信息管理網(wǎng)站的具體步驟、相關(guān)實(shí)現(xiàn)技巧與操作注意事項(xiàng),需要的朋友可以參考下2019-05-05Python(PyS60)實(shí)現(xiàn)簡(jiǎn)單語(yǔ)音整點(diǎn)報(bào)時(shí)
這篇文章主要為大家詳細(xì)介紹了Python(PyS60)實(shí)現(xiàn)簡(jiǎn)單語(yǔ)音整點(diǎn)報(bào)時(shí),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11python數(shù)據(jù)結(jié)構(gòu)之二叉樹(shù)的遍歷實(shí)例
這篇文章主要介紹了python數(shù)據(jù)結(jié)構(gòu)之二叉樹(shù)的遞歸遍歷實(shí)例,需要的朋友可以參考下2014-04-04python PaddleSpeech實(shí)現(xiàn)嬰兒啼哭識(shí)別
這篇文章主要為大家介紹了python PaddleSpeech實(shí)現(xiàn)嬰兒啼哭識(shí)別操作詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08pycharm的console輸入實(shí)現(xiàn)換行的方法
今天小編就為大家分享一篇pycharm的console輸入實(shí)現(xiàn)換行的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01Python實(shí)現(xiàn)全局變量的兩個(gè)解決方法
這篇文章主要介紹了Python實(shí)現(xiàn)全局變量的兩個(gè)解決方法,需要的朋友可以參考下2014-07-07關(guān)于Python排序sort()函數(shù)和sorted()函數(shù)
這篇文章主要介紹了關(guān)于Python排序sort()函數(shù)和sorted()函數(shù),利用Python中的內(nèi)置函數(shù)去實(shí)現(xiàn)直接排序,需要的朋友可以參考下2023-04-04Python常見(jiàn)讀寫文件操作實(shí)例總結(jié)【文本、json、csv、pdf等】
這篇文章主要介紹了Python常見(jiàn)讀寫文件操作,結(jié)合實(shí)例形式總結(jié)分析了Python常見(jiàn)的各種文件讀寫操作,包括文本、json、csv、pdf等文件的讀寫與相關(guān)注意事項(xiàng),需要的朋友可以參考下2019-04-04