编写了一个简单的迷宫游戏,但是为什么每次输入正确都会有这句话出来?
#include <stdio.h>
int main()
{
//迷宫模型的玩法说明
printf("这是一个迷宫游戏,#代表墙,O代表人\n");
printf("W代表向上,S代表向下,A代表向左,D代表向右\n\n");
//迷宫模型的制作,当Migong[1][5]时游戏成功!
char MiGong[6][6]={
{'#','#','#','#','#','#'},
{'O',' ','#','#','#','#'},
{'#',' ','#',' ',' ',' '},
{'#',' ','#',' ','#','#'},
{'#',' ',' ',' ','#','#'},
{'#','#','#','#','#','#'},
};
//迷宫模型的输出
for(int i=0;i<6;i++){
printf(" ");
for(int j=0;j<6;j++){
printf("%c",MiGong[j]);
}
printf("\n");
}
char ShuRu;//定义用户的输入的方向
int x=1;//定义人物的坐标X
int y=0;//定义人物的坐标Y
char temp;//用来调换人物与空格的位置
char Ch;
while((x!=2)||(y!=5)){
scanf("%c",&ShuRu);
Ch=getchar();
if(ShuRu!='w'||ShuRu!='a'||ShuRu!='s'||ShuRu!='d'){
printf("请按规则输入!\n");
}
if(ShuRu=='w'){
if(MiGong[x-1][y]=='#'){
printf("请不要撞墙!\n");}
else{
temp=MiGong[x-1][y];
MiGong[x-1][y]=MiGong[x][y];
MiGong[x][y]=temp;
x=x-1;
}
}
if(ShuRu=='s'){
if(MiGong[x+1][y]=='#'){
printf("请不要撞墙!\n");
}
else{
temp=MiGong[x+1][y];
MiGong[x+1][y]=MiGong[x][y];
MiGong[x][y]=temp;
x=x+1;
}
}
if(ShuRu=='a'){
if(MiGong[x][y-1]=='#'){
printf("请不要撞墙!\n");
}
else{
temp=MiGong[x][y-1];
MiGong[x][y-1]=MiGong[x][y];
MiGong[x][y]=temp;
y=y-1;
}
}
if(ShuRu=='d'){
if(MiGong[x][y+1]=='#'){
printf("请不要撞墙!\n");
}
else{
temp=MiGong[x][y+1];
MiGong[x][y+1]=MiGong[x][y];
MiGong[x][y]=temp;
y=y+1;
}
}
//每次输入正确后重新更新地图
for(int i=0;i<6;i++){
printf(" ");
for(int j=0;j<6;j++){
printf("%c",MiGong[j]);
}
printf("\n");
}
}
printf("游戏成功!\n");
return 0;
}
|
|