Ich versuche, die berüchtigte "Knights Tour" zu vervollständigen. Wo der Ritter muss sich um die Gesamtheit eines Schachbrettes bewegen, bis es keine Optionen mehr hat oder das Brett vervollständigt. Ich bekomme unerwünschte außerhalb der Grenzen Fehler auf meinem "Bewegung" Code und kann das Problem nicht herausfinden. Alle Hilfe wird geschätzt!Knights Tour Ausgabe
import java.util.*;
public class Tour {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[][] board = new int[8][8];
int rowpos = 1, vertpos = 1;
board[0][0] =1;
Random rand = new Random();
int count = 1;
for (int v=1; v<0;count++){
int gen = rand.nextInt(8);
if (gen == 0 && board[rowpos + 1][vertpos + 2] == 0){
rowpos = rowpos + 1;
vertpos = vertpos +2;
board[rowpos][vertpos]=count;
}
if (gen == 1 && board[rowpos - 1][vertpos - 2] == 0){
rowpos = rowpos - 1;
vertpos = vertpos -2;
board[rowpos][vertpos]=count;
}
if (gen == 2 && board[rowpos - 1][vertpos + 2] == 0){
rowpos = rowpos - 1;
vertpos = vertpos +2;
board[rowpos][vertpos]=count;
}
if (gen == 3 && board[rowpos + 1][vertpos - 2] == 0){
rowpos = rowpos + 1;
vertpos = vertpos -2;
board[rowpos][vertpos]=count;
}
if (gen == 4 && board[rowpos + 2][vertpos + 1] == 0){
rowpos = rowpos + 2;
vertpos = vertpos +1;
board[rowpos][vertpos]=count;
}
if (gen == 5 && board[rowpos + 2][vertpos - 1] == 0){
rowpos = rowpos + 2;
vertpos = vertpos -1;
board[rowpos][vertpos]=count;
}
if (gen == 6 && board[rowpos - 2][vertpos - 1] == 0){
rowpos = rowpos - 1;
vertpos = vertpos -1;
board[rowpos][vertpos]=count;
}
if (gen == 7 && board[rowpos -2 ][vertpos +1] == 0){
rowpos = rowpos -2;
vertpos = vertpos +1;
board[rowpos][vertpos]=count;
}
else{
System.out.print("You moved " +count +" times.");
break;
}
}
}
}
Verwenden Sie einen Debugger oder drucken Sie die Werte aus, um zu sehen, wo Sie sich außerhalb der Grenzen befinden. So lernst du, deinen Code zu reparieren. – Kayaman
Code ist unvollständig, zumindest einen Schnipsel, der minimal ist und bitte kompilieren. –
Dies ist der vollständige Code. Ich kann einfach nicht herausfinden, warum es nicht funktioniert – ProgrammingKid