迷宫探路

2016-02-19 13:26 6 1 收藏

想要天天向上,就要懂得享受学习。图老师为大家推荐迷宫探路,精彩的内容需要你们用心的阅读。还在等什么快点来看看吧!

【 tulaoshi.com - 编程语言 】

    曾经听说过一个走迷宫的诀窍:顺着墙沿一侧走。
  (一直沿左侧或一直沿右侧)。本程序实现了这一
  思想,小人一直沿左侧走。
      迷宫是随机生成的。
      开始时,按数字 1 键进入人工控制模式;按w,s,a,d分别代表上,下,左,右方向。
      开始时,按除数字 1 以外的任意键进入自动模式;
  小人由电脑控制。    按 Q键结束程序。 /*
    Name:    maze.c
    Author:      zhuqing
    Description:     迷宫探险  Date: 28-08-03 10:15
    Copyright:
  */
  #include stdlib.h
  #include time.h
  #include math.h
  #include stdio.h
  #include graphics.h
  #define N 22
  #define M 22
  int bg[M][N];void makebg(int,int);
  void drawbg(int[][],int,int,int,int,int);
  void drawman(int,int,int);
  void rect(int,int,int,int);void main(){/* main()开始 */
  int step=20;
  int len=10;
  int size=20;
  int x=0,y=0;
  int i=0,j=0;
  int gdriver=DETECT,gmode;
  char ch;
  int direc;
  makebg(M,N);
  /*  registerbgidriver(EGAVGA_driver);*/
  /* initgraph(&gdriver,&gmode,"c:urboc2"); */initgraph(&gdriver,&gmode,"c:c20gi");
  cleardevice();
  setwritemode(XOR_PUT);
  settextstyle(1,0,3);
  setcolor(GREEN);
  outtextxy(100,180,"Press Q to quit");
  setcolor(BLUE);
  setfillstyle(LINE_FILL,BLUE);drawbg(bg,M,N,size,0,0);
  setcolor(WH99vE);
  x+=len;y+=len;
  drawman(x,y,len);
  setcolor(GREEN);
  outtextxy(60,120,"PRESS KEY 1 :YOU ,");
  outtextxy(70,150,"OTHER KEY :AUTOMATIC");
  setcolor(WH99vE);
  if((ch=getch())=='1'){
  /* 人工控制 */while((ch=getch())!='q'){
    drawman(x,y,len);
    switch(ch){
      case 'a':
          if(j0&&bg[i][j-1]==0){
              if(xstep){x-=step;j--;};
          }
          break;
      case 's':
          if(iM-1&&bg[i+1][j]==0){
              if(y479-step){y+=step;i++;};
          }
          break;
      case 'd':
          if(jN-1&&bg[i][j+1]==0){
              if(x639-step){x+=step;j++;}
          }
          break;
      case 'w':
          if(i0&&bg[i-1][j]==0){
              if(ystep){y-=step;i--;}
          }
          break;
      default :break;
    }
    drawman(x,y,len);
   delay(800);
   if(i=M-1&&j=N-1){
      settextstyle(4,0,3);
      setcolor(RED);
      outtextxy(150,260,"YOU WIN!");
    }
    setcolor(WH99vE);
  }
   closegraph();
  }/* 人工控制结束 */
  
  else{
  /* 电脑控制 */
  /* direc表示上一步运动方向 */
  /* 并表示下一步运动方向 */
  /* 0~3分别表示 西、北、东、南 */direc=2;
  i=j=0;
  while(iM-1jN-1){
      delay(80000);
      drawman(x,y,len);
      switch(direc){
      case 0:
          /* 以3,0,1的次序尝试 */
          if(iM-1&&bg[i+1][j]==0){
              y+=step;i++;
              direc=3;
          }   
          else if(j0&&bg[i][j-1]==0){
              x-=step;j--;
              direc=0;           
          }
          else if(i0&&bg[i-1][j]==0){
              y-=step;i--;
              direc=1;           
          }
          else {
              x+=step;j++;
              direc=2;           
          }             
          break;
      case 1:
          if(j0&&bg[i][j-1]==0){
              x-=step;j--;
              direc=0;           
          }
          else if(i0&&bg[i-1][j]==0){
              y-=step;i--;
              direc=1;           
          }
          else if(jN-1&&bg[i][j+1]==0){
              x+=step;j++;
              direc=2;           
          }
          else{
              y+=step;i++;
              direc=3;
          }                     
          break;
      case 2:
          if(i0&&bg[i-1][j]==0){
              y-=step;i--;
              direc=1; 
          }   
          else if(jN-1&&bg[i][j+1]==0){
              x+=step;j++;
              direc=2;           
          }
          else if(iM-1&&bg[i+1][j]==0){
              y+=step;i++;
              direc=3
  

来源:http://www.tulaoshi.com/n/20160219/1604305.html

延伸阅读
《勇者闯迷宫》刷初始攻略 事先声明,此方法是从波可龙迷宫wiki上看到的,因为在巴哈没看到有人发才会转过来,如果使用后无效我也没有办法,小弟并非Android程式高手......需要ROOT!!!! 1.先关闭游戏 2. (用 ES File Explorer或其他软件) 到/data/data/jp.grenge.pocolondungeon...
标签: 育儿知识
治理挑食宝宝 从早饭开始   妈咪们可别小看了早餐,你要为孩子提供她需要的营养来维持能量和适当的增长,并帮助防止一会之后孩子的饥饿。有些孩子天生挑剔,可能是先天偏好或者是口感更加敏感。但是你的孩子的挑剔并不意味着你必须跳过这一天最关键的一餐。   1、在同一时间吃早餐   你的小家伙的大脑和身...
3DS《世界树迷宫4:传承的巨神》剑士技能一览 3DS《世界树迷宫4:传承的巨神》剑士技能一览 一、NOVICE 二、VETERAN 三、MASTER NDS《世界树迷宫》各职业加点方法 初期有人不知道该怎么加点 这里推荐一下我的方法 ...
《波可龙迷宫》宠物级装备强化心得 《波可龙迷宫》中的中午与武器等装备是可以强化的,而强化宠物除了素材还需要钱,所以强化宠物时要有选择,而武器装备因为需要石头,更加需要有计划性,下面是详解强化心得。 平常的素材and不需要的宠物请直接卖掉,只用强化宠来升级,至少要有可进5星宠在...
《文明 太空》高效探路方法分享 指引前方道路! 下面为大家带来《文明 太空》高效探路方法分享。 看到有人在说,开局的时候要先把近处的遗迹挖了,方便回去补给。 表面看上去这样可以多挖几个遗迹,但实际上这是一个误区。 举个例子,你3T走到遗迹那,挖完就是8T,回去补给后再走出来又要经过6T,一来一回就浪费了11T。而这11T如果一直往外走...

经验教程

631

收藏

29

精华推荐

利用SDK实现迷宫算法

利用SDK实现迷宫算法

差_半步

潘朵拉迷宫攻略

潘朵拉迷宫攻略

爱的讨伐99

新世界树迷宫攻略

新世界树迷宫攻略

小沫446

微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部