A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© qiujunwen123 中级黑马   /  2015-12-19 16:11  /  770 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

编写了一个简单的迷宫游戏,但是为什么每次输入正确都会有这句话出来?

#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;
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马