日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

基于python純函數實現井字棋游戲

瀏覽:123日期:2022-07-24 13:20:18

1、定義全局變

’’’全局變量: X 和 O 表示兩方的棋子; EMPTY 表示棋位為空; TIE 表示平局; NUM_SQUARES 表示有 9 個棋位 ’’’ X = 'X' O = 'O' EMPTY = ' ' TIE = 'TIE' NUM_SQUARES = 9

2、定義調用到的函數

def ask_yes_no(question): ’’’問一個是或否的問題,用 y 或 n 回答。’’’ response = None while response not in (’y’, ’n’): response = input(question).lower() return responsedef ask_number(question, low, high): ’’’訊問一個規定范圍的數字。’’’ response = None while response not in range(low, high): response = int(input(question)) return responsedef pieces(): ’’’決定在人和機器之間誰先行棋。’’’ go_first = ask_yes_no(’你先走? (y/n): ’) if go_first == ’y’: print(’n好,你先請。’) human = X computer = O else: print(’n你放棄先手,我先走。’) computer = X human = O return computer, humandef new_board(): ’’’創建一個棋盤。’’’ board = [] for square in range(NUM_SQUARES): board.append(EMPTY) return boarddef display_board(board): ’’’顯示棋盤。’’’ print(’nt’, board[0], ’|’, board[1], ’|’, board[2]) print(’t’, ’---------’) print(’t’, board[3], ’|’, board[4], ’|’, board[5]) print(’t’, ’---------’) print(’t’, board[6], ’|’, board[7], ’|’, board[8], ’n’)def legal_moves(board): ’’’創建合法的行棋位置清單。’’’ moves = [] for square in range(NUM_SQUARES): if board[square] == EMPTY: # 該棋位為空 moves.append(square) return movesdef winner(board): ’’’判定游戲獲勝者。’’’ WAYS_TO_WIN = ((0, 1, 2), # 橫 (3, 4, 5), (6, 7, 8), (0, 3, 6), # 豎 (1, 4, 7), (2, 5, 8), (0, 4, 8), # 主對角線 (2, 4, 6)) # 副對角線 # 誰先有三個棋子在一條直線上誰就獲勝。 for row in WAYS_TO_WIN: if board[row[0]] == board[row[1]] == board[row[2]] != EMPTY: winner = board[row[0]] return winner # 沒有獲勝方,但棋盤已經下滿,判為平局 if EMPTY not in board: return TIE return None # 沒有獲勝方,且非平局def human_move(board, human): ’’’獲取玩家的行棋位置。’’’ legal = legal_moves(board) # 合法的行棋位置清單 move = None while move not in legal: move = ask_number(’你走哪? (0 - 8):’, 0, NUM_SQUARES) if move not in legal: print(’n你選的棋位已落子,重新選擇。n’) print(’落子無悔...’) return movedef computer_move(board, computer, human): ’’’獲取電腦的行棋位置。’’’ board = board[:] # 通過切片復制棋盤, 創建局部變量 BEST_MOVES = (4, 0, 2, 6, 8, 1, 3, 5, 7) # 優先的行棋位置 print(’我走到:’, end=’ ’) # 在局部空間確定可以獲勝的走法 for move in legal_moves(board): # 合法的行棋位置列表 board[move] = computer # 更新棋盤副本 if winner(board) == computer: # 計算機能獲勝 print(move) return move # 如果計算機在該棋位行棋不能獲勝, board[move] = EMPTY # 悔棋,更換下一個合法棋位 # 阻止玩家獲勝 for move in legal_moves(board): # 合法的行棋位置列表 board[move] = human # 更新棋盤 if winner(board) == human: # 在該棋位玩家行棋后將獲勝 print(move) return move # 玩家不能獲勝,不行棋至此 board[move] = EMPTY # 沒有能使行棋雙方立決勝負的棋位,從優先棋位選擇合法行棋位置 for move in BEST_MOVES: if move in legal_moves(board): print(move) return movedef next_turn(turn): ’’’切換行棋方’’’ if turn == X: return O else: return X def congrat_winner(the_winner, computer, human): ’’’向獲勝方表示祝賀或聲明平局’’’ if the_winner != TIE: print(the_winner, ’祝賀你!n’) else: print(’平局。。。n’) if the_winner == computer: print(’如我所料,我又勝了。n這是否能說明計算機在給方面都優于人類呢?’) elif the_winner == human: print(’真是匪夷所思,你沒搗鬼吧?人類怎么會勝? n不會有下次了。’ ) elif the_winner == TIE: print(’你很厲害嘛,能跟計算機打成平手。’)

3、定義主函數

def main(): display_instruct() # 顯示游戲操作指南 computer, human = pieces() # 決定誰先行棋 turn = X # 先行棋方執子 X board = new_board() # 創建空棋盤 display_board(board) # 顯示棋盤 while not winner(board): # 判定結果,在沒有獲勝方且不是平局時進入循環 if turn == human: # 輪到玩家行棋,玩家行棋 move = human_move(board, human) # 玩家的行棋位置 board[move] = human # 更新棋盤 else: # 輪到電腦行棋 move = computer_move(board, computer, human) # 電腦的行棋位置 board[move] = computer # 更新棋盤 display_board(board) # 顯示更新后的棋盤 turn = next_turn(turn) # 切換行棋方 the_winner = winner(board) # 判定獲勝者,返回獲勝方的執子,平局返回 None congrat_winner(the_winner, computer, human) # 向獲勝方表示祝賀或聲明是平局

4、調用主函數,啟動程序

main()input(’nn按回車鍵退出程序。’) # 等待用戶

在 jupyter 中演練如下:

基于python純函數實現井字棋游戲

基于python純函數實現井字棋游戲

