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實戰教程免非下,,一起相互監督共同進步!
本文的文字及圖片來源于網路加上自己的想法,僅供學習、交流使用,不具有任何商業用途,著作權歸原作者所有,如有問題請及時聯系我們以作處理,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/177286.html
標籤:Python
