我对编程非常陌生,正在尝试使用 Pygame 创建战舰游戏。我的游戏功能和人工智能与玩家的对抗,目前我正在努力研究如何将人工智能的炸弹放置到位。我创建了一个函数(bombs
),将grid[row][column]
设置为2
,它将输出“Boom” “如果点击。如果我将单个值设置为 2(如第 55 行所示),它会起作用,但我希望随机设置炸弹。
我的游戏中处理人工智能炸弹的部分:
import random
def bombs():
for i in range(0,8):
row = random.randint(1,8)
column = random.randint(1,8)
grid[row][column] = 2
print(row,column)
i = i+1
# Create a 2 dimensional array. A two dimensional array is simply a list of lists.
grid = []
for row in range(8):
# Add an empty array that will hold each cell
# in this row
grid.append([])
for column in range(0,8):
grid[row].append(0) # Append a cell
错误:
Traceback (most recent call last):
File "C:\Users\hazza\OneDrive\Desktop\Python\CHECK.py", line 54, in <module>
bombs()
File "C:\Users\hazza\OneDrive\Desktop\Python\CHECK.py", line 9, in bombs
grid[row][column] = 2
IndexError: list index out of range
最佳答案
random.randint(a, b)
生成一个随机整数 N,使得 a <= N <= b。列表索引从 0 开始。
使用random.randrange
生成指定范围内的随机列和行:
row = random.randrange(8)
column = random.randrange(8)
grid[row][column] = 2
random.randrange
的工作方式类似于 range
,但它不会生成范围,它只是返回指定范围内的随机数。
关于python - 为什么我的程序会产生列表索引问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63472822/