日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

python井字棋_用Python做一个井字棋小游戏

發布時間:2023/11/27 生活经验 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python井字棋_用Python做一个井字棋小游戏 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

井字棋是一個經典的小游戲,在九宮格上玩家輪流畫OXO,當每列或每行或是兩個對角成一線時便是獲勝。

今天就用Python編寫一個井字棋小游戲,與電腦對戰。

程序執行畫面如下圖所示:

程序提供了兩種人工智能選擇,一個是強人工智能另一個是弱人工智能,選擇強人工智能,如果計算機先下,玩家可以說是沒有贏的可能,因此特地弄出一個弱人工智能選項,一來增加游戲的趣味,一來可以比較這兩者在程序設計上的差異。選擇弱人工智能,玩家通常可以簡單的獲勝。

游戲一開始還須得選擇O或X,然后會隨機選擇玩家先下或是計算機先下。

整個程序最主要的核心在于如何決定計算機如何落子,也就是人工智能實現的部分,這部分的程序落在底下程序,function:getComputerMove(self,board) 是實現強人工智能的方法。他有幾個判斷步驟,首先:

第一步驟:程序代碼165~170 ,先判斷該次落子"計算機"是否有獲勝的可能,用循環尋訪所有

可落子地方,若有可獲勝的可能則在該地方落子

第二步驟:程序代碼172~178 ,先判斷該次落子"玩家"是否有獲勝的可能,用循環尋訪所有

可落子地方,若"玩家"有可獲勝的可能則在該地方落子,目的是為了阻止玩家獲勝

若上述兩個動作都不成立,則接著判斷以下步驟落子

第三步驟:程序代碼180~183,[1,3,7,9]代表著在九宮格的四個角的編號,此段程序在此四個角落隨機選擇一地方下子

第四步驟:程序代碼185~187,[5]代表著在九宮格的中間位置的編號,此段程序判斷中間位置是否可落子

第五步驟:程序代碼189~190,[2,4,6,8]代表著在九宮格的四個邊的編號,此段程序在此四個邊落隨機選擇一地方下子

透過判斷以上五個步驟的落子選擇ˊ,可以讓計算機無論是先手或是后手都可以處于不敗之地。

底下程序,function:getComputerMove_2(self,board) 則是實現弱人工智能的方法,其實也就是改變上述強人工智能的方法,只保留第一步驟規則,其余落子則是隨機選擇。

另一個重要的程序片段如下266~276,用來判斷是否勝出,也就是判斷每列或每行或是對角線是否有相同的O或X即可獲勝。

這是一個小游戲的范例,或許也稱不上人工智能,主要是拿來練習Python程序的應用。

作者:Ashing Tsai

更多精彩文章請關注微信公眾號?易心Microbit編程

總結

以上是生活随笔為你收集整理的python井字棋_用Python做一个井字棋小游戏的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。