-2

我正在开发一款战舰游戏,此时我已经为游戏创建了一个网格,并且 for 循环调用了“get_location”函数来为每艘船随机生成位置。有“if”语句测试船舶是否适合在放置之前选择的位置,然后有一个添加船舶功能将船舶放置在网格上。但有时 AI 将船放置并脱离网格,我得到“列表索引超出范围”错误。

我知道错误在说什么,但我不知道如何解决它。我希望有人可以帮助我解决这个问题。这是我的代码中导致问题的部分:

def get_location(索引):

# Get the name and size from the lists using the index.
name = VESSEL_NAMES[index]
size = VESSEL_SIZES[index]

column = random.randint(0, GRID_WIDTH)
row = random.randint(0, GRID_HEIGHT)
direction = random.randint(H, V) # H=0, V=1 (global constants)
print()
if (direction == H and column + size > GRID_WIDTH) :
    get_location(index)
    print()
if (direction == V and row + size > GRID_HEIGHT) :
    get_location(index)
    print()
else :
    add_vessel(index, row, column, direction)

提前感谢您的回复。

4

1 回答 1

0

我可能在这里遗漏了一些东西,但不会 random.randint(0, GRID_WIDTH) 可能给你 GRID_WIDTH,我认为它会超出索引吗?

于 2013-10-17T03:10:25.977 回答