-3
我正在嘗試完成臭名昭着的「騎士旅遊」騎士必須圍繞整個棋盤移動,直到它沒有更多選項或完成棋盤。我在我的「機芯」代碼中出現不必要的出界錯誤,並且無法找出問題所在。所有幫助表示讚賞!騎士旅遊問題
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;
}
}
}
}
使用調試器或打印出值以查看出界的位置。這就是你學會修復你的代碼的方法。 – Kayaman
代碼是不完整的,至少發佈一個很小的代碼片段,請編譯。 –
這是完整的代碼。我只是不知道爲什麼它不起作用 – ProgrammingKid