C++沙盒生存冒险小游戏1.9

这是我的沙盒小游戏1.9版本,是9代版本。

版本有雪地、草地、树木等元素,并且拥有大地图,目前删除了存档。

还有一个右键升级版本,鼠标锁定时可按下ESC来脱离,有些电脑版本用不了,可以只使用普通版本。

先看看运行效果:

1.9普通版本

#include <bits/stdc++.h>//dev专属  VC不用
#include <windows.h>
using namespace std;
bool axj(long long key);//侦测按键
void yanse(long long n);//颜色
const long long ESC = 27,
Enter = 13,
Tab = 9,//tab
Shang = 38,Xia = 40,Zuo = 37,You = 39,
Kong = ' ',//空格
z_sb = VK_LBUTTON,//鼠标左键
y_sb = VK_RBUTTON,//鼠标右键
Shift = VK_SHIFT,z_Shift = VK_LSHIFT,y_Shift = VK_RSHIFT,//SHIFT
Ctrl = VK_CONTROL,z_Ctrl = VK_LCONTROL,y_Ctrl = VK_RCONTROL,//Ctrl
Alt = VK_MENU,z_Alt = VK_LMENU,y_Alt = VK_RMENU,//alt
A = 'A',B = 'B',C = 'C',D = 'D',E = 'E',F = 'F',G = 'G',H = 'H',I = 'I',J = 'J',K = 'K',L = 'L',M = 'M',N = 'N',O = 'O',P = 'P',Q = 'Q',R = 'R',S = 'S',T = 'T',U = 'U',V = 'V',W = 'W',X = 'X',Y = 'Y',Z = 'Z';
bool axj(long long key){return (GetKeyState(key) < 0);}
void yanse(long long n){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), n);return;}
string name;/*名字*/
long long sj,die,hp,dt[4000][256],sdf1 = 8,sdf2 = 8,fx,bag[100],szt,gzt,slsh,bjx,bjy,R_hand = 0,scc,sck;
void color(long long a){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);}
struct MOB{string u1,u2,d1,d2;long long hp,u1c,u2c,d1c,d2c;};
struct BLOCK{string u1,u2,d1,d2;long long ph,u1c,u2c,d1c,d2c;string name;};
BLOCK block[] ={//方块数据{第一像素,第二像素,第三像素,第四像素,碰撞箱,颜色号}
	{"  ","  ","  ","  ",0,0,0,0,0,"   空   "},//空气0
	{"■","■","■","■",1,120,120,120,120,"  石头  "},//石头1
	{"▓","▓","▓","▓",0,25,25,25,25," 水方块 "},//水2
	{"■","■","■","■",1,15,15,15,15,"  圆石  "},//圆石3
	{"■","■","■","■",1,162,162,102,102,"  草块  "},//草4
	{"■","■","■","■",1,102,102,102,102,"  土块  "},//土5
	{"■","■","■","■",0,68,68,68,68,"岩浆方块"},//岩浆6
	{"▓","▓","▓","▓",1,110,110,110,110,"松树原木"},//木头7
	{"▓","▓","▓","▓",0,147,147,147,147,"松树树叶"},//树叶8
	{"■","■","■","■",1,248,143,143,248," 深板岩 "},//深板岩9
	{"▓","▓","▓","▓",0,15,15,15,15," 细雪块 "},//雪10
	{"▓","▓","▓","▓",1,120,120,120,120,"基岩方块"},//基岩11
	{"  ","  ","__","__",0,15,15,15,15,"  薄雪  "},//雪12
	{"▓","▓","▓","▓",1,110,110,110,110,"果树原木"},//木头13
	{"▓","▓","▓","▓",0,162,162,162,162,"果树树叶"},//树叶14
};
void muzic_die(){ //死亡画面
	cout << "   你死了\n" << "   " << name << "死于:";
	if(die == 1){cout << "岩浆\n";}else if(die == 4){cout << name<<"从高空一跃而下\n";}else{cout << "死了\n";}
	Sleep(1000);system("cls");hp = 10;dt[sdf1][sdf2] = 0;}
