0
私はPythonの初心者です、小さなカードのゲームコード(ちょうど再生のために)を書き込もうとします。規則は以下の通りです:(1)番号1〜10のカード4枚。 (2)任意の番号を使用する必要があり、一度しか使用できません。 (3) '+'、 ' - '、 '*'、 '/'の2つの数字の間で使用することができます (4)正確な数字 '24'とんでもない'。小さなpythonカードのゲームプログラム
私はいくつかのコードを書いていましたが、結果は満足できず、繰り返しの方法がたくさんあり、間違った扱いをしました(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'