⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 超酷的走迷宫程序_数据结构与算法_数据结构算法_c语言_c 语言之家.htm

📁 严蔚民版的数据结构的完整课件
💻 HTM
📖 第 1 页 / 共 4 页
字号:
            width="100%">
              <TBODY>
              <TR>
                <TD align=middle 
                background="超酷的走迷宫程序_数据结构与算法_数据结构算法_C语言_C 语言之家.files/002.jpg" 
                borderColor=#e2ca9f vAlign=top width="69%">
                  <TABLE align=center border=0 cellPadding=0 cellSpacing=0 
                  width="100%">
                    <TBODY>
                    <TR>
                      <TD height=40 width="100%"></TD></TR>
                    <TR>
                      <TD>
                        <FORM action=Readnews.asp?newsid=4776&amp;id2=4776 
                        method=post name=form1>
                        <CENTER><!-- <input type=submit name=aa value="点击关闭浮动图标" width=20 title="点击广告支持本站">--></CENTER></FORM></TD></TR>
                    <TR>
                      <TD align=middle bgColor=#dddddd height=20 
                      style="FONT-SIZE: 18px" vAlign=bottom 
                        width="85%"><STRONG><FONT color=#003399 
                        size=4><B>超酷的走迷宫程序 </B></FONT></STRONG></TD><BR></TR>
                    <TR>
                      <TD align=middle width="100%"><BR></TD></TR>
                    <TR>
                      <TD align=middle style="FONT-SIZE: 9pt" 
                        width="100%">发表日期:2004年11月18日&nbsp;&nbsp;出处:朱清&nbsp;&nbsp;作者:朱清&nbsp;&nbsp;已经有761位读者读过此文</TD></TR>
                    <TR>
                      <TD align=middle width="100%"><!--下面的这一句是设置阅读文本区的宽度-->
                        <TABLE align=center border=0 cellPadding=0 cellSpacing=0 
                        style="TABLE-LAYOUT: fixed" width="90%">
                          <TBODY>
                          <TR>
                            <TD align=middle width="100%"></TD></TR>
                          <TR>
                            <TD style="WORD-WRAP: break-word"><FONT 
                              class=news><BR>
                              <P align=center>超酷的走迷宫程序</P>
                              <P>去年发表的&lt;迷宫探路&gt;系列的Windows版.开发环境:c++builder6 , 
                              windows2000</P>
                              <P>全部工程文件和源文件在附件中(需要 
Winrar&nbsp;解压缩),运行效果大致如下图</P>
                              <P>运行环境: 需要安装c++builder6</P>
                              <P>算法说明参见去年发表的&lt;迷宫探路&gt;I-IV系列文章.</P>
                              <P align=center>
                              <P align=center>
                              <P align=center><IMG 
                              onload="javascript:if(this.width>screen.width-333)this.width=screen.width-333" 
                              src="超酷的走迷宫程序_数据结构与算法_数据结构算法_C语言_C 语言之家.files/20041115100573562.jpg"></P>
                              <P>下面是主要源文件 UnitMaze.cpp</P>
                              <P>另外,本人对单片机感兴趣,有谁知道上海那有便宜的 <FONT 
                              size=2>凌阳科技61板</FONT><FONT size=3> 
                              </FONT>卖,请告诉我.</P>
                              <P>//作者:朱清&nbsp; 2004-11-18<BR>//Email: <A 
                              href="mailto:cleanzhu2002@yahoo.com.cn">cleanzhu2002@yahoo.com.cn</A><BR>//---------------------------------------------------------------------------</P>
                              <P>#include &lt;vcl.h&gt;<BR>#pragma hdrstop</P>
                              <P>#include 
                              "UnitMaze.h"<BR>//---------------------------------------------------------------------------<BR>#pragma 
                              package(smart_init)<BR>#pragma resource 
                              "*.dfm"<BR>TForm1 
                              *Form1;<BR>//---------------------------------------------------------------------------<BR>__fastcall 
                              TForm1::TForm1(TComponent* 
                              Owner)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              : 
                              TForm(Owner)<BR>{<BR>}<BR>//---------------------------------------------------------------------------<BR>&nbsp;<BR>struct&nbsp; 
                              pace{<BR>&nbsp;&nbsp; int pre;<BR>&nbsp;&nbsp; int 
                              ri;<BR>&nbsp;&nbsp; int rj;<BR>&nbsp; } ;</P>
                              <P>&nbsp; int bg[8][8];<BR>&nbsp; int M&nbsp; 
                              ;<BR>&nbsp; int N&nbsp; ;<BR>&nbsp; int step&nbsp; 
                              ;<BR>&nbsp; int dir ;<BR>&nbsp; int i ;<BR>&nbsp; 
                              int j ;<BR>&nbsp; int x ;<BR>&nbsp; int y 
                              ;<BR>&nbsp; int w ;<BR>&nbsp; int h ;<BR>&nbsp; 
                              int count ;<BR>&nbsp; int le ;<BR>&nbsp; pace 
                              road[64] ;<BR>&nbsp; pace bestroad[64] ;<BR>&nbsp; 
                              int runnum ;</P>
                              <P>void __fastcall&nbsp; TForm1::init(TObject 
                              *Sender)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              int i,j;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              for 
                              (i=0;i&lt;8;i++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              for 
                              (j=0;j&lt;8;j++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              bg[i][j]=1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              step=30;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              dir=2;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              M=8;N=8;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              x=5;y=5;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              w=8;h=8;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              setBg();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              //--------<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              drawMaze(Sender);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              findShortRoad(Sender);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              count=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              runnum=0;<BR>}</P>
                              <P>void __fastcall&nbsp; TForm1::drawMaze(TObject 
                              *Sender)<BR>{<BR>&nbsp;&nbsp;&nbsp; int i,j;</P>
                              <P>&nbsp;&nbsp;&nbsp; 
                              //Canvas-&gt;Polyline([Point(0,30),Point(0,240),Point(210,240)]);<BR>&nbsp;&nbsp;&nbsp; 
                              //Canvas-&gt;Polyline([Point(240,210),Point(240,0),Point(30,0)]);<BR>&nbsp;&nbsp;&nbsp; 
                              Canvas-&gt;MoveTo(0,30);<BR>&nbsp;&nbsp;&nbsp; 
                              Canvas-&gt;LineTo(0,240);<BR>&nbsp;&nbsp;&nbsp; 
                              Canvas-&gt;LineTo(210,240);<BR>&nbsp;&nbsp;&nbsp; 
                              Canvas-&gt;MoveTo(240,210);<BR>&nbsp;&nbsp;&nbsp; 
                              Canvas-&gt;LineTo(240,0);<BR>&nbsp;&nbsp;&nbsp; 
                              Canvas-&gt;LineTo(30,0);<BR>&nbsp;&nbsp;&nbsp; for 
                              (i=0 ;i&lt;= 
                              7;i++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              for (j=0;j&lt;= 7;j++)&nbsp; 
                              <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              if( bg[i][j]==1)&nbsp; 
                              <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              Canvas-&gt;Brush-&gt;Color=clGreen;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              Canvas-&gt;Rectangle(j*step,i*step,j*step+step,i*step+step);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              }<BR>}</P>
                              <P>void __fastcall&nbsp; TForm1::setBg() <BR>// 
                              随机生成代表迷宫地图的数组&nbsp; /<BR>{<BR>&nbsp;&nbsp;&nbsp; 
                              int i,j&nbsp; ;<BR>&nbsp;&nbsp;&nbsp; int 
                              ran&nbsp; ;<BR>&nbsp;&nbsp;&nbsp; int dir&nbsp; 
                              ;<BR>&nbsp;&nbsp;&nbsp; int a,b ;<BR>// 初始化迷宫地图 
                              /<BR>&nbsp;&nbsp;&nbsp; 
                              b=w-1;<BR>&nbsp;&nbsp;&nbsp; 
                              a=h-1;<BR>&nbsp;&nbsp;&nbsp; for( i=0 ;i&lt;= 
                              a;i++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              for (j=0;j&lt;= b;j++)&nbsp; 
                              <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              bg[i][j]=1;</P>
                              <P>// 随机生成迷宫通路&nbsp; */<BR>&nbsp;&nbsp;&nbsp; 
                              randomize();<BR>&nbsp;&nbsp;&nbsp; 
                              i=0;j=0;dir=2;<BR>&nbsp;&nbsp;&nbsp; while(true) 
                              <BR>&nbsp;&nbsp;&nbsp; 
                              {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              bg[i][j]=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              if((i&gt;=a) &amp;&amp;&nbsp; (j&gt;=b))&nbsp; 
                              <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              ran=(int)random(4);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              // dir =0,1,2,3 
                              分别表示上次运动方向:向西,向北,向东,向南.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              if(ran&lt;=2)&nbsp;&nbsp; {&nbsp; // 
                              向南<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              if((dir!=1) &amp;&amp; (i&lt;a))&nbsp;&nbsp; 
                              //上次运动方向不是向北并且未到南边界<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              i=i+1;&nbsp; 
                              //向南运动<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              dir=3;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              }&nbsp;&nbsp;&nbsp; 
                              <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              /*else if(ran&lt;=2)&nbsp;&nbsp; 
                              {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              if((dir!=2) &amp;&amp; (j&gt;0))&nbsp; 
                              <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              j=j-1;//向西<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              dir=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              else if(ran&lt;=3)&nbsp;&nbsp; 
                              {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              if((dir!=3) &amp;&amp; (i&gt;0))&nbsp; 
                              <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              i=i-1;//向北<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              dir=1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; 
                              */<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              if((dir!=0) &amp;&amp; (j&lt;b))&nbsp; 
                              <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              j=j+1;//向东<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              dir=2;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              }&nbsp; 
                              <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              }<BR>&nbsp;&nbsp;&nbsp;&nbsp; }<BR>// 
                              随机生成迷宫其余部分&nbsp; */<BR>&nbsp;&nbsp;&nbsp; for 
                              (i=0;i&lt;=a;i++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              for 
                              (j=0;j&lt;=b;j++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              if(bg[i][j]==1)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              ran=(int)random(10);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              if(ran&lt;4)&nbsp; 
                              <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              bg[i][j]=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              }<BR>}</P>
                              <P>void __fastcall&nbsp; TForm1::N2Click(TObject 
                              *Sender)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              ClearCanvas(Sender);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -