【发布时间】:2015-04-12 00:05:37
【问题描述】:
我正在做一个家庭作业来制作一个简单的纸牌游戏,但我不明白为什么我不能使用相同的方法来制作我的起始套牌并指定卡片的起始位置。我们不应该使用比列表和数组更复杂的东西(因为这就是我们迄今为止所学的全部内容)。
第一部分(构建套牌)工作正常。应该分配位置的第二部分(“甲板”,稍后我将放入“玩家手”和“计算机手”的位置来处理卡片)不起作用,我不明白为什么我可以不要使用相同的方法。 我不断收到“列表索引超出范围”的错误,我不知道如何解决它。
def startDeck():
suitName = ("hearts", "diamonds", "spades", "clubs")
rankName = ("Ace", "Two", "Three", "Four", "Five", "Six", "Seven",
"Eight", "Nine", "Ten", "Jack", "Queen", "King")
suitName = list(suitName)
rankName = list(rankName)
deck = []
for suit in range(4):
for rank in range(13):
card_string = rankName[rank] + " of " + suitName[suit]
deck.append(card_string)
return deck
def startCardLoc():
deck = startDeck()
locName = ("Deck")
deck = list(deck)
locName = list(locName)
cardLoc = []
for loc in range(52):
for firstloc in range(1):
loc_string = locName[loc]
cardLoc.append(loc_string)
return cardLoc
print startCardLoc()
这是错误的回溯:
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-1-6d73de457be8> in <module>()
24 return cardLoc
25
---> 26 print startCardLoc()
<ipython-input-1-6d73de457be8> in startCardLoc()
20 for loc in range(52):
21 for firstloc in range(1):
---> 22 loc_string = locName[loc]
23 cardLoc.append(loc_string)
24 return cardLoc
IndexError: list index out of range
感谢您的任何帮助。
【问题讨论】:
-
您的问题是您将
locName设置为("Deck")。你为什么这样做? -
另外,当您只迭代一项时,没有理由使用
for循环——例如range(1)。你甚至不使用变量firstloc。 -
另一件事:很明显你的意思是
tuples,而不是arrays。我试图编辑这个,但被拒绝了。 -
哦,我不知道。我对编程真的很陌生,我的教授只是让我感到困惑而不是帮助。
-
我正在尝试将 52 张卡片中每一张的位置设置为“deck”,然后我将编写函数将 5 的位置分配为“玩家手牌”,将 5 的位置分配给“计算机手”,其余的将留在“甲板”中。我不确定执行此操作的最佳方法。这是有道理的,我不需要 for 循环。
标签: python list playing-cards