1. #include <stdio.h>
  2. //宏定义 maze[ROWS][COLS];行和列;
  3. #define ROWS 7
  4. #define COLS 6
  5. //绘制迷宫(全局变量)
  6. char maze[ROWS][COLS]= {
  7. {'#','#','#','#','#','#'},
  8. {'#','','#',' ',' ',' '},
  9. {'#',' ','#',' ','#','#'},
  10. {'#',' ','#',' ',' ','#'},
  11. {'#',' ',' ','#',' ','#'},
  12. {'#','#',' ',' ',' ','#'},
  13. {'#','#','#','#','#','#'}
  14. };
  15. //设置X,Y坐标(全局变量);
  16. int currentX=,currentY=;
  17. //移动后的XY坐标(全局变量);
  18. int nextX,nextY;
  19. //看下一步是否能走 int[x][y]==' ' ;
  20. char street = ' ';
  21.  
  22. //初始化函数
  23. void printMaze();
  24. void moveToNextPosition();
  25. void calculateNextPosition(char direction);
  26.  
  27. int main(int argc, const char * argv[]) {
  28. nextX = currentX;
  29. nextY = currentY;
  30. //屏幕打印出迷宫;
  31. printMaze();
  32. char direction;
  33. while () {
  34. printf("请移动人物,用键盘W/S/A/D(上下左右)操作\n");
  35. scanf("%c",&direction);
  36. calculateNextPosition(direction);
  37. moveToNextPosition();
  38. printMaze();
  39. if (currentX==ROWS-||currentY==COLS-){
  40. printf("通关了,呵呵!");
  41. break;
  42. }
  43. }
  44. return ;
  45. }
  46.  
  47. //打印地图
  48. void printMaze(){
  49. for(int i = ;i<ROWS;i++){
  50. for (int j = ;j<COLS;j++) {
  51. printf("%c",maze[i][j]);
  52. }
  53. printf("\n");
  54. }
  55. }
  56. //移动人物
  57. void moveToNextPosition(){
  58. if (maze[nextX][nextY]==street) {
  59. char temp = maze[currentX][currentY];
  60. maze[currentX][currentY] = maze[nextX][nextY];
  61. maze[nextX][nextY] = temp;
  62. currentX = nextX;
  63. currentY = nextY;
  64.  
  65. }else{
  66. nextX = currentX;
  67. nextY = currentY;
  68. }
  69. }
  70. //计算下一个位置
  71. void calculateNextPosition(char direction){
  72. switch (direction) {
  73. case 'w':{
  74. nextX = currentX - ;
  75. break;
  76. }
  77. case 's':{
  78. nextX = currentX + ;
  79. break;
  80. }
  81. case 'a':{
  82. nextY = currentY - ;
  83. break;
  84. }
  85. case 'd':{
  86. nextY = currentY + ;
  87. break;
  88. }
  89. default:
  90. break;
  91. }
  92. }

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. Wps的ppt里 让图片按顺序出现 就是点击一下 出现一张照片

    基本操作能够用两种方法来实现: 方法一.每页幻灯片插入一张图片,幻灯片默认就是单击鼠标切换幻灯片的,所以不用再做其它设置. 方法二.在一页幻灯片中插入多张图片,全选图片(插入图片后,点击图片,Ctrl ...

  2. C++为什么不支持某些东西

    1.学习C++的过程,经常发现C++不支持一些东西,思考下,为什么? 2.C++不支持一些东西,有两个原因: a.可以做到,但是会导致一些不合理的结果,这些结果往往与程序员的期望不一致. b.属于“臣 ...

  3. URAL 1784 K - Rounders 找规律

    K - RoundersTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/view. ...

  4. c# windowsForm打印

    在windows应用程序中文档的打印是一项非常重要的功能,在以前一直是一个非常复杂的工作,Microsoft .net Framework的打 印功能都以组件的方式提供,为程序员提供了很大的方便,但是 ...

  5. 从零开始学习Hadoop--前言

    Hadoop是最著名使用最广泛的分布式大数据处理框架,它是用Java开发的. 这本书有一个明确的目标:只要有一台能上网的计算机,就可以让读者在最短的时间内,学会Hadoop的初级开发.所以,这本书只讲 ...

  6. zencart技术联盟交流群

    增加500人的免费互助"zencart技术联盟交流群"!名额不多,先到先得! zencart技术联盟俱乐部(1群) ( 已满) zencart技术联盟俱乐部(2群) 群号:1990 ...

  7. Java中for循环以及循环中标签

    1.第一种,通过迭代的方式 File[] listFiles = file.listFiles(); for (Iterator iterator = files.iterator(); iterat ...

  8. 新浪云(SAE)使用没有内置的django版本

    SAE自带的django目前到1.5版本,如果要使用更高的版本,则需要把django包同代码一起上传. 以1.7.3为例 先从SAE svn签出代码,默认1是根目录 1.  1目录下创建文件夹 sit ...

  9. QT断点续传

    //功能:    根据一个URL地址将数据保存到指定路径下,支持断点续传//参数:    url            --需要访问的URL地址//         SavePath       -- ...

  10. HBase-初看HBase

    0.95版本hbase 单机模式下所有的服务都运行在一个JVM上,包括HBase和zookeeper.使用的是本地文件系统 日志默认放在目录下logs文件夹中 基本命令: create 'table' ...