学了这么时间的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;
} |
|