总结的大循环和剖断

#include<bits/stdc++.h>
#include<windows.h>
#include<time.h>
#include<stdlib.h>
#include<conio.h>
using namespace std;
//PS:如果你可以用自己的身躯吃掉符号也可以,我没加判断。 
char box[101][101]; //可以理解为地图 
int n;//几号地图 
int eexit=1;//这个可以去掉,但懒得去 
int maxguanqia=1;//关卡有几个 
int plx,ply;//位置 
char sr;//读入的东西 
void color(int a)//颜色函数,不需要记,只要懂得抄就行了,只是为了好看 
{
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);
}
void intel1(){//显示第一张地图 
    box[plx][ply]=2;
    for(int i=1;i<=8;i++){
        for(int j=1;j<=8;j++){//双重循环打印 
            if(box[i][j]=='#')color(5);//颜色判定 
            else if(box[i][j]==15)color(6);
            else if(box[i][j]==2)color(9);
            else if(box[i][j]==14)color(15);
            cout<<box[i][j];
        }cout<<endl;//换行 
    }
}
void g1sd(){//初始化第一张地图 
    for(int i=3;i<=5;i++)box[1][i]='#';//编辑地图,很累 
    box[2][3]='#';box[2][5]='#';
    box[3][3]='#';for(int i=5;i<=8;i++)box[3][i]='#';
    for(int i=1;i<=3;i++)box[4][i]='#';box[4][8]='#';
    box[5][1]='#';for(int i=6;i<=8;i++)box[5][i]='#';
    for(int i=1;i<=4;i++)box[6][i]='#';box[6][6]='#';
    box[7][4]='#';box[7][6]='#';
    for(int i=4;i<=6;i++)box[8][i]='#';
    box[4][4]=15;
    box[4][6]=15;
    box[5][4]=15;
    box[6][5]=15;
    box[2][4]=14;
    box[5][2]=14;
    box[4][7]=14;
    box[7][5]=14;
    plx=5;ply=5;
    box[plx][ply]=2;
}
int main(){
    while(eexit==1){//直接改while(1)得了,弄退出基本没有用 
        for(int i=1;i<=100;i++){//重置 
            for(int j=1;j<=100;j++){
                box[i][j]=' ';
            }
        }
        color(3);//上色,标标题什么的 
        system("title 推箱子测试版1.0");
        printf("要联系本程序作者请找QQ\nQQ:1095832103\n输入关卡(1-1):");
        scanf("%d",&n);//输入地图编号 
        if(n>maxguanqia)n=maxguanqia;//判断,超过选择当前最大地图
        if(n==1){system("cls");g1sd();intel1();//显示 
            int eeexit=1;//假若没有完成就一直继续,想退出自己加上去 
            while(eeexit==1){//是0就回去 
                int hh=0;
                for(int i=1;i<=8;i++){//循环 
                    for(int j=1;j<=8;j++){
                        if(box[i][j]==14)hh++;//判断 
                    }
                } 
                if(hh==0)eeexit=0;
                else{

                    if(kbhit()){
                        sr=getch();
                    }
                    switch(sr) {
                        case 'w':if(box[plx-1][ply]!='#'){if(box[plx-1][ply]==15&&box[plx-2][ply]!='#'){box[plx][ply]=' ';plx--;box[plx-1][ply]=15;}else if(box[plx-1][ply]!=15){box[plx][ply]=' ';plx--;}sr='l';}break;//上 
                        case 's':if(box[plx+1][ply]!='#'){if(box[plx+1][ply]==15&&box[plx+2][ply]!='#'){box[plx][ply]=' ';plx++;box[plx+1][ply]=15;}else if(box[plx+1][ply]!=15){box[plx][ply]=' ';plx++;}sr='l';}break;//下 
                        case 'a':if(box[plx][ply-1]!='#'){if(box[plx][ply-1]==15&&box[plx][ply-2]!='#'){box[plx][ply]=' ';ply--;box[plx][ply-1]=15;}else if(box[plx][ply-1]!=15){box[plx][ply]=' ';ply--;}sr='l';}break;//左 
                        case 'd':if(box[plx][ply+1]!='#'){if(box[plx][ply+1]==15&&box[plx][ply+2]!='#'){box[plx][ply]=' ';ply++;box[plx][ply+1]=15;}else if(box[plx][ply+1]!=15){box[plx][ply]=' ';ply++;}sr='l';}break;//右 
                        default:break;
                    }
                    intel1();

                    Sleep(100);//别闪 太快看不清 
                    system("cls");

                } 
            }
        }
        system("cls");cout<<"You win\n";Sleep(2000);system("cls");
    }
    return 0;
}

吾用手敲出推箱子,唯有壹关,挺轻便的,就是循环判别什么的。初期的事物不须求耗太多日子,练练手就足以。