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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 滔哥 黑马帝   /  2015-4-23 15:24  /  3772 人查看  /  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下一页
您需要登录后才可以回帖 登录 | 加入黑马