象棋棋盘让马走路

本文介绍了一个实验,即如何在象棋棋盘上找出‘马’从位置A到位置B的最短路径。通过创建5x5棋盘并建立邻接矩阵,然后转换为稀疏矩阵,最终实现任意两点间马行走的最短路径计算。附有代码说明和图的绘制提示。
摘要由CSDN通过智能技术生成

实验:象棋棋盘让‘’马‘’走路

  • 绘制一个棋盘,任意给定两个位置A和B,寻找“马”(走“日”字)从A到B的最短路径。

解:

  1. 绘制棋盘。
    为简便起见,我们这里只做5×5的棋盘,也就是有25个点,并且按顺序编号。见下图
    在这里插入图片描述

  2. 创建邻接矩阵来表示这25个点每对节点之间是否可到达,那么就为25×25邻接矩阵。开始时赋值为0矩阵。

  3. 接下来我们需要对邻接矩阵进行赋值。这里赋值的思路由笔者想出,具体可见代码及其注释。还请斧正。

  4. 邻接矩阵创建完成后,就可以创建其对应稀疏矩阵,并且绘制25个点每对节点之间是否可到达的无向关系图。见下图。
    在这里插入图片描述

  5. 任意输入两个位置,给出马从A到B的最短路径。

代码:

chessgraph = zeros(25,25);    %创建一个邻接矩阵,值为1的地方表示可到达,0表示不可到达(在每次只考虑一步情况下)
relmat = zeros(9,9);
relmat(3:7,3:7) = reshape([1:1:25],5,5);      %创建一个5×5棋盘,非
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值