Re: 用遞迴解一些小問題

看板Perl作者 (築夢踏實)時間18年前 (2007/03/18 20:26), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串2/2 (看更多)
遞迴的經典當然就是老鼠走迷宮囉 #!/usr/bin/perl <<GRAPH; ██████████████████ ◇◇◇◇ █  █  ██   ██ █ █◇█   █ █  ██ ██ █  ◇◇◇███ █ █    █ ██   ◇◇◇◇◇◇◇█ ██ █ ██ █ ██ ██ ◇█    █ ██    █  █ ◇◇◇█ ██ ██  █ ████ █ ◇█ ██ █████   ██   ◇█  █ █       █  ██◇██ █ █ █ █   █ █  ◇◇◇◇█ ███   ███ █ ████◇█ █   █   ██      ◇◇ ██████████████████ GRAPH $startI=1; $startJ=0; $endI=12; $endJ=17; $success=0; @maze=( [2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2], [0,0,0,0,0,2,0,0,2,0,0,2,2,0,0,0,2,2], [2,0,2,0,2,0,0,0,2,0,2,0,0,2,2,0,2,2], [2,0,0,0,0,0,2,2,2,0,2,0,2,0,0,0,0,2], [2,2,0,0,0,0,0,0,0,0,0,0,2,0,2,2,0,2], [2,2,0,2,0,2,2,0,2,2,0,0,2,0,0,0,0,2], [2,2,0,0,0,0,2,0,0,2,0,0,0,0,2,0,2,2], [2,2,0,0,2,0,2,2,2,2,0,2,0,0,2,0,2,2], [2,2,2,2,2,0,0,0,2,2,0,0,0,0,2,0,0,2], [2,0,0,0,0,0,0,0,2,0,0,2,2,0,2,2,0,2], [2,0,2,0,2,0,0,0,2,0,2,0,0,0,0,0,0,2], [2,2,2,0,0,0,2,2,2,0,2,0,2,2,2,2,0,2], [2,0,0,0,2,0,0,0,2,2,0,0,0,0,0,0,0,0], [2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2] ); mousewalk($startI,$startJ); for($i=0;$i<=13;$i++) { for($j=0;$j<=17;$j++) { if($maze[$i][$j]==0) { print " "; }elsif($maze[$i][$j]==1) { print "◇"; }elsif($maze[$i][$j]==2) { print "█"; } } print $/; } sub mousewalk { my($i,$j)=@_; $maze[$i][$j]=1; $success=1 if($i==$endI && $j==$endJ); mousewalk($i,$j+1) if(!$success && $maze[$i][$j+1]==0); mousewalk($i+1,$j) if(!$success && $maze[$i+1][$j]==0); mousewalk($i,$j-1) if(!$success && $maze[$i][$j-1]==0); mousewalk($i-1,$j) if(!$success && $maze[$i-1][$j]==0); $maze[$i][$j]=0 if(!$success); } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.22.65

03/20 00:43, , 1F
唔喔 這個果然有趣 :D
03/20 00:43, 1F

03/20 17:32, , 2F
接下來可以用遞迴產生迷宮XD
03/20 17:32, 2F
文章代碼(AID): #15_I_rSf (Perl)
文章代碼(AID): #15_I_rSf (Perl)