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

📄 c语言编写的推箱子程序.htm

📁 经典小游戏,希望能给大家带来点好处
💻 HTM
📖 第 1 页 / 共 4 页
字号:
                              4:LineEnd(LineX,LineY);break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              case 
                              5:LineWorker(LineX,LineY);break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              case 
                              6:LineEndBox(LineX,LineY);break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              LineX+=20;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              LineY+=20;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              LineX=139;</P>
                              <P>&nbsp; }</P>
                              <P>}</P>
                              <P>void FormatPath(int Key,struct Map 
                              *Point)<BR>{<BR>&nbsp;&nbsp; int 
                              style,style1,style2;<BR>&nbsp;&nbsp; 
                              style=Point-&gt;path[WorkerX][WorkerY];<BR>&nbsp;&nbsp; 
                              switch(Key)<BR>&nbsp;&nbsp; 
                              {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 
                              VK_UP:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              style1=Point-&gt;path[WorkerX][WorkerY-1];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              style2=Point-&gt;path[WorkerX][WorkerY-2];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              if(style1==3&amp;&amp;style2==0)/*旁边是箱子后面是空地*/<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              Point-&gt;path[WorkerX][WorkerY-2]=3;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              else 
                              if(style1==3&amp;&amp;style2==4)/*旁边是箱子后面是目的地*/<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              Point-&gt;path[WorkerX][WorkerY-2]=6;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              else 
                              if(style1==6&amp;&amp;style2==4)/*旁边是已推好的箱子后面是目的地*/<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              Point-&gt;path[WorkerX][WorkerY-2]=6;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              else 
                              if(style1==6&amp;&amp;style2==0)/*旁边是已推好的箱子后面的空地*/<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              Point-&gt;path[WorkerX][WorkerY-2]=3;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              Point-&gt;path[WorkerX][WorkerY-1]=5;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              Point-&gt;path[WorkerX][WorkerY]=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              WorkerY--;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 
                              VK_DOWN:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              style1=Point-&gt;path[WorkerX][WorkerY+1];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              style2=Point-&gt;path[WorkerX][WorkerY+2];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              if(style1==3&amp;&amp;style2==0)/*旁边是箱子后面是空地*/<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              Point-&gt;path[WorkerX][WorkerY+2]=3;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              else 
                              if(style1==3&amp;&amp;style2==4)/*旁边是箱子后面是目的地*/<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              Point-&gt;path[WorkerX][WorkerY+2]=6;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              else 
                              if(style1==6&amp;&amp;style2==4)/*旁边是已推好的箱子后面是目的地*/<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              Point-&gt;path[WorkerX][WorkerY+2]=6;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              else 
                              if(style1==6&amp;&amp;style2==0)/*旁边是已推好的箱子后面的空地*/<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              Point-&gt;path[WorkerX][WorkerY+2]=3;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              Point-&gt;path[WorkerX][WorkerY+1]=5;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              Point-&gt;path[WorkerX][WorkerY]=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              WorkerY++;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 
                              VK_LEFT:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              style1=Point-&gt;path[WorkerX-1][WorkerY];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              style2=Point-&gt;path[WorkerX-2][WorkerY];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              if(style1==3&amp;&amp;style2==0)/*旁边是箱子后面是空地*/<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              Point-&gt;path[WorkerX-2][WorkerY]=3;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              else 
                              if(style1==3&amp;&amp;style2==4)/*旁边是箱子后面是目的地*/<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              Point-&gt;path[WorkerX-2][WorkerY]=6;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              else 
                              if(style1==6&amp;&amp;style2==4)/*旁边是已推好的箱子后面是目的地*/<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              Point-&gt;path[WorkerX-2][WorkerY]=6;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              else 
                              if(style1==6&amp;&amp;style2==0)/*旁边是已推好的箱子后面的空地*/<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              Point-&gt;path[WorkerX-2][WorkerY]=3;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              Point-&gt;path[WorkerX-1][WorkerY]=5;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              Point-&gt;path[WorkerX][WorkerY]=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              WorkerX--;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 
                              VK_RIGHT:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              style1=Point-&gt;path[WorkerX+1][WorkerY];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              style2=Point-&gt;path[WorkerX+2][WorkerY];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              if(style1==3&amp;&amp;style2==0)/*旁边是箱子后面是空地*/<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              Point-&gt;path[WorkerX+2][WorkerY]=3;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              else 
                              if(style1==3&amp;&amp;style2==4)/*旁边是箱子后面是目的地*/<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              Point-&gt;path[WorkerX+2][WorkerY]=6;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              else 
                              if(style1==6&amp;&amp;style2==4)/*旁边是已推好的箱子后面是目的地*/<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              Point-&gt;path[WorkerX+2][WorkerY]=6;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              else 
                              if(style1==6&amp;&amp;style2==0)/*旁边是已推好的箱子后面的空地*/<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              Point-&gt;path[WorkerX+2][WorkerY]=3;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              Point-&gt;path[WorkerX+1][WorkerY]=5;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              Point-&gt;path[WorkerX][WorkerY]=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              WorkerX++;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              }<BR>&nbsp;&nbsp; }<BR>&nbsp;&nbsp; 
                              style1=9;<BR>&nbsp;&nbsp; 
                              for(style=7;style&lt;11;style++)<BR>&nbsp;&nbsp; 
                              {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              if(Point-&gt;path[style][style1]!=5&amp;&amp;Point-&gt;path[style][style1]!=6)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              Point-&gt;path[style][style1]=4;<BR>&nbsp;&nbsp; 
                              }<BR>}</P>
                              <P>int Victoryed(struct Map 
                              *P)<BR>{<BR>&nbsp;&nbsp; 
                              if(IsVictory==P-&gt;Condition)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              return(1);<BR>&nbsp;&nbsp; return(0);<BR>}</P>
                              <P>int MayMove(int key,struct Map 
                              *head)<BR>{<BR>&nbsp;&nbsp; int 
                              style,style1,style2;<BR>&nbsp;&nbsp; 
                              switch(key)<BR>&nbsp;&nbsp; 
                              {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 
                              VK_UP:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              style=head-&gt;path[WorkerX][WorkerY];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              style1=head-&gt;path[WorkerX][WorkerY-1];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              style2=head-&gt;path[WorkerX][WorkerY-2];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 
                              VK_DOWN:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              style=head-&gt;path[WorkerX][WorkerY];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              style1=head-&gt;path[WorkerX][WorkerY+1];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              style2=head-&gt;path[WorkerX][WorkerY+2];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 
                              VK_LEFT:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              style=head-&gt;path[WorkerX][WorkerY];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              style1=head-&gt;path[WorkerX-1][WorkerY];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              style2=head-&gt;path[WorkerX-2][WorkerY];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 
                              VK_RIGHT:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              style=head-&gt;path[WorkerX][WorkerY];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              style1=head-&gt;path[WorkerX+1][WorkerY];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              style2=head-&gt;path[WorkerX+2][WorkerY];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              default:return(0);break;<BR>&nbsp;&nbsp; 
                              }<BR>&nbsp;&nbsp; if(style1==0 || 
                              style1==4)/*旁边没有箱子*/<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              return(1);<BR>&nbsp;&nbsp; else 
                              if((style1==3)&amp;&amp;(style2==0 || 
                              style2==4))/*旁边有一只箱子且箱子后面是空地或目的地*/<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              return(1);<BR>&nbsp;&nbsp; else 
                              if((style1==6)&amp;&amp;(style2==0 || 
                              style2==4))/*旁边是一只已推好的箱子且后面是空白或目的地*/<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              return(1);<BR>&nbsp;&nbsp; 
                              else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              return(0);<BR>}</P>
                              <P>void LineWall(int x,int y)<BR>{<BR>&nbsp;&nbsp; 
                              setfillstyle(SOLID_FILL,RED);<BR>&nbsp;&nbsp; 
                              bar(x,y,x+spread-1,y+spread-1);<BR>}</P>
                              <P>void LineBox(int x,int y)<BR>{<BR>&nbsp;&nbsp; 
                              setfillstyle(INTERLEAVE_FILL,YELLOW);<BR>&nbsp;&nbsp; 
                              bar(x,y,x+spread-1,y+spread-1);<BR>}</P>
                              <P>void LineWorker(int x,int 
                              y)<BR>{<BR>&nbsp;&nbsp; 
                              setfillstyle(LTSLASH_FILL,BLUE);<BR>&nbsp;&nbsp; 
                              fillellipse(x+10,y+10,spread/4,spread/2);<BR>}</P>
                              <P>void LineEnd(int x,int y)<BR>{<BR>&nbsp;&nbsp; 
                              circle(x+10,y+10,(spread-1)/2);<BR>}</P>
                              <P>void LineHatchway(int x,int 
                              y)/*本来是用来画地板的后来*/<BR>{<BR>}</P>
                              <P>void LineEndBox(int x,int 
                              y)<BR>{<BR>&nbsp;&nbsp; 
                              setfillstyle(INTERLEAVE_FILL,YELLOW);<BR>&nbsp;&nbsp; 
                              bar(x,y,x+spread-1,y+spread-1);<BR>&nbsp;&nbsp; 
                              circle(x+10,y+10,(spread-1)/2);<BR>}</P><BR></FONT></TD></TR></TBODY></TABLE></TD></TR>
                    <TR>
                      <TD width="100%" height=25>
                        <DIV align=center></DIV></TD></TR>
                    <TR>
                      <TD width=255 height=20><A class=bottom 
                        href="http://www.cstudyhome.com/wenzhang06/review.asp?NewsID=5500" 
                        target=_blank>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<IMG 
                        height=18 src="C语言编写的推箱子程序_files/icon1.gif" width=18 
                        border=0> <FONT color=blue>发表评论</FONT></A> </TD></TR>

⌨️ 快捷键说明

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