Python實現撲克24點小游戲 ,從此我就沒輸過


24點游戲玩法為:從一副撲克中抽取4張牌,對4張牌使用加減乘除中的任何方法,使計算結果為24。 我們用Python來完成24點游戲的程序設計!!從此站在賭神巔峰 我在拉斯維加斯等你

 PS注意:很多人學Python過程中會遇到各種煩惱問題,沒有人解答容易放棄。為此小編建了個Python全棧免費答疑.裙 :七衣衣九七七巴而五(數字的諧音)轉換下可以找到了,不懂的問題有老司機解決里面還有最新Python實戰教程免非下,,一起相互監督共同進步!

一、設計思路:

由於設計到了表達式,很自然的想到了是否可以使用表達式樹來設計程序。本程序的確使用了表達式樹,也是程序最關鍵的環節。簡要概括為:先列出所有表達式的可能性,然后運用表達式樹計算表達式的值。程序中大量的運用了遞歸,各個遞歸式不是很復雜,大家耐心看看,應該是能看懂的

表達式樹:

表達式樹的所有葉子節點均為操作數(operand),其他節點為運算符(operator)。由於本例中都是二元運算,所以表達式樹是二叉樹。下圖就是一個表達式樹

 

具體步驟:

1、遍歷所有表達式的可能情況

遍歷分為兩部分,一部分遍歷出操作數的所有可能,然后是運算符的所有可能。全排列的計算采用了遞歸的思想

 

2、根據傳入的表達式的值,構造表達式樹

由於表達式樹的特點,所有操作數均為葉子節點,操作符為非葉子節點,而一個表達式(例如( ( ( 6 + 4 ) - 2 ) * 3 ) = 24) 只有3個運算符,即一顆表達式樹只有3個非葉子節點。所以樹的形狀只有兩種可能,就直接寫死了

 
 
 
 
 

3、計算表達式樹的值

也運用了遞歸

 

4、輸出所有可能的表達式

還是運用了遞歸

 

5、輸出結果

 

這樣整個程序就全部完成了,注意:很多人學Python過程中會遇到各種煩惱問題,沒有人解答容易放棄。為此小編建了個Python全棧免費答疑.裙 :七衣衣九七七巴而五(數字的諧音)轉換下可以找到了,不懂的問題有老司機解決里面還有最新Python實戰教程免非下,,一起相互監督共同進步!

本文的文字及圖片來源於網絡加上自己的想法,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯系我們以作處理。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM