求助-马踏棋盘

来源:互联网 发布:单词翻译软件 编辑:程序博客网 时间:2024/04/27 19:40

以下是我的java代码

import java.util.Scanner;public class 马踏棋盘 {public static int[][] fangXiang = { { -2, 1 }, { -1, 2 }, { 1, 2 },{ 2, 1 }, { 2, -1 }, { 1, -2 }, { -1, -2 }, { -2, -1 } };public static void main(String[] args) {// TODO Auto-generated method stubScanner scanner = new Scanner(System.in);int[][] qiPan = new int[8][8];int i, j;for (i = 0; i < 8; i++) {for (j = 0; j < 8; j++) {qiPan[i][j] = 0;}}System.out.println("输入初始位置:");int x = scanner.nextInt();int y = scanner.nextInt();qiPan[x - 1][y - 1] = 1;searchPath(x - 1, y - 1, qiPan, 2);System.out.println("寻找路径结束!!!");}public static void searchPath(int x, int y, int[][] qiPan, int bu) {System.out.println("通过函数寻找路径中。。。。。。");System.out.println("当前起始位置为:" + x + " " + y);System.out.println("当前步数为:" + bu);int i, j, k, l, m;int xTemp, yTemp;int[][] qiPanTemp = new int[8][8];int buTemp;// 对新创建的棋盘进行赋值for (j = 0; j < 8; j++) {for (k = 0; k < 8; k++) {qiPanTemp[j][k] = qiPan[j][k];}}// 分别对8个方向进行判断for (i = 0; i < 8; i++) {xTemp = x + fangXiang[i][0];yTemp = y + fangXiang[i][1];System.out.println("尝试第" + i + "个方向");System.out.println("尝试的位置为" + xTemp + " " + yTemp);if (xTemp < 0 || xTemp >= 8 || yTemp < 0 || yTemp >= 8) {} else {if (qiPanTemp[xTemp][yTemp] != 0) {} else {buTemp = bu;qiPanTemp[xTemp][yTemp] = buTemp;buTemp++;if (buTemp < 65) {searchPath(xTemp, yTemp, qiPanTemp, buTemp);} else {System.out.println("路径为。。。。。。。。。。。。。。。。。。。。。。。。。。。。");for (l = 0; l < 8; l++) {for (m = 0; m < 8; m++) {if (qiPanTemp[l][m] < 10) {System.out.print(0);System.out.print(qiPanTemp[l][m] + " ");} else {System.out.print(qiPanTemp[l][m] + " ");}}System.out.println();}System.out.println();}qiPanTemp[xTemp][yTemp] = 0;}}}}}

我不明白为什么会产生死循环呢?求助大神啊

0 0
原创粉丝点击