#include <stdio.h>
//宏定义 maze[ROWS][COLS];行和列;
#define ROWS 7
#define COLS 6
//绘制迷宫(全局变量)
char maze[ROWS][COLS]= {
{'#','#','#','#','#','#'},
{'#','','#',' ',' ',' '},
{'#',' ','#',' ','#','#'},
{'#',' ','#',' ',' ','#'},
{'#',' ',' ','#',' ','#'},
{'#','#',' ',' ',' ','#'},
{'#','#','#','#','#','#'}
};
//设置X,Y坐标(全局变量);
int currentX=,currentY=;
//移动后的XY坐标(全局变量);
int nextX,nextY;
//看下一步是否能走 int[x][y]==' ' ;
char street = ' '; //初始化函数
void printMaze();
void moveToNextPosition();
void calculateNextPosition(char direction); int main(int argc, const char * argv[]) {
nextX = currentX;
nextY = currentY;
//屏幕打印出迷宫;
printMaze();
char direction;
while () {
printf("请移动人物,用键盘W/S/A/D(上下左右)操作\n");
scanf("%c",&direction);
calculateNextPosition(direction);
moveToNextPosition();
printMaze();
if (currentX==ROWS-||currentY==COLS-){
printf("通关了,呵呵!");
break;
}
}
return ;
} //打印地图
void printMaze(){
for(int i = ;i<ROWS;i++){
for (int j = ;j<COLS;j++) {
printf("%c",maze[i][j]);
}
printf("\n");
}
}
//移动人物
void moveToNextPosition(){
if (maze[nextX][nextY]==street) {
char temp = maze[currentX][currentY];
maze[currentX][currentY] = maze[nextX][nextY];
maze[nextX][nextY] = temp;
currentX = nextX;
currentY = nextY; }else{
nextX = currentX;
nextY = currentY;
}
}
//计算下一个位置
void calculateNextPosition(char direction){
switch (direction) {
case 'w':{
nextX = currentX - ;
break;
}
case 's':{
nextX = currentX + ;
break;
}
case 'a':{
nextY = currentY - ;
break;
}
case 'd':{
nextY = currentY + ;
break;
}
default:
break;
}
}

C语言(简单游戏)-走出迷宫的更多相关文章

  1. 搜索4--noi6264:走出迷宫

    搜索4--noi6264:走出迷宫 一.心得 可以去看看别人的代码,吸收精华 二.题目 6264:走出迷宫 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 当 ...

  2. 一本通之 一堆迷宫 (Dungeon Master&走出迷宫&走迷宫)

    一本通在线崩溃....... . 有图有真相 这是个三维迷宫,其实和二位迷宫差不多,只是方向多加了2个. 但这个题的输入十分恶心,一度被坑的用cin.ignore(),但还是不过... 它的正确输入方 ...

  3. Openjudge 2.5 6264:走出迷宫

    总时间限制:  1000ms 内存限制:  65536kB 描述 当你站在一个迷宫里的时候,往往会被错综复杂的道路弄得失去方向感,如果你能得到迷宫地图,事情就会变得非常简单. 假设你已经得到了一个n* ...

  4. 罗培羽—C语言简单游戏编程教学

    编写许多软件都需要有菜单,那么如果我们使用tc之类的软件来编译程序的话,我们该怎么编写菜单呢?让我们一起来试试吧!第一步:简单例子       我们先来写个最简单的例子:#include<std ...

  5. 走出MFC子类化的迷宫

    走出MFC子类化的迷宫 KEY WORDS:子类化 SUBCLASSWINDOW  MFC消息机制 许多Windows程序员都是跳过SDK直接进行RAD开发工具[或VC,我想VC应不属于RAD]的学习 ...

  6. C语言编写一个简单游戏

    感悟:这算是一个起点吧,我都大二了,还这么菜,才开始写游戏,这个游戏很简单,利用随机数猜大小! #include <stdlib.h> #include <stdio.h> # ...

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

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

  8. c语言小游戏-扫雷的完成

    C语言-扫雷游戏 本文将对此游戏做一个大致的概述,此代码适合初学者,编写软件使用了vs2017. 该代码可以实现如下功能: 1.用户可以选择3个难度,分别布置不同个数的雷. 2.随机数设置雷的位置. ...

  9. 为什么DIY报价----走出软件作坊:三五个人十来条枪 如何成为开发正规军(十二)[转]

    前段时间,写了一个开发.实施.服务费用计算三部曲. 水清则无鱼--走出软件作坊:三五个人十来条枪 如何成为开发正规军(八) 实施费用也能DIY--走出软件作坊:三五个人十来条枪 如何成为开发正规军(九 ...

随机推荐

  1. mac上java开发环境

    刚刚入手 macbook 还是 按照window 的方式,下载java,安装,配置环境变量,下载maven安装配置 等等....非常繁琐.. but 在mac上不用这么复杂...利用 brew 命令去 ...

  2. Codeforces Gym 100286A. Aerodynamics 计算几何 求二维凸包面积

    Problem A. AerodynamicsTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/co ...

  3. HoloGraphLibrary

    https://github.com/Androguide/HoloGraphLibrary HoloGraphLibrary-master.zip

  4. [原创]如何写好SqlHelper 之终章

    精简的美丽...... 标题有点大.但是,我觉得99%的接近了. 好了,下面我们来说说一个SqlHelper为了适应各种不同的业务需要,它应该具备哪些基本要素. 第一点.可控的事务. 事务是数据库操作 ...

  5. C#的空接合运算符 三目运算符

    1.空接合运算符:操作数1??操作数2: 2.第一个操作数必须是一个可空类型或引用类型,第二个操作数必须与第一个操作数类型相同,或者可以隐含的转换为第一个操作数的类型: 3.如果第一个操作数不为nul ...

  6. Java_spring_定时执行任务

    > 版本说明 <dependencies> <dependency> <groupId>org.springframework</groupId> ...

  7. form表单中method的get和post区别

    一.问题的提出   <form action="getPostServlet/getPost.do?param4=param4" method="get" ...

  8. Neo4查询语言Cypher3.0.7在antlr4下的文法(原创分享)

    本人网上找了很久都没有一个比较好的cypher文法,于是花了一段时间研究cypher和编写基于antlr4下的cypher文法. 希望对想用做cypher相关工具的朋友有一点用,欢迎交流. 珍重声明: ...

  9. C# 之 未能映射路径

    在开发中遇到此问题,如下原码,报错:未能映射路径: string filename = Server.MapPath("/logs/log.txt"); 解决方法,从根目录开始: ...

  10. github使用成长记

    学校里一直都有自己写一些网页,一方面为了学习熟练技能,另一方面也是兴趣所在.但是独乐乐不如众乐乐,一直向往有那么一个平台能把自己做得东西分享给广大网友,并且想借着分享的契机和各位程序猿交流学习心得(这 ...