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

C语言走迷宫

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

C语言走迷宫

走迷宫:

    数据分析:

        1.定义二维字符数组作为迷宫地图

        2.定义变量记录角色的位置 x y

        3.时间:time(NULL)   获取1970-1-1到运行时过了总秒数

    逻辑分析:

        进入死循环:

        1.显示地图

        2.获取方向键并处理

            判断前方是不是路' '

                如果是:

                    1.把旧位置变成' '

                    2.把新位置变成'@'

                    3.更新角色位置坐标x y

        3.判断是否到达出口

            如果是:程序结束

#include
#include
#include
#include

int main(int argc,const char* argv[])
{
    char maze[10][10] = {
        {'*','*','*','*','*','*','*','*','*','*'},    
        {'*','@','*',' ',' ',' ','*','*','*','*'},    
        {'*',' ','*',' ','*',' ','*',' ',' ','*'},    
        {'*',' ','*',' ','*',' ','*',' ','*','*'},    
        {'*',' ','*',' ','*',' ',' ',' ','*','*'},    
        {'*',' ','*',' ','*','*','*','*','*','*'},    
        {'*',' ',' ',' ','*',' ',' ',' ',' ','*'},    
        {'*','*',' ','*','*',' ','*','*',' ','*'},    
        {'*','*',' ',' ',' ',' ','*','*',' ','*'},    
        {'*','*','*','*','*','*','*','*',' ','*'},    
    };
    char row = 1,col = 1;    //记录角色位置    
    time_t start_time=time(NULL);
    int i,j;
    for(;;)
    {
        system("clear");    //清理屏幕
        for(i=0;i<10;i++)    //显示地图
        {
            for(j=0;j<10;j++)
            {
                printf("%c ",maze[i][j]);    
            }
            printf("n");
        }
        // 判断是否到达出口
        if(9 == row && 8 == col)
        {
            printf("游戏胜利!过了%lu秒n",time(NULL)-start_time);
            break;
        }
        switch(getch())        // 获取方向键
        {
            case 183:    //上
                if(' ' == maze[row-1][col])
                {
                    maze[row][col]=' ';
                    maze[--row][col]='@';
                }
                break;
            case 184:    //下
                if(' ' == maze[row+1][col])
                {
                    maze[row][col]=' ';
                    maze[++row][col]='@';
                }
                break;
            case 185:    //右
                if(' ' == maze[row][col+1])
                {
                    maze[row][col]=' ';
                    maze[row][++col]='@';
                }
                break;
            case 186:    //左
                if(' ' == maze[row][col-1])
                {
                    maze[row][col]=' ';
                    maze[row][--col]='@';
                }
                break;
        }
    }
    return 0;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1018675.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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