栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

简易版走迷宫(c语言)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

简易版走迷宫(c语言)

数据分析:
1、定义一个二维数组作为迷宫地图
2、人用@表示,#表示迷宫的墙
3、记录所化的时间(time函数)

逻辑分析:
一个死循环
进入死循环:
1、显示地图(遍历二维数组)
2、等待获取命令(方向键)并处理
判断前方是不是路’ ’
如果是:
1、把旧位置变成’ ’
2、把新位置变成‘@’
3、更新角色位置坐标 x y
3、判断是否到达出口(可以提到2之前)
如果是:程序结束
不是:继续执行程序

#include
#include
#include
#include
int main(int argc,const char* argv[])
{
//地图
char maze[10][10] = {
         {'#','#','#','#','#','#','#','#','#','#'},
         {'#',' ','#','#','#',' ',' ',' ','#','#'},
         {'#','@','#','#','#',' ','#',' ','#','#'},
         {'#',' ','#','#','#',' ','#',' ',' ','#'},
         {'#',' ','#','#','#',' ','#','#',' ','#'},
         {'#',' ','#','#','#',' ','#','#',' ','#'},
         {'#',' ',' ',' ','#',' ','#','#',' ',' '},
         {'#','#','#',' ','#',' ','#','#','#','#'},
         {'#','#','#',' ',' ',' ','#','#','#','#'},
         {'#','#','#','#','#','#','#','#','#','#'},
     };
 
     //记录角色的位置坐标
     char man_x = 2,man_y=1;
 
     //计入游戏开始时间
     time_t start_time = time(NULL);
      for(;;)//死循环
     {
         //清理屏幕
         system("clear");
 
         //显示地图打印二位数组
         for(int i=0;i<10;i++)
         {
             for(int j=0;j<10;j++)
             {   
                 printf("%c ",maze[i][j]);
             }
             printf("n");
         }
 
         //判断是否到达出口
         if(man_x == 6 && man_y == 9)
         {
            printf("n你逃出迷宫了!n");
            printf("你花费了%lu秒!",time(NULL)-start_time);
            return 0;
         }
  
         //方向键处理
         switch(getch())
         {
             case 183://人向上的判断
                 if(' ' == maze[man_x-1][man_y])
                 {
                     maze[man_x][man_y] = ' ';
                     maze[--man_x][man_y] = '@';
                 }
                 break;
             case 184://人向下的判断
                if(' ' == maze[man_x+1][man_y])
                {
                     maze[man_x][man_y] = ' ';
                     maze[++man_x][man_y] = '@';
                }     
                break;
             case 186://人向左的判断
                 if(' ' == maze[man_x][man_y-1])
                 {
                     maze[man_x][man_y] = ' ';
                     maze[man_x][--man_y] = '@';
                 }
                 break;
             case 185://人向右的判断
                 if(' ' == maze[man_x][man_y+1])
                 {
                     maze[man_x][man_y] = ' ';
                     maze[man_x][++man_y] = '@';
                 }
                 break;
         }
     }
       return 0;
   }

结果实例:



暑期编程PK赛 得CSDN机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1016001.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号