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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

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

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

井字棋是一個(gè)經(jīng)典的小游戲,在九宮格上玩家輪流畫OXO,當(dāng)每列或每行或是兩個(gè)對角成一線時(shí)便是獲勝。

今天就用Python編寫一個(gè)井字棋小游戲,與電腦對戰(zhàn)。

程序執(zhí)行畫面如下圖所示:

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

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

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

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

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

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

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

若上述兩個(gè)動(dòng)作都不成立,則接著判斷以下步驟落子

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

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

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

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

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

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

這是一個(gè)小游戲的范例,或許也稱不上人工智能,主要是拿來練習(xí)Python程序的應(yīng)用。

作者:Ashing Tsai

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

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。