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實戰教程免非下,,一起相互監督共同進步!
本文的文字及圖片來源於網絡加上自己的想法,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯系我們以作處理。