请看我的马踩在棋盘上。为什么我不能在一个点跳跃?

if((++ hor step = = cheboxnum)& amp;& ampchebox[i][j]==0)

{

chebox[I][j]= hor step;

返回TRUE

}

如果(我& lt0 | | i & gt= cheboxrow | | j & lt0 | | j & gt=cheboxrow||chebox[i][j]!=0)

{

horstep-;

返回FALSE

}

这两句话的问题

先判断非法条件,再判断合格条件。

否则比如说。

当它到达步骤64时,I = 2,J = 9。

如果你这样写,它将返回true。

所以上面的两句话应该写成这样

如果(我& lt0 | | i & gt= cheboxrow | | j & lt0 | | j & gt=cheboxrow||chebox[i][j]!=0)

{

horstep-;

返回FALSE

}

if((++ hor step = = cheboxnum)& amp;& ampchebox[i][j]==0)

{

chebox[I][j]= hor step;

返回TRUE

}

我跑得很正确

但是速度太慢了。

必须耐心等待一段时间。

运行结果:

现在是骑马桌游,规格8*8!

请输入起始坐标startx,starty,用逗号分隔,范围从0到7:

0,0

1 10 19 64 3 12 21 24

28 63 2 11 20 23 4 13

9 18 27 30 5 14 25 22

62 29 8 17 26 31 6 15

45 48 61 38 7 16 41 32

60 37 46 49 42 39 56 53

47 44 35 58 51 54 33 40

36 59 50 43 34 57 52 55

按任意键继续