中国象棋-马-有障碍

题目

现有一个n∗m​​​​大小的棋盘,在棋盘的第x行第y​​列的位置放置了一个棋子,其他位置中的一部分放置了障碍棋子。棋子的走位参照中国象棋的“马”(障碍棋子将成为“马脚”)。求该棋子到棋盘上每个位置的最小步数。

1:中国象棋中“马”的走位为“日”字形,如下图所示。

中国象棋-马-有障碍_题目描述1.png

2:与“马”直接相邻的棋子会成为“马脚”,“马”不能往以“马”=>“马脚”为长边的方向前进,如下图所示。

中国象棋-马-有障碍_题目描述2.png

思考

利用bfs遍历,最主要的就是处理障碍问题。注意到长边方向前进,前面有障碍的话,就会导致马撇脚。例如上图4*4的棋盘,点坐标为(x,y),马在(2,2),障碍在(3,2),马需要向(1,4)去,则增长量为dx = 2,dy = -1࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值