楼主: 只R初见
1415 2

[问答] 求教大神:马踏棋盘 [推广有奖]

  • 0关注
  • 0粉丝

已卖:11份资源

硕士生

37%

还不是VIP/贵宾

-

威望
0
论坛币
72 个
通用积分
5.7008
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
201 点
帖子
75
精华
0
在线时间
233 小时
注册时间
2015-11-26
最后登录
2025-11-9

楼主
只R初见 发表于 2016-6-20 15:45:17 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
棋子从任何位置出发,走日字,走完整个棋盘,输出所走位置
# 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
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:当前位置

沙发
只R初见 发表于 2016-6-20 15:46:38
程序不知道哪里出错,有的初始位置不能走完半个棋盘啊

藤椅
只R初见 发表于 2016-6-20 15:47:45
程序不知道哪里出错,有的初始位置无法走完半个棋盘,棋盘是5*9的

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-20 16:53