首页 技术 正文
技术 2022年11月15日
0 收藏 326 点赞 4,260 浏览 1363 个字

                  

#include <stdio.h>

#define ROW 6

#define COL 6

// 封装打印地图的函数

void printMap(char map[][COL]) {

for (int i =
0; i < ROW; i++) {

for (int j =
0; j < COL; j++) {

printf("%c", map[i][j]);

}

printf("\n");

}

}

int isSuccess(int x,
int y) {

return x ==
0 || x == ROW –
1 || y == 0 || y ==
COL – 1;

}

char inputChar() {

char input;

while (1) {

printf("> ");

input = getchar();

while (getchar() !=
‘\n’) ;

if (input ==
‘w’ || input == ‘s’ || input ==
‘a’ || input == ‘d’) {

break;

}

}

return input;

}

int main(int argc,
const char * argv[]) {

char map[ROW][COL]={

{‘#’,’#’,’#’,’#’,’#’,’#’},

{‘#’,’O’,’#’,’#’,’
‘,’ ‘},

{‘#’,’ ‘,’#’,’#’,’
‘,’#’},

{‘#’,’ ‘,’ ‘,’#’,’
‘,’#’},

{‘#’,’#’,’ ‘,’ ‘,’
‘,’#’},

{‘#’,’#’,’#’,’#’,’#’,’#’}

};

char input;

// 表示人的位置

int x =
1;

int y =
1;

while (1) {

// 打印

printMap(map);

// 胜利的代码

if (isSuccess(x, y))
break;

// 提示用户的输入

printf("请输入 w(上) s(下)
a(左) d(右)\n");

// 输入数据,
判断正确

input = inputChar();

// 更新地图`

switch (input) {

case
‘W’:

case
‘w’:

//
判断下一个位置是否可以走, 如果可以走就交换地图中的数据

//
如果不能走就不变

//
即 判断 (x – 1, y)
是不是空格, 如果是空格就可以走

if (map[x –
1][y] == ‘ ‘) {

//
交换

int temp = map[x –
1][y];

map[x – 1][y] = map[x][y];

map[x][y] = temp;

//
交换后更新 x y

x–;

}

break;

case
‘s’:

if (map[x +
1][y] == ‘ ‘) {

//
交换

int temp = map[x +
1][y];

map[x + 1][y] = map[x][y];

map[x][y] = temp;

//
交换后更新 x y

x++;

}

break;

case
‘a’:

if (map[x][y –
1] == ‘ ‘) {

//
交换

int temp = map[x][y –
1];

map[x][y – 1] = map[x][y];

map[x][y] = temp;

//
交换后更新 x y

y–;

}

break;

case
‘d’:

if (map[x][y +
1] == ‘ ‘) {

//
交换

int temp = map[x][y +
1];

map[x][y + 1] = map[x][y];

map[x][y] = temp;

//
交换后更新 x y

y++;

}

break;

}

// 清屏

system("clear");

}

printf("恭喜你重获自由…\n");

return
0;

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,023
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,513
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,361
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,143
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,774
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,853