У меня есть следующие:Есть ли способ предотвратить обертывание индексов?
# Possible neighbors as tuples
UP = (-1,0)
DOWN = (1,0)
LEFT = (0,-1)
RIGHT = (0,1)
POTENTIAL_NEIGHBORS = (UP, DOWN, LEFT, RIGHT)
def LocateNeighbors(self):
print '\nWorking on: {}:{}'.format(self.index,self.value)
for n in POTENTIAL_NEIGHBORS:
try:
if theBoard[self.index[0]+n[0]][self.index[1]+n[1]]:
print "Adding neighbor: " + theBoard[self.index[0]+n[0]][self.index[1]+n[1]]
self.neighbors.append(n)
except IndexError:
print 'failed on: {}'.format(n)
.. где self
является клетка в игровом поле, такие как:
A B C D E F
1 | {66} | {76} | {28} | {66} | {11} | {09}
-------------------------------------------
2 | {31} | {39} | {50} | {08} | {33} | {14}
-------------------------------------------
3 | {80} | {76} | {39} | {59} | {02} | {48}
-------------------------------------------
4 | {50} | {73} | {43} | {03} | {13} | {03}
-------------------------------------------
5 | {99} | {45} | {72} | {87} | {49} | {04}
-------------------------------------------
6 | {80} | {63} | {92} | {28} | {61} | {53}
-------------------------------------------
Однако, это выход я получаю для первой ячейки я нахожусь проверка (0,0
):
Working on: (0, 0):66
Adding neighbor: 80
Adding neighbor: 31
Adding neighbor: 09
Adding neighbor: 76
по существу, если индекс (то, что я считал бы) недействительно, оно завершается до конца списка. Есть ли способ предотвратить или, по крайней мере, обнаружить это поведение? Или, может быть, более элегантный способ сделать это?