推箱子

#include <bits/stdc++.h>
using namespace std;
int maxH = 16,maxL = 16,l = maxH/2,h = maxL/2;
int main(){
    srand(time(0));
    int h1[3],l1[3];
    for(int i = 0;i<3;i++){
        if(i==0){
            h1[i] = rand()%16;
            l1[i] = rand()%16;
        }else if(l1[i]!=l1[i-1] && h1[i]!=h1[i-1]){
            h1[i] = rand()%16;
            l1[i] = rand()%16;
        }
    }
    char a;
    while(1){
        for(int i = 0;i<maxH;i++){
            for(int j = 0;j<maxL;j++){
                if(i==h && j==l){
                    cout<<setw(3)<<"A";
                }else{
                    bool a = true;
                    for(int ii = 0;ii<3;ii++){
                        if(i==h1[ii] && j==l1[ii]){
                            cout<<setw(3)<<"B";
                            a = false;
                        }
                    }
                    if(a){
                        cout<<setw(3)<<".";
                    }
                }
            }
            cout<<endl;
        }
        cout<<"请输入方向 (w,a,s,d)"<<endl;
        cin>>a;
        if(a=='a'){
            l--;
            if(l-1<0){
                l = 0;
            }
        }else if(a=='d'){
            l++;
            if(l+1>maxH){
                l = maxL-1;
            }
        }else if(a=='w'){
            h--;
            if(h-1<0){
                h = 0;
            }
        }else if(a=='s'){
            h++;
            if(h+1>maxH){
                h = maxH-1;
            }
        }
        for(int i = 0;i<3;i++){
            if(l==l1[i] && h==h1[i]){
                if(a=='a'){
                    l1[i]--;
                }else if(a=='d'){
                    l1[i]++;
                }else if(a=='w'){
                    h1[i]--;
                }else if(a=='s'){
                    h1[i]++;
                }
            }
            continue;
        }
        system("cls");
    }
    return 0;
}

 

posted @ 2023-08-08 20:33  王一行(小号)  阅读(39)  评论(0编辑  收藏  举报