A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 滔哥 黑马帝   /  2015-4-23 15:24  /  4945 人查看  /  23 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. //
  2. //  main.c
  3. //  迷宫游戏
  4. //
  5. //  Created by carry on 15/4/23.
  6. //  Copyright (c) 2015年 carry.cn. All rights reserved.
  7. //

  8. #include <stdio.h>
  9. #define row 6
  10. #define col 6
  11. #define street ' '

  12. //定义一个打印地图的函数
  13. void printmap(char map[row][col]){
  14.     /**
  15.      @author Brother Tao, 15-04-23 11:04:50
  16.      @brief  打印地图,重新绘制地图
  17.      @param map 地图数组
  18.      */
  19.     for (int i=0; i<row; i++) {
  20.         
  21.         for (int j=0; j<col; j++) {
  22.             printf("%c",map[i][j]);
  23.             
  24.         }
  25.         printf("\n");
  26.     }
  27.    
  28. }
  29. /**
  30. @author Brother Tao, 15-04-23 11:04:48

  31. @brief  交换小人与路的位置
  32. @param map 地图
  33. @param oldX 小人原来的位置X
  34. @param oldY 小人原来的位置Y
  35. @param newX 小人新位置X
  36. @param newY 小人新位置Y
  37. @since <#version number#>
  38. */
  39. //定义一个交换小人判断位置的函数
  40. void pepole(char map[row][col],int oldX,int oldY,int newX,int newY,int *px,int *py){
  41.    
  42.     char temp;
  43.     if (map[newX][newY]==street) {
  44.         temp=map[oldX][oldY];
  45.         map[oldX][oldY]=map[newX][newY];
  46.         map[newX][newY]=temp;
  47.         *px = newX;// *px获取地址px里的内容 使用newX赋值给*px传递的变量
  48.         *py = newY;
  49.     }
  50.    

  51. }

  52. int main(int argc, const char * argv[]) {
  53.     // insert code here...
  54.     //定义变量(小人位置变量,路的位置' '变量),定义地图,打印地图
  55.              char map[row][col]={
  56.             {'#','#','#','#','#','#'},
  57.             {'#','1','#','#',' ','#'},
  58.             {'#',' ','#','#',' ',' '},
  59.             {'#',' ',' ','#',' ','#'},
  60.             {'#','#',' ',' ',' ','#'},
  61.             {'#','#','#','#','#','#'}
  62. };
  63.     /*------------------------------------*/
  64.     int currentX=1;//定义小人坐标X
  65.     int currentY=1;//定义小人坐标Y
  66.     int *px = ¤tX; //定义指针,函数传递小人变化的位置
  67.     int *py = ¤tY;
  68.     char direction;//接受用户输入的数据
  69.    
  70.     /*------------------------------------*/
  71.     printmap(map);//打印地图
  72.    

  73.     printf("游戏玩法:w.上 s.下 a.左 d右\n");//提示用户玩法
  74.    
  75.     //判断用户输入交换小人的位置
  76.     while (1) {
  77.         
  78.         scanf("%c",&direction);//接受用户输入的方向
  79.         rewind(stdin);//清空缓冲区
  80.         switch (direction) {
  81.             case 'w':
  82.             case 'W':
  83.                 pepole(map, currentX, currentY, currentX-1, currentY,px,py);
  84.                
  85.                 break;
  86.                
  87.             case 's':
  88.             case 'S':
  89.                 pepole(map, currentX, currentY, currentX+1, currentY,px,py);
  90. //
  91.                 break;
  92.                
  93.             case 'a':
  94.             case 'A':
  95.         
  96.                 pepole(map, currentX, currentY, currentX, currentY-1,px,py);
  97. //
  98.                 break;
  99.                
  100.             case 'd':
  101.             case 'D':
  102.                 pepole(map, currentX, currentY, currentX, currentY+1,px,py);
  103. //
  104.                 break;
  105.                
  106.             default:
  107.                 break;
  108.         }

  109.         
  110.         printmap(map);//重绘地图
  111.         
  112.         if (currentY==5) {//判断用户是否走出迷宫
  113.             printf("哇哦,恭喜你走出来了\n");
  114.             break;
  115.         }
  116.     }
  117.    
  118.    
  119.    
  120.     return 0;
  121. }
复制代码


23 个回复

倒序浏览
涛哥也是蛮拼的,来顶下
回复 举报
世界那么大我想去看看
回复 举报
看不懂。。。
回复 举报
mark from iOS0612
回复 举报
顶一下,一开始以为是飞行棋游戏,那个挺麻烦的
回复 举报
我们马上就学到啦 好厉害的样子
回复 举报
fixer 中级黑马 2015-6-13 23:32:44
8#
棒棒棒棒棒哒
回复 举报
fixer 中级黑马 2015-6-13 23:34:54
9#
棒棒棒棒棒哒
回复 举报
dingding!!!
回复 举报
此代码,我搞了一晚上,就是各种的不行,哎郁闷啊!
回复 举报
现在还看不懂怎么破!
回复 举报
学习学习!
回复 举报
来顶一下,嘿嘿
回复 举报
CQY 中级黑马 2015-6-17 09:22:47
15#
滔哥很强大哇,更重要的是,我一直觉得滔哥的头像好帅的说
回复 举报
zale 中级黑马 2015-9-14 19:52:59
16#
谢谢分享
回复 举报
好厉害哦
回复 举报
学习学习~
回复 举报
怎么实现呢?我想玩一下
回复 举报
顶,太给力了
回复 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马