MATLAB小程序:随机生成迷宫游戏

以下是一个有趣的MATLAB小程序,它可以绘制出一个随机生成的迷宫,然后使用深度优先搜索算法来寻找从起点到终点的路径。您可以将该程序作为起点,并根据自己的兴趣和技能水平进行修改和扩展。

cut-off

% 生成迷宫

M = zeros(20,20);

for i = 1:20

    for j = 1:20

        if rand < 0.3

            M(i,j) = 1;

        end

    end

end

% 绘制迷宫

figure;

imagesc(M);

colormap(gray);

axis equal;

axis off;

% 深度优先搜索算法寻找路径

visited = zeros(20,20);

stack = [1,1];

path = [];

while ~isempty(stack)

    current = stack(end,:);

    stack(end,:) = [];

    if current(1) == 20 && current(2) == 20

        path = [path;current];

        break;

    end

    if visited(current(1),current(2)) == 0 && M(current(1),current(2)) == 0

        visited(current(1),current(2)) = 1;

        path = [path;current];

        neighbors = [current(1)-1,current(2);current(1),current(2)-1;            current(1)+1,current(2);current(1),current(2)+1];

        for i = 1:size(neighbors,1)

            if neighbors(i,1) >= 1 && neighbors(i,1) <= 20 && neighbors(i,2) >= 1 && neighbors(i,2) <= 20

                if visited(neighbors(i,1),neighbors(i,2)) == 0

                    stack = [stack;neighbors(i,:)];

                end

            end

        end

    end

end

% 绘制路径

hold on;

for i = 1:size(path,1)-1

    plot([path(i,2),path(i+1,2)],[path(i,1),path(i+1,1)],'r','LineWidth',2);

end

cut-off

该程序生成一个随机的20x20迷宫,然后使用深度优先搜索算法寻找从左上角到右下角的路径,并将路径绘制为红色线条。运行程序时,您可以多次尝试,以便获得不同的迷宫和路径。

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空