void sc(){ //输出
	for(long long i = sdf1 - 7; i < sdf1 + 7; i++){
		for(long long j = sdf2 - 7; j < sdf2 + 7; j++){
			if(i == sdf1&&j == sdf2){
				color(15);
				if(fx == 'w'){cout << "上玩";
				}else if(fx == 's'){cout << "下玩";
				}else if(fx == 'a'){cout << "左玩";
				}else if(fx == 'd'){cout << "右玩";}
			}else{
				if(dt[i][j] == 4 && dt[i - 1][j] == 12){
					color(127);
					cout << block[dt[i][j]].u1;
					color(127);
					cout << block[dt[i][j]].u2;
				}else{
					color(block[dt[i][j]].u1c);
					cout << block[dt[i][j]].u1;
					color(block[dt[i][j]].u2c);
					cout << block[dt[i][j]].u2;
				}}}cout << endl;
		for(long long j = sdf2 - 7; j < sdf2 + 7; j++){
			if(i == sdf1 && j == sdf2){color(15);
				if(fx == 'w'){cout << "↑家";
				}else if(fx == 's'){cout << "↓家";
				}else if(fx == 'a'){cout << "←家";
				}else if(fx == 'd'){cout << "→家";}
			}else{
				color(block[dt[i][j]].d1c);
				cout << block[dt[i][j]].d1;
				color(block[dt[i][j]].d2c);
				cout<< block[dt[i][j]].d2;
			}}cout << endl;}
	color(15);cout<< "按鼠标左键挖掘,按wasd上下左右行走,按鼠标右键放方块,\n玩家名称:" << name << "\n";
	cout<< "X:" << sdf2 << "  Y:" << sdf1 << "\n";
	if(hp < 1){muzic_die();}
	for(long long i = 1; i <= hp; i++){color(4);cout << "▓";}
	for(long long i = hp; i < 10; i++){color(8);cout << "▓";}
	color(15);cout << endl;
	for(long long bag_i = 0; bag_i < 100; bag_i++){
		if(bag[bag_i] > 0){
			cout << block[bag_i].name << 'x' << bag[bag_i];
		}
	}
}
void dz(){
	if(axj(W)){
		if(block[dt[sdf1 - 1][sdf2]].ph == 0 && sdf1 != 0){
			sdf1--;system("cls");
			fx = 'w';slsh = 0;sc();
		}else if(fx != 'w'){
			fx = 'w';
			system("cls");
			sc();}
	}else if(axj(S)){
		if(block[dt[sdf1 + 1][sdf2]].ph == 0 && sdf1 != 29){
			sdf1++;system("cls");sc();}
		if(fx != 's'){
			fx = 's';system("cls");sc();}
	}else if(axj(A)){
		if(block[dt[sdf1][sdf2 - 1]].ph == 0 && sdf2 != 0){
			sdf2--;
			system("cls");
			fx = 'a';
			sc();
		}else if(fx != 'a'){
			fx = 'a';
			system("cls");
			sc();}
	}else if(axj(D)){
		if(block[dt[sdf1][sdf2 + 1]].ph == 0 && sdf2 != 30){
			sdf2++;
			system("cls");
			fx = 'd';
			sc();
		}else if(fx != 'd'){
			fx = 'd';system("cls");sc();}
	}else if(axj(z_sb)){
		if(fx == 'w'){
			bjx = sdf1 - 1;
			bjy = sdf2;
		}else if(fx == 's'){
			bjx = sdf1 + 1;
			bjy = sdf2;
		}else if(fx == 'a'){
			bjx = sdf1;
			bjy = sdf2 - 1;
		}else if(fx == 'd'){
			bjx = sdf1;
			bjy = sdf2 + 1;
		}
		if(dt[bjx][bjy] != 0&&dt[bjx][bjy] != 2&&dt[bjx][bjy]!=6&&bjx!=14&&bjx!=-1&&bjy!=-1&&bjy!=31&&dt[bjx][bjy]!=11){
			if(fx=='s'){
				bag[dt[bjx][bjy]]++;
				dt[bjx][bjy]=0;
				system("cls");sc();
			}else if(fx=='w'){
				bag[dt[bjx][bjy]]++;
				dt[bjx][bjy]=0;
				system("cls");
				sc();
			}else if(fx=='a'){
				bag[dt[bjx][bjy]]++;
				dt[bjx][bjy]=0;
				system("cls");sc();
			}else if(fx=='d'){
				bag[dt[bjx][bjy]]++;
				dt[bjx][bjy]=0;
				system("cls");sc();
			}
		}else{
			for(long long i=1; i<=4; i++){
				if(fx=='w'){
					bjx--;
				}else if(fx=='s'){
					bjx++;
				}else if(fx=='a'){
					bjy--;
				}else if(fx=='d'){
					bjy++;
				}
				if(dt[bjx][bjy]!=0&&dt[bjx][bjy]!=2&&dt[bjx][bjy]!=6){
					bag[dt[bjx][bjy]]++;
					dt[bjx][bjy]=0;
					system("cls");sc();break;
				}}}
	}else if(axj(y_sb)){
		if(fx=='w'){
			dt[sdf1-1][sdf2]=3;
		}else if(fx=='s'){
			dt[sdf1+1][sdf2]=3;
		}else if(fx=='a'){
			dt[sdf1][sdf2-1]=3;
		}else if(fx=='d'){
			dt[sdf1][sdf2+1]=3;
		}
		system("cls");sc();}}
