棋子从任何位置出发,走日字,走完整个棋盘,输出所走位置
# zhix,zhiy表示当前位置;
# x,y显示结果;
# zx,zy方向针;
# w存放位置的矩阵(是否走过),u存放可选步数的矩阵
zx <- c(1,-1,-2,-2,-1,1,2,2)
zy <- c(-2,-2,-1,1,2,2,1,-1)
w <- matrix(0,nrow=5,ncol=9)
u <- matrix(c(2,3,4,4,4,4,4,3,2,
3,4,6,6,6,6,6,4,3,
4,6,8,8,8,8,8,6,4,
3,4,6,6,6,6,6,4,3,
2,3,4,4,4,4,4,3,2),
nrow=5,ncol=9,byrow=T)
x <- rep(0,45)
y <- rep(0,45)
fangxiang <- rep(0,44)
zhix=4
zhiy=2
w[zhix,zhiy]=1
x[1]=zhix;y[1]=zhiy
for (i in 2:45) {
min=9
for (j in 1:8) {
newx <- zhix + zx[j] ; newy <- zhiy + zy[j]
if (newx>0 & newx<6 & newy>0 &newy<10) {
if (w[newx,newy]==0){
if (u[newx,newy]<min) {min=u[newx,newy] ; z=j }
}
}
}
fangxiang[i]=z
zhix = zhix + zx[z] ; zhiy = zhiy +zy[z]
x[i] = zhix ; y[i] = zhiy
w[zhix,zhiy] = 1
}
x
y
fangxiang


雷达卡



京公网安备 11010802022788号







