回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在用<a href="https://en.wikipedia.org/wiki/Langton%27s_ant" rel="nofollow">Langton's ant</a>算法做一个游戏。在这种情况下,我希望列表平铺将数字更新为0。。。但是没有。为什么?你知道吗</p>
<p>注:方向变量基于指南针(n、e、w、s)</p>
<pre><code>posx = 4
posy = 4
direction = 'w'
tiles = [[1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1]]
def posision(posx, posy, tiles, direction):
if tiles[posx][posy] == 1:
tiles[posx][posy] = 0
if tiles[posx][posy] == 0:
tiles[posx][posy] = 1
oldTiles = tiles
if direction == 'n':
if oldTiles[posx][posy] == 1:
posx = posx+1
return 'w', tiles
if oldTiles[posx][posy] == 0:
posx = posx-1
return 'e', tiles
if direction == 's':
if oldTiles[posx][posy] == 0:
posx = posx+1
return 'w', tiles
if oldTiles[posx][posy] == 1:
posx = posx-1
return 'e', tiles
if direction == 'e':
if oldTiles[posx][posy] == 1:
posy = posy +1
return 'n', tiles
if oldTiles[posx][posy] == 0:
posy = posy -1
return 's', tiles
if direction == 'w':
if oldTiles[posx][posy] == 0:
posy = posy +1
return 'n', tiles
if oldTiles[posx][posy] == 1:
posy = posy -1
return 's', tiles
direction, tiles = posision(posx, posy, tiles, direction)
print(tiles)
</code></pre>