long long suiji(long long start, long long end){
	long long dis = end - start;
	return start + dis * (rand() / (RAND_MAX + 1.0));
}
void csh(){
	system("mode con cols=120 lines=46");system("title YUTU制作——沙盒游戏");
	system("cls");long long flag, flag2,lflag;
	flag = suiji(40,100);
	for(long long i = 0;i < 4000;i++){for(long long j = 0;j < 256;j++){dt[j][i] = 0;}}
	for(long long i = 0;i < 4000;i++){
		for(long long j = 0;j < 256;j++){if(dt[j][i] != 8 || j < lflag - 6)dt[j][i] = 0;}
		dt[flag][i] = 4;
		if(flag < 55){dt[flag - 1][i] = 12;}
		if(suiji(1,30) == 1){
			if(flag < 54){
				dt[flag - 1][i] = 7;dt[flag - 1 - 1][i] = 7;dt[flag - 1 - 2][i] = 7;dt[flag - 1 - 3][i] = 7;dt[flag - 1 - 2][i - 1] = 8;dt[flag - 1 - 2][i + 1] = 8;dt[flag - 1 - 2][i + 2] = 8;dt[flag - 1 - 2][i - 2] = 8;dt[flag - 1 - 3][i - 1] = 8;dt[flag - 1 - 3][i + 1] = 8;dt[flag - 1 - 4][i] = 8;
			}else{
				dt[flag - 1][i] = 13;dt[flag - 1 - 1][i] = 13;dt[flag - 1 - 2][i] = 13;dt[flag - 1 - 3][i] = 13;dt[flag - 1 - 2][i - 1] = 14;dt[flag - 1 - 2][i + 1] = 14;dt[flag - 1 - 2][i + 2] = 14;dt[flag - 1 - 2][i - 2] = 14;dt[flag - 1 - 3][i - 1] = 14;dt[flag - 1 - 3][i + 1] = 14;dt[flag - 1 - 4][i] = 14;
			}
		}else if(suiji(1,20) == 1){
			if(flag < 54){dt[flag - 1][i] = 7;dt[flag - 1 - 1][i] = 7;dt[flag - 1 - 1][i - 1] = 8;dt[flag - 1 - 1][i + 1] = 8;dt[flag - 1 - 2][i] = 8;
			}else{
				dt[flag - 1][i] = 13;dt[flag - 1 - 1][i] = 13;dt[flag - 1 - 1][i - 1] = 14;dt[flag - 1 - 1][i + 1] = 14;dt[flag - 1 - 2][i] = 14;}}
		if(i == 2000){sdf1 = 58 ;sdf2 = 2000;}
		flag2 = suiji(0,5) + suiji(1,3);
		for(long long j = 1;j < flag2;j++){dt[flag + j][i] = 5;}
		for(long long j = flag2;j < 256;j++){
			if(suiji(0,50) == 0){dt[flag + j][i] = 6;
			}else if(suiji(0,25) == 0){dt[flag + j][i] = 2;
			}else{dt[flag + j][i] = 1;}}
		lflag = flag;
		flag += suiji(0,5) - 2;
		if(flag > 100){
			flag -= 4;}
		if(flag < 40){
			flag += 4;}
	}
}
int main(){
	CONSOLE_CURSOR_INFO cursor;
	cursor.bVisible = FALSE;
	cursor.dwSize = sizeof(cursor);
	HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleCursorInfo(handle, &cursor);
	HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE);
	DWORD mode;
	GetConsoleMode(hStdin, &mode);
	mode &= ~ENABLE_QUICK_EDIT_MODE;
	SetConsoleMode(hStdin, mode);system("cls");
	yanse(15);cout<<"你的名字叫什么?\n";cin>>name;
	system("cls");
	sck = 7;
	csh();sc();
	while(1){
		if(hp==0)muzic_die();
		dz();
		if(gzt==125-1){
			if(dt[sdf1][sdf2] == 6){
				hp-=0.1;
				if(hp == hp / 1 * 1){
					system("cls");
					sc();
				}
			}
			if(block[dt[sdf1 + 1][sdf2]].ph == 0){
				sdf1++;
				slsh++;
				if(dt[sdf1 + 1][sdf2] == 2||dt[sdf1 + 1][sdf2] == 6){
					slsh = 0;
				}
				system("cls");sc();
			}else{
				if(slsh > 2){
					hp -= slsh - 2;
					slsh = 0;
					die = 4;
					if(hp == hp / 1 * 1){
						system("cls");sc();}
				}else{
					slsh = 0;
				}}}
		sj++;sj %= 240;gzt++;gzt %= 125;
	}
	return 0;
}

