<p>利用规则而不是硬编码任何东西。你知道吗</p>
<p>如果你有一个3x3迷宫,你的(x,y)索引是类似的</p>
<pre><code>0,0 1,0 2,0
0,1 1,1 2,1
0,2 1,2 2,2
</code></pre>
<p>您可以将其存储为列表列表:</p>
<pre><code>field = [ ["one","two","three"],["four","five","six"],["seven","eight","nine"] ]
pos = (0,0)
p = field[pos[0]][pos[1]] # would be "one"
# rules for movement based on actual position:
move_right = pos[0] < (3-1)
move_left = pos[0] > 0
move_up = pos[1] > 0
move_down = pos[1] < (3-1)
</code></pre>
<p>可以使用函数对其进行编码:</p>
<pre><code># p is a coordinate (0,0) etc tuple of x and y
# as functions
def can_move_right(p, dim=3):
return p[0] < dim-1
def can_move_left(p,dim=3):
return p[0] > 0
def can_move_up(p, dim=3):
return p[1] > 0
def can_move_down(p,dim=3):
return p[1] < dim-1
def move_up(p):
if can_move_up(p):
return (p[0],p[1]-1)
# implicitly returns None if not possible
def move_down(p):
if can_move_down(p):
return (p[0],p[1]+1)
# etc
new_pos = move_up( (1,1) ) # => (1,0)
new_pos = move_down( (1,1) ) # => (1,2)
new_pos = move_up( (0,0) ) # None - need to handle it
if not new_pos:
print("Wrong move")
</code></pre>
<p>要调整<code>n</code>x <code>n</code>,只需给出其他<code>dim</code>规则是相同的。你知道吗</p>