推箱子(有坑版)

#include<bits/stdc++.h>
#include<conio.h>
#include<windows.h>
using namespace std;
char f;
string dt[7][6]{
	{
		{"##############"},
		{"#            #"},
		{"#  ####      #"},
		{"#        #####"},
		{"##########"}
	},
	{
		{"##############"},
		{"#  #         #"},
		{"#      #   ###"},
		{"#  #         #"},
		{"##############"}
	},
	{
		{"##############"},
		{"#      #     #"},
		{"#            #"},
		{"#      #     #"},
		{"##############"}
	},
	{
		{"###############"},
		{"#             #"},
		{"#   ###########"},
		{"#   #          "},
		{"#####          "}
	},
	{
		{"###############"},
		{"#             #"},
		{"### #    ###  #"},
		{"#   #    #    #"},
		{"#####    ######"},
		{"    ######     "}
	},
	{
		{"     ####      "},
		{"     #  #      "},
		{"  ####  #####  "},
		{" #           # "},
		{" #           # "},
		{" #############"} 
	},
	{
		{"###############"},
		{"#         #   #"},
		{"#     # # #   #"},
		{"#       #     #"},
		{"#             #"},
		{"###############"}
	}
};
int main(){
	for(int g=0;g<7;g++){
		int x,y,xx=2,yy=10,kx1=3,ky1=2;
	bool t1,top=0;
	bool u=0,u2;
	x=3;
	y=1;
	if(g==1){
		x=3;
		y=2;
		xx=2;
		yy=3;
		kx1=3;
		ky1=12;
	}
	if(g==2){
		kx1=1;
		ky1=5;
	}
	if(g==3){
		x=1;
		y=13;
		xx-=1;
		yy=1;
	}
	if(g==4){
		x-=2;
		xx-=1;
		kx1=3;
		ky1=10;
		top=1;
	}
	if(g==5){
		y+=3;
		xx+=1;
	}
	if(g==6){
		top=1;
		x=2;
		y=7;
		xx=2;
		yy=11;
		kx1=1;
		ky1=5;
	}
	for(;;){
		system("cls");
		if(g==3){
			cout<<"4.仔细看代码"<<endl;
		}
		
		else cout<<g+1<<"."<<endl;
		cout<<"h键重来,空格跳关"<<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=='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;
}

第4关绝对没人过(W:上、 S:下、 A :左、D:右)

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值