用户掷5个骰子。如果其中4个成一排,则授予用户30分;否则不授予分数。当我有一个包含5个数字的列表来表示骰子时,如何搜索该列表以查看是否包含四个连续数字?我的代码如下:
diceList = sorted(diceList)
elif letterChoice == "J" and diceCombinations[9] == False:
diceList = list(set(diceList))
print (diceList)
if diceList in [[1,2,3,4], [2,3,4,5], [3,4,5,6]]:
score = score + 30
diceCombinations[9] = True
这个方法大部分情况下都可以正常工作,但是如果我掷出了1、2、3、4或6,就会有问题。感谢您的帮助。
row & diceList == row
更改为row <= diceList
来节省一些工作,这样做可以进行适当的真子集检查(带有短路效应),而无需创建临时set
并执行比较。 - ShadowRangerdiceList = [2, 4, 1, 3, 6]
应该失败)。尽管使用diceList = sorted(diceList)
和diceList = list(set(diceList))
可以消除顺序。 - Steven SummersdiceList
代表掷五个骰子;在我玩过的所有骰子游戏中,骰子不必按正确顺序排列,只需出现即可。此外,OP将diceList
排序作为他的第一步。 - Ethan Furman