- //
- // main.c
- // 迷宫游戏
- //
- // Created by carry on 15/4/23.
- // Copyright (c) 2015年 carry.cn. All rights reserved.
- //
- #include <stdio.h>
- #define row 6
- #define col 6
- #define street ' '
- //定义一个打印地图的函数
- void printmap(char map[row][col]){
- /**
- @author Brother Tao, 15-04-23 11:04:50
- @brief 打印地图,重新绘制地图
- @param map 地图数组
- */
- for (int i=0; i<row; i++) {
-
- for (int j=0; j<col; j++) {
- printf("%c",map[i][j]);
-
- }
- printf("\n");
- }
-
- }
- /**
- @author Brother Tao, 15-04-23 11:04:48
-
- @brief 交换小人与路的位置
- @param map 地图
- @param oldX 小人原来的位置X
- @param oldY 小人原来的位置Y
- @param newX 小人新位置X
- @param newY 小人新位置Y
- @since <#version number#>
- */
- //定义一个交换小人判断位置的函数
- void pepole(char map[row][col],int oldX,int oldY,int newX,int newY,int *px,int *py){
-
- char temp;
- if (map[newX][newY]==street) {
- temp=map[oldX][oldY];
- map[oldX][oldY]=map[newX][newY];
- map[newX][newY]=temp;
- *px = newX;// *px获取地址px里的内容 使用newX赋值给*px传递的变量
- *py = newY;
- }
-
- }
- int main(int argc, const char * argv[]) {
- // insert code here...
- //定义变量(小人位置变量,路的位置' '变量),定义地图,打印地图
- char map[row][col]={
- {'#','#','#','#','#','#'},
- {'#','1','#','#',' ','#'},
- {'#',' ','#','#',' ',' '},
- {'#',' ',' ','#',' ','#'},
- {'#','#',' ',' ',' ','#'},
- {'#','#','#','#','#','#'}
- };
- /*------------------------------------*/
- int currentX=1;//定义小人坐标X
- int currentY=1;//定义小人坐标Y
- int *px = ¤tX; //定义指针,函数传递小人变化的位置
- int *py = ¤tY;
- char direction;//接受用户输入的数据
-
- /*------------------------------------*/
- printmap(map);//打印地图
-
- printf("游戏玩法:w.上 s.下 a.左 d右\n");//提示用户玩法
-
- //判断用户输入交换小人的位置
- while (1) {
-
- scanf("%c",&direction);//接受用户输入的方向
- rewind(stdin);//清空缓冲区
- switch (direction) {
- case 'w':
- case 'W':
- pepole(map, currentX, currentY, currentX-1, currentY,px,py);
-
- break;
-
- case 's':
- case 'S':
- pepole(map, currentX, currentY, currentX+1, currentY,px,py);
- //
- break;
-
- case 'a':
- case 'A':
-
- pepole(map, currentX, currentY, currentX, currentY-1,px,py);
- //
- break;
-
- case 'd':
- case 'D':
- pepole(map, currentX, currentY, currentX, currentY+1,px,py);
- //
- break;
-
- default:
- break;
- }
-
- printmap(map);//重绘地图
-
- if (currentY==5) {//判断用户是否走出迷宫
- printf("哇哦,恭喜你走出来了\n");
- break;
- }
- }
-
-
-
- return 0;
- }
复制代码
|
|