推箱子
#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; }