可以寫出乙個自動鬥地主 每一步都是最優操作 的程式嗎?

時間 2021-06-08 01:50:50

1樓:合金彈頭

當然可以(直覺上的第一回答)

然後細想了一下,就粗略的說說大概策略(非深度學習,因為這塊我不懂)就是每次輪到AI出牌時,AI首先按照已知的概率在腦海中給另外倆人分牌(排除自己手中牌隨機分牌給對手),然後挨個執行操作,比如這次分牌後打出單7,再深度模擬打牌幾輪,通過極大極小演算法估值出打單7的勝率是X;再模擬下乙個操作,比如打出單K,然後估值出打單K的勝率是Y;再再模擬下乙個操作,比如pass,然後pass的勝率是Z。。。最後比較所有X、Y、Z等她們的值,選出乙個最高者作為這次分牌的操作最優解。

然後AI再在腦海中模擬下一輪分牌,再選出這輪的勝率最優解。再然後再模擬一輪分牌,以此類推,直到模擬N輪分牌,最後的最後,從這N輪分牌中,挑出乙個出現頻率最高的最優解,選它作為這次出牌的實際動作即可。

其實還可以更厲害一點,比如加個合理猜牌的演算法:比如AI打了單3,下架李四接了單7,而AI手裡有對7,所以AI就可以設定最後的單7在張三手裡的概率是25%(或者別的數字),這樣AI在自己腦海中模擬分牌時,就可以設定最後那張單7分到張三手裡的概率是25%了,這樣的話會更準一點

2樓:NN陳

不管可不可以,感興趣的話就試試,對你學習程式設計,學習演算法很有幫助。

只要有明確規則的,就可以程式設計來實現,至少達到普通人水平沒什麼問題,因為大部分人都不會記牌,算牌。你可以先把你理解或設計的規則編寫進去,剩下的就是決策問題。

我估計常規的推算沒問題,難在你要猜測對方出牌的動機,以及對方的水平。不能用規則來描述的地方就是決策,一副牌可以有多種組合,有些牌可要可不要,並不是要的起就要。

告誡一句,不要試圖窮舉所有的可能,然後再選擇最優路徑,這是最笨的演算法。要能直接篩選出可能性最大的一組情況,這樣才智慧型。這就是為什麼當年專家斷言圍棋在幾十年內很難被電腦攻破的原因。

因為圍棋的可能性太多,電腦不可能窮舉。阿爾法狗使用深度學習演算法避開了窮舉問題,通過概率直接得出可能性較大的走法,再在有限的走法之中做推敲。

跟男朋友下象棋,水平相差甚遠,我每一步防守都很艱辛,下了半小時後我輸了,心情很不好,我這種心態正常嗎?

浮生長恨歡愉少 題主不要傷心,我來讓你樂呵樂呵。象棋是男朋友教的,也是個小菜鳥水平。剛學會時和男朋友玩象棋,老是輸 我覺得很正常,畢竟太菜了 當時我還有點鬥志,然後悄悄地在手機上學了技術繼續和他玩。後來他感覺我上道一點之後,步步殺招,往死裡逼,我輸了還要被笑,我生氣他嘲笑我,他狡辯說是看我氣急敗壞的...

23歲的人生,怎樣一步一步成為乙個情商高的人?

背影 只要乙個人在群體,那他身邊無論怎樣都有一些情商高的人,情商高不單單是說話,更重要的是務實和處事!自己去提公升自己,多去和別人交流,乙個愛學習的人不一定情商高,情商高的人一定是愛學習的!所以先沉下心去學習,一步一步慢慢來,每個人都擁有獨一無二的優秀品質,也有從基因本性中保留的劣根性,關鍵看個人怎...

有乙個好的創業專案,應該怎麼一步一步去實施?

那年開始 我創業兩次都失敗,以下是我的乙個小小經驗 我們乙個人每個週都會突然冒出很多想法,自己感覺是很好的專案,我敢說80 的人都有開一家店或者創業的想法,最後都是不了了之。總之檢驗乙個專案好不好 1.了解市場上有沒有相似或者接近的專案 分析專案的差異和市場對這個專案的需求 2.你這個專案的難易程度...