首页 > 代码库 > 简单的循环和判断

简单的循环和判断

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

咱用手敲出推箱子,只有一关,挺简单的,就是循环判断什么的。初期的东西不需要耗太多时间,练练手就可以。

简单的循环和判断