我一直在尝试不同的方法来使这个功能更简洁,或者我的朋友称之为'光滑',这里有什么帮助吗?
def craps():
from random import randint
dice = 0
loop = 0
while loop < 1:
d1 = randint(1,6)
d2 = randint(1,6)
roll = d1 + d2
dice += 1
print(d1, d2)
while dice == 1:
first=roll
if roll in {2,3,12}:
loop += 1
return 0
elif roll in {7,11}:
loop += 1
return 1
else:
break
while dice != 1:
if first==roll:
loop += 1
return 1
elif roll==7:
loop += 1
return 0
else:
break
答案 0 :(得分:0)
规则IIUC是:在第一轮第2,3,6场失利,7或11胜。否则,如果你在7到达之前重复相同的总数你就赢了,如果7先到而你输了。
在代码中我写道:
def roll():
d1 = randint(1, 6)
d2 = randint(1, 6)
print((d1, d2))
return d1 + d2
def game():
first = roll()
if first in (2, 3, 12):
return 0
if first in (7, 11):
return 1
while True:
other = roll()
if other == first:
return 1
elif other == 7:
return 0
请注意,巧合不是一个好目标,目标是可读性。通常使代码更短可以提高可读性,但并不总是如此(参见代码高尔夫比赛......对于代码来说无疑是有趣的,但不是你想在生产中处理的东西)。