推箱子
  • 板块灌水区
  • 楼主tianyun4188awa
  • 当前回复20
  • 已保存回复20
  • 发布时间2024/10/4 10:14
  • 上次更新2024/10/4 12:13:53
查看原帖
推箱子
1415261
tianyun4188awa楼主2024/10/4 10:14
#include<bits/stdc++.h>
#include<conio.h>
#include<windows.h>
using namespace std;
char f;
string dt[8][6]{
	{
		{"##############"},
		{"#            #"},
		{"#  ####      #"},
		{"#        #####"},
		{"##########"}
	},
	{
		{"##############"},
		{"#  #         #"},
		{"#      #   ###"},
		{"#  #         #"},
		{"##############"}
	},
	{
		{"##############"},
		{"#      #     #"},
		{"#      #     #"},
		{"#      #     #"},
		{"##############"}
	},
	{
		{"###############"},
		{"#             #"},
		{"#   ###########"},
		{"#   #          "},
		{"#####          "}
	},
	{
		{"###############"},
		{"#   #         #"},
		{"### #    ###  #"},
		{"#   #    #    #"},
		{"#####    ######"},
		{"    ######     "}
	},
	{
		{"     ####      "},
		{"     #  #      "},
		{"  ####  #####  "},
		{" #           # "},
		{" #           # "},
		{" #############"} 
	},
	{
		{"###############"},
		{"#     #   #   #"},
		{"#     # # #   #"},
		{"#       #     #"},
		{"#       # #   #"},
		{"###############"}
	},
	{
		{"###############"},
		{"#       #     #"},
		{"#       #     #"},
		{"#       #     #"},
		{"###############"}
	}
};
int main(){
	cout<<"---------------------------------推箱子小游戏---------------------------------------"<<endl;
	cout<<"任意键开始........."<<endl;
	f=getch();
	system("cls");
	for(int g=0;g<8;g++){
		int x,y,xx=2,yy=10,kx1=3,ky1=2;
	bool t1,top=0;
	bool u=0,u2;
	int nd;
	x=3;
	y=1;
	nd=1;
	if(g==1){
		x=3;
		y=2;
		xx=2;
		yy=3;
		kx1=3;
		ky1=12;
		nd=1;
	}
	if(g==2){
		kx1=1;
		ky1=5;
		nd=8;
	}
	if(g==3){
		x=1;
		y=13;
		xx-=1;
		yy=1;
		nd=10;
	}
	if(g==4){
		x-=2;
		xx-=1;
		kx1=3;
		ky1=10;
		top=1;
		nd=4;
	}
	if(g==5){
		y+=3;
		xx+=1;
		nd=1;
	}
	if(g==6){
		top=1;
		x=2;
		y=7;
		xx=2;
		yy=11;
		kx1=1;
		ky1=5;
		nd=7;
	}
	if(g==7){
		yy=9;
		xx=3;
		top=1;
		ky1=13;
		kx1=3;
		y+=5; 
		nd=10;
	}
	for(;;){
				system("cls");
		cout<<"第"<<g+1<<"关"<<"."<<"		"<<"难度:"<<nd<<endl;
		cout<<"---------------------------"<<endl;
		cout<<"|         小提示:         |"<<endl;
		cout<<"---------------------------"<<endl;
		cout<<"|     w,s,a,d键控制A。    |"<<endl; 
		cout<<"|                         |"<<endl;
		cout<<"|   空格键可以跳过本关。  |"<<endl;
		cout<<"|                         |"<<endl;
		cout<<"|   1键可以重新开始本关。 |"<<endl;
		cout<<"|                         |"<<endl; 
		cout<<"|         ???????。       |"<<endl;
		cout<<"---------------------------"<<endl;
		for(int i=0;i<6;i++){
			for(int j=0;j<17;j++){
				if(i==x&&y==j)cout<<'A';
				else if(i==xx&&j==yy)cout<<'@';
				else if(i==kx1&&j==ky1)cout<<'0';
				else cout<<dt[g][i][j];
				
			}
			cout<<endl;
		}
		
		f=getch();
		if(f>='A'&&f<='Z')f+=32;
		if(f=='w'){
			if(dt[g][x-1][y]=='#')continue;
			if(top){
				x--;
				xx--;
			}
			else {
				x-=1;}
			if(x==xx&&y==yy)xx-=1;
			if(dt[g][xx][yy]=='#'){
				xx+=1;
				x+=1;
			}
			
		}
		if(f=='s'){
			if(dt[g][x+1][y]=='#')continue;
			if(top){
				x++;
				xx++;
			}
			else {
				x+=1;}
			if(x==xx&&y==yy)xx+=1;
			if(dt[g][xx][yy]=='#'){
				xx-=1;
				x-=1;
			}
			
		}
		if(f=='a'){
			if(dt[g][x][y-1]=='#'){
				if(g==2&&x==2&&y==1){
					y+=12;
				}
				else continue;
			}
			if(top){
				y--;
				yy--;
			}
			else y-=1;
			if(x==xx&&y==yy)yy-=1;
			if(dt[g][xx][yy]=='#'){
				yy+=1;
				y+=1;
			}
		}
		if(f=='d'){
			if(dt[g][x][y+1]=='#')continue;
			if(top){
				y++;
				yy++;
			}
			else {
				y+=1;	}
			if(x==xx&&y==yy)yy+=1;
			if(dt[g][xx][yy]=='#'){
				yy-=1;
				y-=1;
		
			if(g==2){
				if(xx==2&&yy==12){
					y-=10;
					yy-=10;
				} 
			}
			}
		}
		if(f=='e'){
			if(top==0)top=1;
			else if(g!=4&&g!=6){
				top=0;
			}
		}
		if(f=='h'){
			u=1;
			break;
		}
		if(f==' '){
			u2=1;
			break;
		}
		if(kx1==xx&&ky1==yy){
			system("cls");
			cout<<"you win!";
			Sleep(1000);
			break;
		}
	}
	if(u==1)g-=1;
	}
	return 0;
}

c++制作~
2024/10/4 10:14
加载中...