黑马程序员技术交流社区
标题:
宫锁连城! 你懂得.
[打印本页]
作者:
海风眷恋的沙
时间:
2015-11-13 22:32
标题:
宫锁连城! 你懂得.
学了这么时间的C语言 是不是觉得有点无聊,送一个福利,宫锁连城!
#include<stdio.h>
#define ROW 13
#define COL 13
int main () {
//定义一个地图
char map[ROW][COL]={
'#','#','#','#','#','#','#','#','#','#','#','#','#',
'#','o',' ',' ',' ','#','#','#',' ',' ',' ','#','#',
'#',' ','#',' ',' ',' ',' ','#',' ','#',' ',' ','#',
'#',' ','#',' ','#','#',' ','#',' ','#','#',' ','#',
'#',' ','#',' ',' ','#',' ','#',' ',' ','#',' ','#',
'#',' ','#','#',' ','#',' ','#','#',' ','#',' ','#',
'#',' ','#','#',' ','#',' ','#',' ',' ','#',' ','#',
'#',' ',' ','#',' ','#',' ','#',' ','#','#',' ',' ',
'#','#',' ','#',' ','#',' ','#',' ',' ',' ','#','#',
'#','#',' ','#',' ','#',' ','#','#','#',' ','#','#',
'#','#',' ','#',' ','#',' ',' ',' ','#',' ','#','#',
'#','#',' ',' ',' ','#','#','#',' ',' ',' ','#','#',
'#','#','#','#','#','#','#','#','#','#','#','#','#',
};
//定义小人的位子
int xiaoRenX = 1;
int xiaoRenY = 1;
//定义路
char lu = ' ';
//保存小人的移动
char yiDong;
//打印地图
for (int i = 0; i < COL ; i++) {
for (int j = 0; j<ROW ; j++) {
printf("%c", map[i][j]);
}
printf("\n");
}
while (1) {
//提示玩法
printf("请控制小人移动:W是上,S是下,A是左,D是右!");
//接受用户输入的字符
scanf("%c", &yiDong);
getchar();
switch (yiDong) {
case 'w':
case 'W':
//判断小人的下一个位子是否是路
if (map[xiaoRenX-1][xiaoRenY]==lu) {
char temp;
temp = map[xiaoRenX][xiaoRenY];
map[xiaoRenX][xiaoRenY] = map[xiaoRenX-1][xiaoRenY];
map[xiaoRenX-1][xiaoRenY]= temp;
xiaoRenX--;
}
break;
case 's':
case 'S':
//判断小人的下一个位子是否是路
if (map[xiaoRenX+1][xiaoRenY]==lu) {
char temp;
temp = map[xiaoRenX][xiaoRenY];
map[xiaoRenX][xiaoRenY] = map[xiaoRenX+1][xiaoRenY];
map[xiaoRenX+1][xiaoRenY]= temp;
xiaoRenX++;
}
break;
case 'a':
case 'A':
//判断小人的下一个位子是否是路
if (map[xiaoRenX][xiaoRenY-1]==lu) {
char temp;
temp = map[xiaoRenX][xiaoRenY];
map[xiaoRenX][xiaoRenY] = map[xiaoRenX][xiaoRenY-1];
map[xiaoRenX][xiaoRenY-1]= temp;
xiaoRenY--;
}
break;
case 'D':
case 'd':
//判断小人的下一个位子是否是路
if (map[xiaoRenX][xiaoRenY+1]==lu) {
char temp;
temp = map[xiaoRenX][xiaoRenY];
map[xiaoRenX][xiaoRenY] = map[xiaoRenX][xiaoRenY+1];
map[xiaoRenX][xiaoRenY+1]= temp;
xiaoRenY++;
}
break;
case 'q':
case 'Q':
return 0;
break;
default:
break;
}
// 打印地图
for (int i = 0; i<COL; i++) {
for (int j = 0; j<ROW ; j++) {
printf("%c", map[i][j]);
}
printf("\n");
}
//判断小人是否出来了!
if (xiaoRenY == COL -1) {
printf("恭喜你出来了");
return 1;
}
}
return 0;
}
作者:
这个冬天有点冷
时间:
2015-11-13 22:37
拷贝中,表示有点意思
作者:
沐小妖mavs
时间:
2015-11-13 22:53
谢谢分享 虽然暂时还看不大懂 不过我会努力
作者:
qiluzhixing
时间:
2015-11-13 22:55
赞一下,研究研究
作者:
红龙果
时间:
2015-11-13 23:00
好牛叉,拿回去好好分析
作者:
huihui1030
时间:
2015-11-14 00:19
目前看着有点似懂非懂,,,,,,待我研究研究。
作者:
lujia1010
时间:
2015-11-14 12:46
有意思,代码保存了,,
作者:
yufang1993
时间:
2015-11-14 23:59
默默点赞!!!!!!!!!!!!!!!!!!!!!
作者:
约吗^_^
时间:
2015-11-15 21:37
之前老师讲的会有这个内容,不过现在已经被禁了。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2