作者:百变精灵545 | 来源:互联网 | 2024-09-28 11:10
我正在用python构建纸牌游戏(与Dobbel类似,如果您知道的话)。游戏在纸牌组中进行,其中每张纸牌上都有多个符号。有效的卡片组是指所有卡片具有相同数量的符号,而每对卡片恰好共享一个符号。
我尝试构建一个功能来检查给定的卡片组是否有效。
这是我的代码:
def is_valid(deck):
new_deck = [deck[0]]
card_counter = 1
while card_counter for i in new_deck:
if len(i) == len(deck[card_counter]) and len(set(deck[card_counter]).intersection(set(i))) == 1:
new_deck.append(deck[card_counter])
card_counter += 1
else:
return False
return True
如您所见,该函数设置了一个新卡组,其中第一张卡在原始卡组中,并且每个循环(使用上行计数器)检查原始卡组中的另一张卡是否符合以下规则:有效的dack,如果是这样,它将添加到新的deck。
我尝试使用该卡片组来运行该功能:
deck = [["dolphin","bomb","spider"],["eye","fire"],["bomb","lock","tree"],["spider","fire","lock"]]
is_valid(deck)
但我不断收到该错误:
if len(i) == len(deck[card_counter]) and len(set(deck[card_counter]).intersection(set(i))) == 1:
IndexError: list index out of range
你们中的任何人都知道可能是什么问题吗?