1.9.5升级版本

#include <bits/stdc++.h>//dev专属  VC不用
#include <windows.h>
using namespace std;
bool axj(long long key);//侦测按键
void yanse(long long n);//颜色
const long long ESC = 27,
Enter = 13,
Tab = 9,//tab
Shang = 38,Xia = 40,Zuo = 37,You = 39,
Kong = ' ',//空格
z_sb = VK_LBUTTON,//鼠标左键
y_sb = VK_RBUTTON,//鼠标右键
Shift = VK_SHIFT,z_Shift = VK_LSHIFT,y_Shift = VK_RSHIFT,//SHIFT
Ctrl = VK_CONTROL,z_Ctrl = VK_LCONTROL,y_Ctrl = VK_RCONTROL,//Ctrl
Alt = VK_MENU,z_Alt = VK_LMENU,y_Alt = VK_RMENU,//alt
A = 'A',B = 'B',C = 'C',D = 'D',E = 'E',F = 'F',G = 'G',H = 'H',I = 'I',J = 'J',K = 'K',L = 'L',M = 'M',N = 'N',O = 'O',P = 'P',Q = 'Q',R = 'R',S = 'S',T = 'T',U = 'U',V = 'V',W = 'W',X = 'X',Y = 'Y',Z = 'Z';
bool axj(long long key){return (GetKeyState(key) < 0);}
void yanse(long long n){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), n);return;}
string name;/*名字*/
long long sj,die,hp,dt[4000][256],sdf1 = 8,sdf2 = 8,fx,bag[100],szt,gzt,slsh,bjx,bjy,R_hand = 0;
void color(long long a){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);}
struct MOB{string u1,u2,d1,d2;long long hp,u1c,u2c,d1c,d2c;};
struct BLOCK{string u1,u2,d1,d2;long long ph,u1c,u2c,d1c,d2c;string name;};
BLOCK block[] ={//方块数据{第一像素,第二像素,第三像素,第四像素,碰撞箱,颜色号}
	{"  ","  ","  ","  ",0,0,0,0,0,"   空   "},//空气0
	{"■","■","■","■",1,120,120,120,120,"  石头  "},//石头1
	{"▓","▓","▓","▓",0,25,25,25,25," 水方块 "},//水2
	{"■","■","■","■",1,15,15,15,15,"  圆石  "},//圆石3
	{"■","■","■","■",1,162,162,102,102,"  草块  "},//草4
	{"■","■","■","■",1,102,102,102,102,"  土块  "},//土5
	{"■","■","■","■",0,68,68,68,68,"岩浆方块"},//岩浆6
	{"▓","▓","▓","▓",1,110,110,110,110,"松树原木"},//木头7
	{"▓","▓","▓","▓",0,147,147,147,147,"松树树叶"},//树叶8
	{"■","■","■","■",1,248,143,143,248," 深板岩 "},//深板岩9
	{"▓","▓","▓","▓",0,15,15,15,15," 细雪块 "},//雪10
	{"▓","▓","▓","▓",1,120,120,120,120,"基岩方块"},//基岩11
	{"  ","  ","__","__",0,15,15,15,15,"  薄雪  "},//雪12
	{"▓","▓","▓","▓",1,110,110,110,110,"果树原木"},//木头13
	{"▓","▓","▓","▓",0,162,162,162,162,"果树树叶"},//树叶14
};
void muzic_die(){ //死亡画面
	cout << "   你死了\n" << "   " << name << "死于:";
	if(die == 1){cout << "岩浆\n";}else if(die == 4){cout << name<<"从高空一跃而下\n";}else{cout << "死了\n";}
	Sleep(1000);system("cls");hp = 10;dt[sdf1][sdf2] = 0;}
