创建一个关于;“球帽”;在Python3.3中

创建一个关于;“球帽”;在Python3.3中,python,artificial-intelligence,Python,Artificial Intelligence,我目前正在从事一个python项目,以创建一个类似于拾起棍子的游戏,我已经到了一个令人困惑的地步。我已经创建了一个列表列表stickList,我想获取一个值([1,2,3]),并使用它减少一个变量。以下是我当前使用的代码: 如果我在板上有30根棍子,我希望计算机抓取1根、2根或3根棍子,将板上的棍子减少该数字,然后让用户从那里拾取循环。遗憾的是,我不确定我做错了什么,因为sticksOnBoard-=stickList(ballPick)不起作用。如果你想要我认为你想要的,那么你想要的是随机模块

我目前正在从事一个python项目,以创建一个类似于拾起棍子的游戏,我已经到了一个令人困惑的地步。我已经创建了一个列表列表stickList,我想获取一个值([1,2,3]),并使用它减少一个变量。以下是我当前使用的代码:


如果我在板上有30根棍子,我希望计算机抓取1根、2根或3根棍子,将板上的棍子减少该数字,然后让用户从那里拾取循环。遗憾的是,我不确定我做错了什么,因为sticksOnBoard-=stickList(ballPick)不起作用。

如果你想要我认为你想要的,那么你想要的是
随机
模块

如果您使用列表的长度来确定您的选择,则需要确保这些选择在列表的范围内。幸运的是,使用
range()
功能会自动执行此操作,因此在索引之前获取列表的
len()
,您将永远不会失败

import random
my_choices = range(0, len(some_list))
print random.choice(my_choices)
编辑:啊,也许你看到选择超出了范围?将
sticksOnBoard
设置为列表的长度将导致出现
索引器

>>> mylist = [x for x in range(0, 16)] #this list will have items 0 through 15, for a total of 16
>>> mylist[16] #this is 1 too large for the list, however
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range
>>mylist=[x代表范围(0,16)中的x]#此列表将包含0到15项,总共16项
>>>mylist[16]#然而,这对于列表来说太大了
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
索引器:列表索引超出范围
如果始终希望列表中的最后一项,可以使用
mylist.pop()
始终删除列表中的最后一项。如果你在一个列表上循环,这可能会导致问题


您还可以使用mylist[-1]进行索引,它将始终为列表中的最后一项进行索引。

'code'(ai_选项=(1,2,3)ballPick=随机。choice(ai_选项)move-=stickList[sticksOnBoard][ballPick]sticksOnBoard-=move move=0)那么,也许你可以发布你看到的那种错误?您没有包含错误消息,只是它“不起作用”。我正在使用move-=stickList[sticksOnBoard][ballPick]获取一个超出范围的列表索引,我希望它理想地查看列表列表,并在[sticksOnBoard][ballPick]访问列表,例如,如果还有23个条,我想转到第23个列表,然后使用random.choice获取1 2或3。好的,所以您需要为索引使用有效的数字。请记住,如果要为列表编制索引,则需要在0和
len(list)-1之间进行选择。请参阅我答案的后半部分,了解
索引器的注释