请看我的马踩在棋盘上。为什么我不能在一个点跳跃?
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
按任意键继续