void sc(){ //输出
	for(long long i = sdf1 - 7; i < sdf1 + 7; i++){
		for(long long j = sdf2 - 7; j < sdf2 + 7; j++){
			if(i == sdf1&&j == sdf2){
				color(15);
				if(fx == 'w'){cout << "上玩";
				}else if(fx == 's'){cout << "下玩";
				}else if(fx == 'a'){cout << "左玩";
				}else if(fx == 'd'){cout << "右玩";}
			}else{
				if(dt[i][j] == 4 && dt[i - 1][j] == 12){
					color(127);
					cout << block[dt[i][j]].u1;
					color(127);
					cout << block[dt[i][j]].u2;
				}else{
					color(block[dt[i][j]].u1c);
					cout << block[dt[i][j]].u1;
					color(block[dt[i][j]].u2c);
					cout << block[dt[i][j]].u2;
				}}}cout << endl;
		for(long long j = sdf2 - 7; j < sdf2 + 7; j++){
			if(i == sdf1 && j == sdf2){color(15);
				if(fx == 'w'){cout << "↑家";
				}else if(fx == 's'){cout << "↓家";
				}else if(fx == 'a'){cout << "←家";
				}else if(fx == 'd'){cout << "→家";}
			}else{
				color(block[dt[i][j]].d1c);
				cout << block[dt[i][j]].d1;
				color(block[dt[i][j]].d2c);
				cout<< block[dt[i][j]].d2;
			}}cout << endl;}
	color(15);cout<< "按鼠标左键挖掘,按wasd上下左右行走,按鼠标右键放方块,\n玩家名称:" << name << "\n";
	cout<< "X:" << sdf2 << "  Y:" << sdf1 << "\n";
	if(hp < 1){muzic_die();}
	for(long long i = 1; i <= hp; i++){color(4);cout << "▓";}
	for(long long i = hp; i < 10; i++){color(8);cout << "▓";}
	color(15);cout << endl;
	for(long long bag_i = 0; bag_i < 100; bag_i++){
		if(bag[bag_i] > 0){
			cout << block[bag_i].name << 'x' << bag[bag_i];
		}
	}
}
void dz(){
	if(axj(W)){
		if(block[dt[sdf1 - 1][sdf2]].ph == 0 && sdf1 != 0){
			sdf1--;system("cls");
			fx = 'w';slsh = 0;sc();
		}else if(fx != 'w'){
			fx = 'w';
			system("cls");
			sc();}
	}else if(axj(S)){
		if(block[dt[sdf1 + 1][sdf2]].ph == 0 && sdf1 != 29){
			sdf1++;system("cls");sc();}
		if(fx != 's'){
			fx = 's';system("cls");sc();}
	}else if(axj(A)){
		if(block[dt[sdf1][sdf2 - 1]].ph == 0 && sdf2 != 0){
			sdf2--;
			system("cls");
			fx = 'a';
			sc();
		}else if(fx != 'a'){
			fx = 'a';
			system("cls");
			sc();}
	}else if(axj(D)){
		if(block[dt[sdf1][sdf2 + 1]].ph == 0 && sdf2 != 30){
			sdf2++;
			system("cls");
			fx = 'd';
			sc();
		}else if(fx != 'd'){
			fx = 'd';system("cls");sc();}
	}else if(axj(ESC)){
		while(axj(ESC)){}while(!axj(ESC)){}while(axj(ESC)){}
	}else if(axj(z_sb)){
		if(fx == 'w'){
			bjx = sdf1 - 1;
			bjy = sdf2;
		}else if(fx == 's'){
			bjx = sdf1 + 1;
			bjy = sdf2;
		}else if(fx == 'a'){
			bjx = sdf1;
			bjy = sdf2 - 1;
		}else if(fx == 'd'){
			bjx = sdf1;
			bjy = sdf2 + 1;
		}
		if(dt[bjx][bjy] != 0&&dt[bjx][bjy] != 2&&dt[bjx][bjy]!=6&&bjx!=14&&bjx!=-1&&bjy!=-1&&bjy!=31&&dt[bjx][bjy]!=11){
			if(fx=='s'){
				bag[dt[bjx][bjy]]++;
				dt[bjx][bjy]=0;
				system("cls");sc();
			}else if(fx=='w'){
				bag[dt[bjx][bjy]]++;
				dt[bjx][bjy]=0;
				system("cls");
				sc();
			}else if(fx=='a'){
				bag[dt[bjx][bjy]]++;
				dt[bjx][bjy]=0;
				system("cls");sc();
			}else if(fx=='d'){
				bag[dt[bjx][bjy]]++;
				dt[bjx][bjy]=0;
				system("cls");sc();
			}
		}else{
			for(long long i=1; i<=4; i++){
				if(fx=='w'){
					bjx--;
				}else if(fx=='s'){
					bjx++;
				}else if(fx=='a'){
					bjy--;
				}else if(fx=='d'){
					bjy++;
				}
				if(dt[bjx][bjy]!=0&&dt[bjx][bjy]!=2&&dt[bjx][bjy]!=6){
					bag[dt[bjx][bjy]]++;
					dt[bjx][bjy]=0;
					system("cls");sc();break;
				}}}
	}else if(axj(y_sb)){
		while(axj(y_sb)){}
		SetCursorPos(500,300);
		mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);Sleep(10);mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
		if(fx=='w'){
			dt[sdf1-1][sdf2]=3;
		}else if(fx=='s'){
			dt[sdf1+1][sdf2]=3;
		}else if(fx=='a'){
			dt[sdf1][sdf2-1]=3;
		}else if(fx=='d'){
			dt[sdf1][sdf2+1]=3;
		}
		system("cls");sc();}}
