c语言迷宫游戏的实现

//
//  main.c
//  迷宫游戏代码实现
//

#include <stdio.h>
#define ROW 6   //宏定义行
#define COL 6   //宏定义列

/**
 *  打印地图
 *
 *  @param arr 地图数组
 */
void print_arr (char arr[ROW][COL]) {
    for (int i = 0; i < ROW; i ++) {
        for (int j = 0; j < COL; j ++) {
            printf("%c", arr[i][j]);
        }
        printf("\n");
    }
}
int main(int argc, const char * argv[]) {
    char map[ROW][COL] = {{‘#‘, ‘#‘, ‘#‘, ‘#‘, ‘#‘, ‘#‘},
                          {‘#‘, ‘@‘, ‘#‘, ‘#‘, ‘ ‘, ‘ ‘},
                          {‘#‘, ‘ ‘, ‘#‘, ‘#‘, ‘ ‘, ‘#‘},
                          {‘#‘, ‘ ‘, ‘ ‘, ‘#‘, ‘ ‘, ‘#‘},
                          {‘#‘, ‘#‘, ‘ ‘, ‘ ‘, ‘ ‘, ‘#‘},
                          {‘#‘, ‘#‘, ‘#‘, ‘#‘, ‘#‘, ‘#‘}};

    print_arr(map);
    printf("迷宫游戏:w.上, s.下, a.左, d.右 q.退出\n");
    char direction, ch, street = ‘ ‘, people = ‘@‘;
    int currentX = 1, currentY = 1;
    while (1) {
        scanf("%c", &direction);
        scanf("%c", &ch);
        switch (direction) {
            case ‘w‘:
            case ‘W‘:
                if (map[currentX-1][currentY] == street) {
                    map[currentX-1][currentY] = people;
                    map[currentX][currentY] = ‘ ‘;
                    currentX--;
                }
                break;
            case ‘s‘:
            case ‘S‘:
                if (map[currentX+1][currentY] == street) {
                    map[currentX+1][currentY] = people;
                    map[currentX][currentY] = ‘ ‘;
                    currentX++;
                }
                break;
            case ‘a‘:
            case ‘A‘:
                if (map[currentX][currentY-1] == street) {
                    map[currentX][currentY-1] = people;
                    map[currentX][currentY] = ‘ ‘;
                    currentY--;
                }
                break;
            case ‘d‘:
            case ‘D‘:
                if (map[currentX][currentY+1] == street) {
                    map[currentX][currentY+1] = people;
                    map[currentX][currentY] = ‘ ‘;
                    currentY++;
                }
                break;
            case ‘q‘:
            case ‘Q‘:
                    printf("退出游戏\n");
                    return 0;
                    break;
        }
        print_arr(map);
        if (currentY == 5) {
            printf("恭喜你,走出迷宫!");
            break;
        }
    }
    return 0;
}

  

时间: 2024-08-07 08:18:14

c语言迷宫游戏的实现的相关文章

C语言小游戏设计报告

课程设计名称:贪吃蛇小游戏 专业班级:计科15-2 学号:150809229 姓名:XXX 一.设计目标 通过设计,培养学生对电脑的动手能力,使学生巩固<C语言程序设计>课程学习的内容,掌握编写程序的基本方法,强化对其的动手能力,可以独自完成程序的编写. 二.设计内容和要求 设计内容 编写贪吃蛇的小游戏,使其可以成功运行并且操作玩耍. 设计要求 1)源程序要有适当的注释,使程序便于阅读. 2)要有程序运行结果作为依据 三.程序流程 1.编写地图 运用函数,数组编写地图 2.相同的方法把蛇添加进

迷宫游戏(单源最短路)

个人心得:对于复杂抽象的算法还是比较模糊,希望以后有待加强.这题就是用dijskrual算法,在算出最短时间的时候进行适当的更改,还是比较模糊. 1459 迷宫游戏 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 你来到一个迷宫前.该迷宫由若干个房间组成,每个房间都有一个得分,第一次进入这个房间,你就可以得到这个分数.还有若干双向道路连结这些房间,你沿着这些道路从一个房间走到另外一个房间需要一些时间.游戏规定了你的起点和终点房间,你首要目标是从起点尽

迷宫游戏 用栈实现

#include<iostream> #include<string> #include<stack> using namespace std; #define n 8 stack <int *> s; int * createMaze(){//初始化迷宫 int i,j; int * a; a=new int[n*n]; for(i=0;i<n;i++){ for(j=0;j<n;j++){ *(a+n*i+j)=-1;//不设置为0的原因是超

51nod 1459迷宫游戏,迪杰特斯拉算法

1459 迷宫游戏 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 你来到一个迷宫前.该迷宫由若干个房间组成,每个房间都有一个得分,第一次进入这个房间,你就可以得到这个分数.还有若干双向道路连结这些房间,你沿着这些道路从一个房间走到另外一个房间需要一些时间.游戏规定了你的起点和终点房间,你首要目标是从起点尽快到达终点,在满足首要目标的前提下,使得你的得分总和尽可能大.现在问题来了,给定房间.道路.分数.起点和终点等全部信息,你能计算在尽快离开迷宫的前提下,你的最大得

用栈实现迷宫游戏寻路

在我们学习数据结构的时候都曾经见过迷宫游戏,迷宫游戏的实现其实并不难,但是,我们在实现每一个算法的时候都应该想一想这个问题的每一个解.最近,博主已经开始重温数据结构啦,记得我们以前学习这里的时候,老师会用队列来实现迷宫最优解的寻找,氮素呢,博主就是这么可爱,博主就是想试试用栈来找一下. 在实现之前让我们先来复习一下栈的特点:first in last out 对于栈这种数据结构我们只能在栈顶对其操作,根据实际情况可将其实现成链式或者顺序结构.但是一般情况下我们都会实现成顺序结构,因为栈的特点导致

【C语言探索之旅】 第一部分第八课:第一个C语言小游戏

? 内容简介 1.课程大纲 2.第一部分第八课:第一个C语言小游戏 3.第一部分第九课预告: 函数 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写三个游戏. C语言编程基础知识 什么是编程? 工欲善其事,必先利其器 你的第一个程序 变量的世界 运算那点事 条件表达式 循环语句 实战:第一个C语言小游戏 函数 练习题 习作:完善第一个C语言小游戏 C语言高级技术 模块化编程 进击的指针,C语言王牌 数组 字符串 预处理 创建你自己的变量类型 文

【Qt编程】3D迷宫游戏

说起迷宫想必大家都很熟悉,个人感觉迷宫对人的方向感是很大的考验,至少我的方向感是不好的,尤其是在三维空间中.由于这段时间帮导师做项目用到了三维作图,便心血来潮想做个三维迷宫玩玩.要想画出三维的迷宫游戏,我们需要先从二维开始. 二维迷宫: 迷宫的程序描述: 现实生活中,我们经常将问题用数学的方法来描述并解决(数学建模).同样的,我们想用程序来解决问题,就得把问题程序化.废话不多说,进入正题: 我们可以用一个矩阵matrix来描绘整个迷宫:元素为1,代表是空的,元素为0代表墙.为了描述问题的方便,下

51nod1459迷宫游戏

1459 迷宫游戏 基准时间限制:1 秒 空间限制:131072 KB 你来到一个迷宫前.该迷宫由若干个房间组成,每个房间都有一个得分,第一次进入这个房间,你就可以得到这个分数.还有若干双向道路连结这些房间,你沿着这些道路从一个房间走到另外一个房间需要一 些时间.游戏规定了你的起点和终点房间,你首要目标是从起点尽快到达终点,在满足首要目标的前提下,使得你的得分总和尽可能大.现在问题来了,给定房间. 道路.分数.起点和终点等全部信息,你能计算在尽快离开迷宫的前提下,你的最大得分是多少么? Inpu

C语言 小游戏之贪吃蛇

还记得非常久曾经听群里人说做贪吃蛇什么的,那时候大一刚学了C语言,认为非常难,根本没什么思路. 前不久群里有些人又在谈论C语言贪吃蛇的事了,看着他们在做,我也打算做一个出来. 如今大三,经过了这一年半的编程,如今认为这个C语言的贪吃蛇还是比較简单的,花的时间不非常多! 我认为主要是思路正确,基本上就米什么大的问题. 如今贴上我的代码和我的详解,希望大家多交流. 首先说下我这个贪吃蛇仅仅是一个简单的,游戏结束有2种可能:一碰墙,二自杀即蛇头碰到蛇身. 如有不好之处,请见谅把. 首先说下我这个贪吃蛇