无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

MATLAB小程序,隨機(jī)生成迷宮

2023-03-27 14:17 作者:量子光子  | 我要投稿

以下是一個有趣的MATLAB小程序,它可以繪制出一個隨機(jī)生成的迷宮,然后使用深度優(yōu)先搜索算法來尋找從起點(diǎn)到終點(diǎn)的路徑。您可以將該程序作為起點(diǎn),并根據(jù)自己的興趣和技能水平進(jìn)行修改和擴(kuò)展。


% 生成迷宮

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;


% 深度優(yōu)先搜索算法尋找路徑

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

該程序生成一個隨機(jī)的20x20迷宮,然后使用深度優(yōu)先搜索算法尋找從左上角到右下角的路徑,并將路徑繪制為紅色線條。運(yùn)行程序時,您可以多次嘗試,以便獲得不同的迷宮和路徑。

MATLAB小程序,隨機(jī)生成迷宮的評論 (共 條)

分享到微博請遵守國家法律
木兰县| 东莞市| 池州市| 同仁县| 夏邑县| 武汉市| 三亚市| 绥德县| 绵阳市| 仙桃市| 贵溪市| 松原市| 油尖旺区| 盐池县| 西安市| 梧州市| 瑞昌市| 华容县| 绩溪县| 兴安县| 离岛区| 安乡县| 静安区| 子长县| 井冈山市| 宁蒗| 阳山县| 石屏县| 固镇县| 元谋县| 大石桥市| 独山县| 调兵山市| 百色市| 桂林市| 顺义区| 德清县| 龙山县| 康马县| 阿坝县| 特克斯县|