long long suiji(long long start, long long end){
	long long dis = end - start;
	return start + dis * (rand() / (RAND_MAX + 1.0));
}
void csh(){
	system("mode con cols=120 lines=46");system("title YUTU制作——沙盒游戏");
	system("cls");long long flag, flag2,lflag;
	flag = suiji(40,100);
	for(long long i = 0;i < 4000;i++){for(long long j = 0;j < 256;j++){dt[j][i] = 0;}}
	for(long long i = 0;i < 4000;i++){
		for(long long j = 0;j < 256;j++){if(dt[j][i] != 8 || j < lflag - 6)dt[j][i] = 0;}
		dt[flag][i] = 4;
		if(flag < 55){dt[flag - 1][i] = 12;}
		if(suiji(1,30) == 1){
			if(flag < 54){
				dt[flag - 1][i] = 7;dt[flag - 1 - 1][i] = 7;dt[flag - 1 - 2][i] = 7;dt[flag - 1 - 3][i] = 7;dt[flag - 1 - 2][i - 1] = 8;dt[flag - 1 - 2][i + 1] = 8;dt[flag - 1 - 2][i + 2] = 8;dt[flag - 1 - 2][i - 2] = 8;dt[flag - 1 - 3][i - 1] = 8;dt[flag - 1 - 3][i + 1] = 8;dt[flag - 1 - 4][i] = 8;
			}else{
				dt[flag - 1][i] = 13;dt[flag - 1 - 1][i] = 13;dt[flag - 1 - 2][i] = 13;dt[flag - 1 - 3][i] = 13;dt[flag - 1 - 2][i - 1] = 14;dt[flag - 1 - 2][i + 1] = 14;dt[flag - 1 - 2][i + 2] = 14;dt[flag - 1 - 2][i - 2] = 14;dt[flag - 1 - 3][i - 1] = 14;dt[flag - 1 - 3][i + 1] = 14;dt[flag - 1 - 4][i] = 14;
			}
		}else if(suiji(1,20) == 1){
			if(flag < 54){dt[flag - 1][i] = 7;dt[flag - 1 - 1][i] = 7;dt[flag - 1 - 1][i - 1] = 8;dt[flag - 1 - 1][i + 1] = 8;dt[flag - 1 - 2][i] = 8;
			}else{
				dt[flag - 1][i] = 13;dt[flag - 1 - 1][i] = 13;dt[flag - 1 - 1][i - 1] = 14;dt[flag - 1 - 1][i + 1] = 14;dt[flag - 1 - 2][i] = 14;}}
		flag2 = suiji(0,5) + suiji(1,3);
		for(long long j = 1;j < flag2;j++){dt[flag + j][i] = 5;}
		for(long long j = flag2;j < 256;j++){
			if(suiji(0,50) == 0){dt[flag + j][i] = 6;
			}else if(suiji(0,25) == 0){dt[flag + j][i] = 2;
			}else{dt[flag + j][i] = 1;}}
		lflag = flag;
		flag += suiji(0,5) - 2;
		if(flag > 100){
			flag -= 4;}
		if(flag < 40){
			flag += 4;}
	}
	sdf1 = 58;sdf2 = 2000;
}
int main(){
	CONSOLE_CURSOR_INFO cursor;
	cursor.bVisible = FALSE;
	cursor.dwSize = sizeof(cursor);
	HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleCursorInfo(handle, &cursor);
	HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE);
	DWORD mode;
	GetConsoleMode(hStdin, &mode);
	mode &= ~ENABLE_QUICK_EDIT_MODE;
	SetConsoleMode(hStdin, mode);system("cls");
	yanse(15);cout<<"你的名字叫什么?\n";cin>>name;
	system("cls");csh();sc();
	while(1){
		SetCursorPos(500,500);
		if(hp==0)muzic_die();
		dz();
		if(gzt==125-1){
			if(dt[sdf1][sdf2] == 6){
				hp-=0.1;
				if(hp == hp / 1 * 1){
					system("cls");
					sc();
				}
			}
			if(block[dt[sdf1 + 1][sdf2]].ph == 0){
				sdf1++;
				slsh++;
				if(dt[sdf1 + 1][sdf2] == 2||dt[sdf1 + 1][sdf2] == 6){
					slsh = 0;
				}
				system("cls");sc();
			}else{
				if(slsh > 2){
					hp -= slsh - 2;
					slsh = 0;
					die = 4;
					if(hp == hp / 1 * 1){
						system("cls");sc();}
				}else{
					slsh = 0;
				}}}
		sj++;sj %= 240;gzt++;gzt %= 125;
	}
	return 0;
}
#include<bits/stdc++.h> #include<windows.h> using namespace std; int choice; int a=0,b=0,c=0,d=0; int user_input; void S(int Color) { HANDLE hCon=GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hCon,Color); } void wait() { Sleep(100); user_input=getchar(); } void cls() { Sleep(100); system("cls"); } int main(int argc, char *argv[]) { S(172); start:cls(); goto a1; gameover:printf("游戏结束。"); printf("按回车键继续"); user_input=getchar(); goto start; a1:printf("现在游戏开始。"); user_input=getchar(); printf("一天,你正在开飞机经过一片雪山区。"); wait(); printf("忽然你的操作系统失控了,飞机直直地坠入山中。"); wait(); printf("你朝两旁看了看,左边是雪地,右边是树林。而你正前方是悬崖,所以你不得不转弯。\n1-左转。\n2-右转。\n"); s1:wait(); switch(user_input) { case&#39;1&#39;:goto a8; case&#39;2&#39;:goto a13; default:goto s1; } a2:cls(); printf("你下了飞机,走向树林。"); wait(); printf("过了一会儿,你感到又饿又冷,就喝了一点威士忌,坐下休息。"); wait(); printf("但是,威士忌并没有让你觉得温暖。你只是觉得很冷、很冷。\n"); goto gameover; a3:cls(); printf("你吃了一些果实,还摘了一些放在口袋,想晚一点吃。"); wait(); printf("过了一会儿,你的肚子剧烈的痛起来。这时,你才意识到,果子有毒!\n"); goto gameover; a4:cls(); printf("你是否要继续往隧道里走?\n1-是。\n2-不了。\n"); s4:wait(); switch(user_input) { case&#39;1&#39;:goto a18; case&#39;2&#39;:goto a22; default:goto s4; } a5:cls(); printf("你能带三件东西下飞机。请选择:\n1-香蕉、打火机、外套。\n2-威士忌、外套、匕首。\n"); s5:wait(); switch(user_input) { case&#39;1&#39;:goto a10; case&#39;2&#39;:goto a2; default:goto s5; } a6:cls(); printf("你走到了隧道里,隧道里很黑,忽然你被一个东西绊倒了。\n"); wait(); printf("你爬起来,看了看地上的东西,原来是一条麻绳。\n1-捡起来。\n2-置之不理。\n"); s6:wait(); switch(user_input) { case&#39;1&#39;:goto a11; case&#39;2&#39;:goto a23; default:goto s6; } a7:cls(); printf("你呆在飞机里,感到越来越冷,你不得不离开了飞机。\n"); goto a5; a8:cls(); printf("随着“噗”地一声闷响,你的飞机安全降落在雪地上。"); wait(); printf("你要离开飞机去找东西吗?\n1-离开。\n2-待着。\n"); s8:wait(); switch(user_input) { case&#39;1&#39;:goto a5; case&#39;2&#39;:goto a7; default:goto s8; } a9:cls(); printf("你走出了隧道,继续走。\n"); wait(); printf("你来到了一个山谷前。"); wait(); printf("要走过去吗?\n1-走。\n2-不走。\n"); s9:wait(); switch(user_input) { case&#39;1&#39;:goto a17; case&#39;2&#39;:goto a12; default:goto s9; } a10:cls(); printf("你下了飞机,漫无目的地寻找食物。\n"); wait(); printf("你看到了一棵树,树上结着一种你从未见过的果子。\n1-吃一点。\n2-离开。\n"); s10:wait(); switch(user_input) { case&#39;1&#39;:goto a3; case&#39;2&#39;:goto a15; default:goto s10; } a11:cls(); printf("你捡起了绳子,发现它很长。"); a++; wait(); wait(); goto a22; a12:cls(); printf("你没有走进山谷,而是继续走。\n"); wait(); printf("很快,你就因饥饿死去了。\n"); wait(); goto gameover; a13:cls(); printf("“轰”,你的飞机撞上了树,爆炸了。"); wait(); goto gameover; a14:cls(); printf("你追着飞机跑。但是,飞机比你快太多了,你没有追上。"); wait(); printf("你很累很累,倒在了地上。"); wait(); printf("你死于虚脱。\n"); wait(); goto gameover; a15:cls(); printf("你没有吃果子,而是继续走。你走了很久,来到一个隧道口。\n1-进去。\n2-不进去。\n"); s15:wait(); switch(user_input) { case&#39;1&#39;:goto a6; case&#39;2&#39;:goto a21; default:goto s15; } a16:cls(); printf("你捞起了很多鱼,找了些树枝,烤了鱼来吃。"); wait(); printf("你觉得好多了。"); wait(); printf("这时,天空中传来嗡嗡的响声。你抬头一看,有飞机!\n1-追着飞机跑。\n2-点篝火。\n"); s16:wait(); switch(user_input) { case&#39;1&#39;:goto a14; case&#39;2&#39;:goto a20; default:goto s16; } a17:cls(); printf("你走了很久,有些体力不支,于是你把香蕉吃了。"); wait(); printf("你走了很久,来到了一个废弃矿坑边。\n1-探索一下。\n2-离开。\n"); s17:wait(); switch(user_input) { case&#39;1&#39;:goto a24; case&#39;2&#39;:goto a19; default:goto s17; } a18:cls(); printf("你继续往隧道里走,你感觉呼吸越来越难受。\n"); wait(); wait(); printf("你死于窒息。\n"); wait(); goto gameover; a19:cls(); printf("你来到了一个冰封的湖边。"); wait(); if(a==1) { if(b==1) { printf("你用麻绳织了个渔网,用锤子砸破冰面,试图捞上一些鱼。\n"); wait(); goto a16; } else { printf("你用麻绳织了个渔网,却无法打破冰面。你无奈地望着湖面,绝望地叹了口气。\n"); wait(); printf("你饿死了。\n"); wait(); goto gameover; } } else { if(b==1) { printf("你用锤子砸破了冰面,却没办法捞鱼。你无奈地望着湖面,绝望地叹了口气。\n"); wait(); printf("你饿死了。\n"); wait(); goto gameover; } else { printf("你很想捞鱼,却无法打破冰面,又没办法捞鱼。你无奈地望着湖面,绝望地叹了口气。\n"); wait(); printf("你饿死了。\n"); wait(); goto gameover; } } a20:cls(); printf("你找来许多木头,点燃了篝火。飞机上的人看见了浓烟,降落下来,把你救上了飞机。\n"); wait(); printf("事后,你被送去了医院治疗。\n"); printf("生存成功!\n"); wait(); goto gameover; a21:cls(); printf("你绕过了隧道,继续走。\n"); goto a9; a22:cls(); printf("你要继续走吗?\n1-是。\n2-不了。\n"); s22:wait(); switch(user_input) { case&#39;1&#39;:goto a18; case&#39;2&#39;:goto a9; default:goto s22; } a23:cls(); printf("你没有捡起绳子。"); wait(); wait(); goto a22; a24:cls(); printf("你找到了一把锤子。\n"); b++; wait(); wait(); goto a19; return 0; }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值