0
我是一個python初學者,試着寫一個小卡片遊戲代碼(僅供玩)。規則如下:(1)編號爲1-10的4張牌。 (2)必須使用任何數字,且只能使用一次。 (3)只有'+',' - ','*','/'可以在兩個數字之間使用 (4)列出所有方法以獲得確切數字'24',如果沒有辦法,沒門'。小蟒蛇遊戲程序
我寫了一些代碼,但結果不滿意,很多重複的方法和對待'/'錯誤(5/2應該是2.5不是2)。任何人都可以幫忙
import itertools
def braStr(string1):
return '(' + string1 + ')'
def steps(input,list1 = []):
if len(input)==2:
list1.append(braStr(input[0]+ '+' + input[1]))
list1.append(braStr(input[0]+ '-' + input[1]))
list1.append(braStr(input[0]+ '*' + input[1]))
list1.append(braStr(input[0]+ '/' + input[1]))
else:
for e in itertools.permutations(input):
steps((braStr(e[0]+ '+' + e[1]),) + e[2:],list1)
steps((braStr(e[0]+ '-' + e[1]),) + e[2:],list1)
steps((braStr(e[0]+ '*' + e[1]),) + e[2:],list1)
steps((braStr(e[0]+ '/' + e[1]),) + e[2:],list1)
while True:
cards = raw_input("Please enter the 4 cards: ").split()
if len(cards) != 4:
print "you need 4 cards to begin!"
list1 = []
steps(cards,list1)
result = False
for e in list1:
try:
if eval(e) == 24:
print e + '=', eval(e)
result = True
except:
continue
if result is False:
print 'No way'