//
// 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;
}

  

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

  1. 用webgl打造自己的3D迷宫游戏

    用webgl打造自己的3D迷宫游戏 2016/09/19 · JavaScript · WebGL 原文出处: AlloyTeam    背景:前段时间自己居然迷路了,有感而发就想到写一个可以让人迷路 ...

  2. 51nod 1459 迷宫游戏(dij)

    题目链接:51nod 1459 迷宫游戏 dij裸题. #include<cstdio> #include<cstring> #include<algorithm> ...

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

    ​ 内容简介 1.课程大纲 2.第一部分第八课:第一个C语言小游戏 3.第一部分第九课预告: 函数 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写 ...

  4. 【Qt编程】3D迷宫游戏

    说起迷宫想必大家都很熟悉,个人感觉迷宫对人的方向感是很大的考验,至少我的方向感是不好的,尤其是在三维空间中.由于这段时间帮导师做项目用到了三维作图,便心血来潮想做个三维迷宫玩玩.要想画出三维的迷宫游戏 ...

  5. 51nod--1459 迷宫游戏 (dijkstra)

    1459 迷宫游戏 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 你来到一个迷宫前.该迷宫由若干个房间组成,每个房间都有一个得分,第一次进入这个房间,你就可 ...

  6. 51 NOd 1459 迷宫游戏 (最短路径)

    1459 迷宫游戏  基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 你来到一个迷宫前.该迷宫由若干个房间组成,每个房间都有一个得分,第一次进入这个房间, ...

  7. 51Nod 1459:迷宫游戏(最短路)

    1459 迷宫游戏  基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 你来到一个迷宫前.该迷宫由若干个房间组成,每个房间都有一个得分,第一次进入这个房间, ...

  8. 51nod 1459 迷宫游戏 dijkstra模板

    链接:迷宫游戏 问题 - 51Nod  http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1459 1459 迷宫游戏  基准 ...

  9. 51nod 1459 迷宫游戏【最短路拓展】

    1459 迷宫游戏 基准时间限制:1 秒 空间限制:131072 KB   你来到一个迷宫前.该迷宫由若干个房间组成,每个房间都有一个得分,第一次进入这个房间,你就可以得到这个分数.还有若干双向道路连 ...

随机推荐

  1. VS2012使用中容易出现的小问题(长期更新,错多少记多少)

    1:各种属性之间一定要有空格!比如id 和 runat中间一定要有,在编译系统里虽然也能显示红色,但是...调试的时候一定会报错!而且这样的错误很难发现(相信我曾经花了半个小时才找出问题) 2:在类中 ...

  2. html知识

    1.doctype作用 doctype标签可以告诉浏览器文档使用哪种HTML或者Xhtml规范.该标签可生命三种DTD类型,是严格版本,过渡版本和基于框架的HTML文档. 声明需要位于文档的最前面,处 ...

  3. js高级程序设计书中,有一句话在全局作用域中定义的函数实际上只 能被某个对象调用???

    js没有块级作用域(题外话:函数可以作为一个块级),所以我们经常使用闭包来模拟块级作用域,以避免变量或者函数因为名称相同而产生的冲突. 重点来了: 所以,如果我们把哪个变量或者函数放在全局作用域中,那 ...

  4. FireMonkey 保存图片到JPG的方法 BMP转JPG

    习惯VCL的做法了,到了FireMonkey里面,好像查不到单独的JPEG单元了,不少朋友就郁闷如何处理JPG了,这么大件事,不可能没有处理方法的,具体就请看代码: uses FMX.Surfaces ...

  5. GCD一些常用的方法

        //1.创建主线程(串行)     dispatch_async(dispatch_get_main_queue(), ^{         //刷新界面代码     });     //2. ...

  6. C++多线程の线程通信future,promise,async

  7. xfs磁盘(文件)碎片查看和整理

    网上有些帖子说XFS不用做碎片整理,其实是错误的.XFS用延迟写入等技术确实可以减少碎片的出现,但是如果服务器用了几年,并且文件操作比较频繁,还是会出现碎片的,应该整理.注意:在Debian中XFS相 ...

  8. Oracle 截取字符串

    如下有一个创建函数的代码,是将一穿字符串按照逗号‘,’分割成若干段 create or replace function SplitStringByComma(aName in varchar2) r ...

  9. 浏览器禁止js打开新窗口

    在项目中,有个需求是需要ajax获取新地址,然后去打开该页面地址,这样会被浏览器拦截,可以采取以下方式:1.再ajax请求先前,先创建一个新窗口 var newTab = window.open('' ...

  10. Linux服务器的那些性能参数指标

    Linux服务器的那些性能参数指标 一个基于Linux操作系统的服务器运行的同时,也会表征出各种各样参数信息.通常来说运维人员.系统管理员会对这些数据会极为敏感,但是这些参数对于开发者来说也十分重要, ...