基于python純函數實現井字棋游戲基于python純函數實現井字棋游戲

基于python純函數實現井字棋游戲

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲免费成人av在线| 1024精品一区二区三区| 亚洲综合欧美| 日韩中文字幕91| 日本一区二区中文字幕| 日韩不卡一区二区三区 | 国产丝袜一区| 欧美一区精品| a天堂资源在线| 91精品电影| 免费人成黄页网站在线一区二区| 视频国产精品| 日韩精品亚洲专区| 国产精品久久| 波多野结衣久久精品| 免费av一区二区三区四区| 久久亚洲影院| 国产精品18| 亚洲福利久久| 亚洲日本欧美| 久久精品系列| 自拍日韩欧美| 日韩福利视频一区| 精品欧美视频| 午夜在线视频观看日韩17c| 奇米亚洲欧美| 成人精品天堂一区二区三区| 欧美福利专区| 国产精品综合色区在线观看| 日韩三区免费| 日韩精品国产欧美| 欧洲av不卡| 日韩有吗在线观看| 欧美aa一级| 亚洲狼人精品一区二区三区| 国产一区二区三区亚洲| 欧美日韩精品一本二本三本 | 亚洲夜间福利| 国产九九精品| 欧美va天堂在线| 国产精品一国产精品k频道56| 99成人在线视频| 日韩av电影一区| 亚洲天堂久久| 麻豆国产91在线播放| 中文精品视频| 亚洲免费福利| 国产精品自拍区| 免费在线观看成人| 久久精品成人| 精品三级在线观看视频| 日韩高清成人在线| 黄色日韩精品| 一本大道色婷婷在线| 日韩综合一区二区三区| 久久国产日韩| 成人亚洲精品| 青青国产91久久久久久| 免费视频亚洲| 国产不卡人人| 国产精品v亚洲精品v日韩精品| 亚洲在线免费| 国产在线|日韩| 精品伊人久久久| 欧美伊人久久| 在线看片日韩| 午夜免费一区| 色网在线免费观看| 国产欧美日韩在线观看视频| 婷婷丁香综合| 久久久久国产| 国产传媒在线观看| 精品视频一二| 欧美激情五月| 国产福利一区二区三区在线播放| 日韩在线a电影| 五月天久久777| 99视频精品视频高清免费| 国产成人在线中文字幕| 国产精品二区影院| 欧美一级二级视频| 亚洲精品高潮| 一区二区三区四区日韩| 午夜一区在线| 亚洲免费激情| 国产精品视区| 99在线|亚洲一区二区| 偷拍欧美精品| 一区二区自拍| 久久国产精品久久久久久电车| 亚洲成av人片一区二区密柚| 日韩久久电影| 99精品在线观看| 亚洲福利免费| 激情久久久久久| 不卡中文字幕| 国产精品美女| 亚洲精选av| 亚洲精品第一| 日韩手机在线| 国产精品密蕾丝视频下载| 国产人成精品一区二区三| 国产精品久久久久久久久久齐齐| 免费亚洲婷婷| 黄色在线观看www| 日韩精品久久久久久久电影99爱| 日韩精品影视| 亚洲经典在线| 亚洲精品中文字幕99999| 欧美日韩91| 精品亚洲a∨一区二区三区18| 精品三级在线| 今天的高清视频免费播放成人| caoporn视频在线| 你懂的网址国产 欧美| 老司机免费视频一区二区| 福利一区在线| 久久美女精品| 一区二区国产在线| 国产精品欧美在线观看| yellow在线观看网址| 激情久久五月| 日韩中文字幕麻豆| 麻豆精品在线| 一区二区三区视频免费观看| 日韩精品一级中文字幕精品视频免费观看 | 欧美国产免费| 私拍精品福利视频在线一区| 香蕉久久国产| 国产精品成人自拍| 日韩毛片视频| 男女男精品网站| 精品亚洲成人| 亚洲欧美日韩专区| 欧美精品第一区| 免费观看不卡av| 日韩欧美四区| 精品国产免费人成网站| 免费的成人av| 国产成人久久精品一区二区三区| 日本在线高清| 亚洲专区视频| 日韩av福利| 青草国产精品久久久久久| 中国字幕a在线看韩国电影| 久久不射中文字幕| 久久香蕉精品香蕉| 麻豆久久精品| 国产福利电影在线播放| 中文字幕av亚洲精品一部二部| 国产一区精品福利| 模特精品在线| 水蜜桃精品av一区二区| 三级亚洲高清视频| 日韩中文首页| 国产精品日本一区二区不卡视频 | 精品国产午夜| 亚洲精品免费观看| 欧美羞羞视频| 国产精品亚洲欧美一级在线| 激情五月综合| 精品免费av| 亚洲精品看片| 伊人久久婷婷| 国模大尺度视频一区二区| 亚洲精品系列| 五月婷婷六月综合| 黄色在线网站噜噜噜| 日韩av字幕| 亚洲深爱激情| 99精品综合| 色在线视频观看| 鲁大师精品99久久久| 91嫩草精品| 深夜福利亚洲| 蜜桃久久av| 午夜国产精品视频免费体验区| 久久男人av资源站| 精品亚洲a∨| 日本免费新一区视频| 亚洲综合精品四区| 一级欧洲+日本+国产| 欧美精品资源| 国产一区二区久久久久| 国产精品magnet| 欧美欧美黄在线二区| 日本不卡视频一二三区| 亚洲精品综合| 伊人精品久久| 蜜臀国产一区二区三区在线播放| 亚洲特色特黄| 99视频精品全国免费| | 国产不卡人人| 精品高清久久| 精品国产18久久久久久二百| 国产伦理久久久久久妇女| 国产乱子精品一区二区在线观看 | 亚洲tv在线| 日韩精品中文字幕一区二区|