我有一份清单清单。它们最初是空列表,在我的程序过程中,我通过在前面插入值来添加到列表中。这是一场纸牌游戏。与纸牌相似。因此,列表列表以Ace开头,以King结束。我目前要做的是确定玩家何时真正赢得比赛,这意味着当国王是列表列表中每个列表的第一张牌时。我在做这件事时遇到了麻烦。目前,当我遍历我的函数时,一旦一个列表具有王值,它就会让我知道我赢了。
BANNER = WINNER!!
foundations = [ [], [], [], [] ]
for lst in foundations[:]:
for item in lst:
if item.rank() == 13: # the rank of a king
print(BANNER)
return True
else:
return False
我正在寻找的是:
when foundations = [ [13], [13], [13], [13] ] # all four list containing king
then the loop returns True
任何提示如何阻止代码给我错误的希望并在我真正赢得比赛时让我知道?
答案 0 :(得分:0)
问题是,只要if item.rank() == 13
条件为True
,就会从函数返回,这对胜利来说是不够的。
您似乎也在逐步浏览所有列表值,但您只需要逐步浏览每个列表中的第一个。
所以你要找的代码是
for list in foundations:
if list[0] != 13:
return False # this is definitely not a win
return True # this code will only work if return False didn't work
在这种情况下,我假设每个list
至少有一个值。根据您的问题,您可能希望解决此假设。