Ich schreibe einen Code in Python 3, der das Spiel von fünfzehn spielt. Ich arbeite gerade an der Funktion, eine Kachel zu bewegen, aber ich kann mich nicht weiter bewegen. Hier ist, was meine Funktion sieht aus wie jetzt:Listenindex außerhalb des Bereichs in 2d Array
def move(tile, d, board):
for r in range(d):
for c in range(d):
if tile == board[r][c]:
if board[r][c + 1] == "00":
# execute a swap algorithm
if board[r][c - 1] == "00":
# execute a swap algorithm
if board[r - 1][c] == "00":
# execute a swap algorithm
if board[r + 1][c] == "00":
# execute a swap algorithm
return False
d die Dimension hier der Karte ist, die der Benutzer bereitstellt, beispielsweise der Benutzer 4, das Board wird ein 4x4-Quadrat mit den Zahlen 00-15 in es. Was ich hier erreichen will, ist zu überprüfen, ob der Wert der Liste rechts, links, unten oder oben gleich den zwei Nullen ist, denn so habe ich es codiert, ich werde es ändern, nachdem ich fertig bin . Wenn ich mein Programm laufen druckt er das Brett, aber sobald ich in einem Befehl eingeben, die Move-Funktion auslöst, erhalte ich diese Fehler:
08 07 06
05 04 03
02 01 00
Tile to move: 1
Traceback (most recent call last):
File "fifteen.py", line 58, in <module>
if move(tile, d, board) == False:
File "fifteen.py", line 30, in move
if board[r + 1][c] == "00":
IndexError: list index out of range
Kann jemand helfen?