#include<bits/stdc++.h>
#include<windows.h>
#include <conio.h>
using namespace std;
void hide() {
HANDLE hout = GetStdHandle(STD_OUTPUT_HANDLE);
COORD coord;
CONSOLE_CURSOR_INFO cursor_info = {1, 0};
SetConsoleCursorInfo(hout, &cursor_info);
}
struct tree{
bool w,w1;
int t;
int x,y;
}mat[40][25],we;
struct house{
int m,x,y;
}a[60][90],ho;
const int hos=2,ii=16,iii=6,iiii=6,iiiii=7,i2=2,gzi=4,y=4;//ii物品iiii建筑iiiii道具iii设计图 i2装备 y药水
long long go,tian=1,sheng=20,dongs[ii],shec[iii]={4,6,9},shez[iii]={2,4,3},shew[iii]={3,5,8},ti=10,tlsx=10;
char map2[61][90],mapsc[37][37];//输出打印的数组
bool czjs=false;
string name,she[iii]={"火把设计图(2木材)","熔炉设计图(4石头)","镐子设计图(不同镐子不同)(通用)","锻造锤设计图(2木材8铁锭2尼龙线)","锻造台设计图(10铁锭2石头6木材)","铁砧设计图(20铁)"};
string ddong[ii]={"矿泉水","面包","空矿泉水瓶","木材","火把","石头","熔炉(周围要1火把)(' '熔炼)","粗铁","铁锭","垃圾","皮革","废弃的尼龙线","血袋","钛","钛矿","钛合金锭"},mmap[7]={"森林(0.退出)","小溪","石场"};
string jianzhu[iiii]={"篝火","鱼缸","锻造台","铁砧","纺织机","制药台"},daojv[iiiii]={"捕鱼陷阱","皮衣","锻造锤","针","快烧核心","滤网","采集棒"};
string fish[2]={"生鱼","烤鱼(体力+7,生命+2)"};//输出fish
string gz[gzi]={"木镐(3木)","石镐(3石)","铁镐(3铁)","钛合金搞(5钛合金2铁)"};
int gz1[gzi];
string zy[y]={"大胃袋药水(体力上限变为20点)(使用后不会立马回满)","饱腹药水(体力回满)","生命恢复药水(生命立马回满)","再生药水(每天恢复7点血)"};
int ys[y];//数量
bool yssjt[y];//设计图
int sg;//试管
int zs=0;//再生药水恢复周期
int zycl[y],sl[y]={25,2,1,1};//制药材料,制药材料数量
string zyclstr[y]={"上皮组织","鱼油","血块","人参"};
int zyf=0;//制药粉
string zysjt[y]={"25管上皮组织(1玻璃胚胎做玻璃瓶,1钛合金做采集棒)1袋制药粉","2坨鱼油1袋制药粉","1血块1袋制药粉","1人参1袋制药粉"};//制药设计图
int jianzhu1[iiii],daojv1[iiiii];
int fish1[2]={0,0},w1,yg=0;//fish数量
string zb[i2]={"皮衣(40皮革6尼龙线)","皮帽(7皮革2木材2尼龙线)"};
bool zbbool[i2]={false,false};
char work[iii+iiii+1]={' ',' ','!','n','@','~','#','z','m','T'};//工作方块标记
long long jian[hos]={4,6};
int gaoz[gzi],gznj[gzi]={3,5,9,18};//gznj是耐久
int ks[3]={5,7,14};//结构体数组(方便挖矿++)
bool ljy=false,ljyts=false;
bool hg=false,w=false,js=false; //判断有没有点亮的篝火 w有没有网js有没有解锁捕鱼玩法
bool shes[iii];
bool gh[61][90],dzt[61][90],ksrl[61][90];
int water=10;
int qhq;//强化熔炉
int sz,blsp,blcx,blp,fwx;//sz沙子blsp玻璃碎片blcx玻璃雏形blp玻璃瓶fwx渔网x轴
bool rlqh[61][90];
bool mm=false;
int cdx,cdy,cd=false;//彩蛋
int ldlskcs=0;//炼丹炉打开次数
bool key=false,ct=false,opendoor=false;//钥匙
string mms="AKNOI";//药店金库密码
bool dt=false;//城镇中的地图
int cddj=0;//彩蛋跺脚(太上老君)
bool xd1=false,xd2=false,xd3=false;//仙丹
char cz[30][30]={ //城镇
'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'.','.','s','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','#','#','#','#','.','.','.',
'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','#','#','#','#','.','.','.',
'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','#','#','N','#','.','.','.',
'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'.','.','.','.','.','.','.','.','.','.','.','v','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'.','.','.','.','.','.','.','d','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'.','.','.','.','.','.','d','.','.','.','L','.','.','^','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'.','.','.','.','.','.','.','.','.','.','.','.','^','^','^','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'.','|','.','.','.','.','.','.','.','.','.','^','^','^','^','^','.','.','/','.','.','.','.','.','.','.','.','.','.','.',
'.','|','.','.','.','.','.','.','.','.','.','#','#','#','#','#','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'.','|','.','.','.','.','.','.','.','.','.','#','#','#','#','#','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'.','.','.','.','.','.','.','.','.','.','.','#','#','#','#','#','.','.','.','.','.','.',';','.','.','.','.','.','.','.',
'.','.','.','.','.','.','.','.','.','.','.','#','#','N','#','#','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'.','.','.','.','.','.','.','.','.','.','.','.','.','.','}','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','=','.','.','.','.','.','.',
'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'.','.','.','.','.','.','.','.','.','.','[','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'#','#','#','N','#','#','#','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'#','#','#','#','#','#','#','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'#','#','#','#','#','#','#','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'#','#','#','#','#','#','#','.','.','.','.','.','.','_',' ','_','.','.','.','.','.','.','.','-','.','.','.','.','.','.'//民宿楼
};
bool bxjs=false;//保险解锁
void csh() {//初始化数组
memset(map2,'.',sizeof(map2));
}
void ghbecomefalse(){
for(int i=0;i<60;i++){
for(int j=0;j<90;j++){
gh[i][j]=false;
}
}
hg=false;
}//篝火变false
void rlqhbecomefalse(){
for(int i=0;i<60;i++){
for(int j=0;j<90;j++){
rlqh[i][j]=false;
}
}
}
void dztbecomefalse(){
for(int i=0;i<60;i++){
for(int j=0;j<90;j++){
dzt[i][j]=false;
}
}
hg=false;
}//锻造台变false
void ksrlbecomefalse(){
for(int i=0;i<60;i++){
for(int j=0;j<90;j++){
ksrl[i][j]=false;
}
}
}//熔炉速度变false
void hnt(){//回南天
Sleep(500);
cout<<"今天是回南天,木头有一半都发霉了\n";
dongs[3]=dongs[3]/2;
Sleep(2000);
system("cls");
}
void df(){//大风天
Sleep(500);
cout<<"今天刮大风,你的篝火都熄灭了\n";
hg=false;
ghbecomefalse();
Sleep(2000);
system("cls");
}
void lkq(){//冷空气
Sleep(500);
cout<<"今天有冷空气到来,";
if(hg==true)cout<<"不过你有温暖的篝火\n";
else{
cout<<"你没有取暖的东西,着凉了(血-6)";
sheng-=6;
}
Sleep(2000);
system("cls");
} void drt(){//冷空气
Sleep(500);
cout<<"今天三日凌空(热)到来,";
if(zbbool[1]==true)cout<<"不过你有帽子挡太阳\n";
else{
cout<<"你没有帽子挡太阳,中暑(血-10)";
sheng-=10;
}
Sleep(2000);
system("cls");
}
void tq(){//随即天气事件
int n=rand()%10+1;
if(n==1){
system("cls");
cout<<"今天天气有所转变\n";
n=rand()%3+1;
if(n==1){
hnt();
}if(n==2){
lkq();
}if(n==3){
df();
}
}
}void ljytq(){//随即天气事件
int n=rand()%7+1;
if(n==1){
system("cls");
cout<<"今天天气有所转变\n";
n=rand()%4+1;
if(n==1){
hnt();
}if(n==2){
lkq();
}if(n==3){
df();
}if(n==4){
drt();
}
}
}
void saveGame(const string& filename) {
ofstream file(filename, ios::binary);
if (!file) {
cout << "存档失败!" << endl;
return;
}
// 保存基本变量
file.write((char*)&go, sizeof(go));
file.write((char*)&tian, sizeof(tian));
file.write((char*)&sheng, sizeof(sheng));
file.write((char*)&ti, sizeof(ti));
file.write((char*)&tlsx, sizeof(tlsx));
file.write((char*)&czjs, sizeof(czjs));
file.write((char*)&sg, sizeof(sg));
file.write((char*)&zs, sizeof(zs));
file.write((char*)&zyf, sizeof(zyf));
file.write((char*)&w1, sizeof(w1));
file.write((char*)&yg, sizeof(yg));
file.write((char*)&water, sizeof(water));
file.write((char*)&qhq, sizeof(qhq));
file.write((char*)&sz, sizeof(sz));
file.write((char*)&blsp, sizeof(blsp));
file.write((char*)&blcx, sizeof(blcx));
file.write((char*)&blp, sizeof(blp));
file.write((char*)&fwx, sizeof(fwx));
file.write((char*)&mm, sizeof(mm));
file.write((char*)&cdx, sizeof(cdx));
file.write((char*)&cdy, sizeof(cdy));
file.write((char*)&cd, sizeof(cd));
file.write((char*)&ldlskcs, sizeof(ldlskcs));
file.write((char*)&key, sizeof(key));
file.write((char*)&ct, sizeof(ct));
file.write((char*)&opendoor, sizeof(opendoor));
file.write((char*)&dt, sizeof(dt));
file.write((char*)&cddj, sizeof(cddj));
file.write((char*)&xd1, sizeof(xd1));
file.write((char*)&xd2, sizeof(xd2));
file.write((char*)&xd3, sizeof(xd3));
file.write((char*)&bxjs, sizeof(bxjs));
file.write((char*)&ljy, sizeof(ljy));
file.write((char*)&ljyts, sizeof(ljyts));
file.write((char*)&hg, sizeof(hg));
file.write((char*)&w, sizeof(w));
file.write((char*)&js, sizeof(js));
file.write((char*)&mm, sizeof(mm));
// 保存字符串(name)
size_t nameLen = name.length();
file.write((char*)&nameLen, sizeof(nameLen));
file.write(name.c_str(), nameLen);
// 保存数组
file.write((char*)dongs, sizeof(dongs));
file.write((char*)gz1, sizeof(gz1));
file.write((char*)ys, sizeof(ys));
file.write((char*)yssjt, sizeof(yssjt));
file.write((char*)zycl, sizeof(zycl));
file.write((char*)jianzhu1, sizeof(jianzhu1));
file.write((char*)daojv1, sizeof(daojv1));
file.write((char*)fish1, sizeof(fish1));
file.write((char*)zbbool, sizeof(zbbool));
file.write((char*)gaoz, sizeof(gaoz));
file.write((char*)shes, sizeof(shes));
file.write((char*)jian, sizeof(jian));
// 保存二维数组和结构体
for(int i = 0; i < 40; i++) {
for(int j = 0; j < 25; j++) {
file.write((char*)&mat[i][j], sizeof(mat[i][j]));
}
}
for(int i = 0; i < 50; i++) {
for(int j = 0; j < 50; j++) {
file.write((char*)&a[i][j], sizeof(a[i][j]));
}
}
file.write((char*)&we, sizeof(we));
file.write((char*)&ho, sizeof(ho));
file.write((char*)map2, sizeof(map2));
file.write((char*)mapsc, sizeof(mapsc));
file.write((char*)gh, sizeof(gh));
file.write((char*)dzt, sizeof(dzt));
file.write((char*)ksrl, sizeof(ksrl));
file.write((char*)rlqh, sizeof(rlqh));
file.write((char*)cz, sizeof(cz));
cout << "游戏已保存到 " << filename << endl;
file.close();
}
void loadGame(const string& filename) {
ifstream file(filename, ios::binary);
if (!file) {
cout << "读档失败!存档文件不存在。" << endl;
return;
}
// 读取基本变量
file.read((char*)&go, sizeof(go));
file.read((char*)&tian, sizeof(tian));
file.read((char*)&sheng, sizeof(sheng));
file.read((char*)&ti, sizeof(ti));
file.read((char*)&tlsx, sizeof(tlsx));
file.read((char*)&czjs, sizeof(czjs));
file.read((char*)&sg, sizeof(sg));
file.read((char*)&zs, sizeof(zs));
file.read((char*)&zyf, sizeof(zyf));
file.read((char*)&w1, sizeof(w1));
file.read((char*)&yg, sizeof(yg));
file.read((char*)&water, sizeof(water));
file.read((char*)&qhq, sizeof(qhq));
file.read((char*)&sz, sizeof(sz));
file.read((char*)&blsp, sizeof(blsp));
file.read((char*)&blcx, sizeof(blcx));
file.read((char*)&blp, sizeof(blp));
file.read((char*)&fwx, sizeof(fwx));
file.read((char*)&mm, sizeof(mm));
file.read((char*)&cdx, sizeof(cdx));
file.read((char*)&cdy, sizeof(cdy));
file.read((char*)&cd, sizeof(cd));
file.read((char*)&ldlskcs, sizeof(ldlskcs));
file.read((char*)&key, sizeof(key));
file.read((char*)&ct, sizeof(ct));
file.read((char*)&opendoor, sizeof(opendoor));
file.read((char*)&dt, sizeof(dt));
file.read((char*)&cddj, sizeof(cddj));
file.read((char*)&xd1, sizeof(xd1));
file.read((char*)&xd2, sizeof(xd2));
file.read((char*)&xd3, sizeof(xd3));
file.read((char*)&bxjs, sizeof(bxjs));
file.read((char*)&ljy, sizeof(ljy));
file.read((char*)&ljyts, sizeof(ljyts));
file.read((char*)&hg, sizeof(hg));
file.read((char*)&w, sizeof(w));
file.read((char*)&js, sizeof(js));
file.read((char*)&mm, sizeof(mm));
// 读取字符串(name)
size_t nameLen;
file.read((char*)&nameLen, sizeof(nameLen));
char* nameBuffer = new char[nameLen + 1];
file.read(nameBuffer, nameLen);
nameBuffer[nameLen] = '\0';
name = string(nameBuffer);
delete[] nameBuffer;
// 读取数组
file.read((char*)dongs, sizeof(dongs));
file.read((char*)gz1, sizeof(gz1));
file.read((char*)ys, sizeof(ys));
file.read((char*)yssjt, sizeof(yssjt));
file.read((char*)zycl, sizeof(zycl));
file.read((char*)jianzhu1, sizeof(jianzhu1));
file.read((char*)daojv1, sizeof(daojv1));
file.read((char*)fish1, sizeof(fish1));
file.read((char*)zbbool, sizeof(zbbool));
file.read((char*)gaoz, sizeof(gaoz));
file.read((char*)shes, sizeof(shes));
file.read((char*)jian, sizeof(jian));
// 读取二维数组和结构体
for(int i = 0; i < 40; i++) {
for(int j = 0; j < 25; j++) {
file.read((char*)&mat[i][j], sizeof(mat[i][j]));
}
}
for(int i = 0; i < 50; i++) {
for(int j = 0; j < 50; j++) {
file.read((char*)&a[i][j], sizeof(a[i][j]));
}
}
file.read((char*)&we, sizeof(we));
file.read((char*)&ho, sizeof(ho));
file.read((char*)map2, sizeof(map2));
file.read((char*)mapsc, sizeof(mapsc));
file.read((char*)gh, sizeof(gh));
file.read((char*)dzt, sizeof(dzt));
file.read((char*)ksrl, sizeof(ksrl));
file.read((char*)rlqh, sizeof(rlqh));
file.read((char*)cz, sizeof(cz));
cout << "游戏已从 " << filename << " 加载" << endl;
file.close();
}
void dtck(){
system("cls");
if(dt==false){
dt=true;
cout<<"你凑近看了看,不过因为荒废了很久,上面爬满了深绿色的藤蔓\n";
Sleep(800);
cout<<"你用手扒开藤蔓,这个城镇的地图显现了出来\n";
cout<<"按任意键继......";
getch();
system("cls");
}
char dtch[10][10]={
'.','.','.','.','.','.','.','.','.','.',
'.','.','.','.','.','.','.','.','{','}',
'.','.','.','.','.','.','.','.','{','}',
'.','.','.','.','.','.','.','.','.','.',
'.','.','.','.','#','#','.','.','.','.',
'.','.','.','.','#','#','.','.','.','.',
'.','.','.','.','.','.','.','.','.','.',
'.','.','.','.','.','.','.','.','.','.',
'@','@','@','.','.','.','.','.','.','.',
'@','@','@','.','.','.','.','.','.','.'
};
for(int i=0;i<10;i++){
for(int j=0;j<10;j++){
cout<<dtch[i][j];
}cout<<endl;
}
cout<<endl;
cout<<"@@@ ## {}\n@@@ ## {}\n别墅区 太上 药店\n 老'菌'\n 店\n按任意键返回.....\n";
getch();
system("cls");
}
void cdjr(){
system("cls");
string gs="地板突然裂开,你掉了下去,但并没有感受到疼痛,也没有受伤\n你起身看看周围\n周围金碧辉煌,有一种奇怪的彩光照在周围的金砖上\n前方是一个长廊,周围都是耀光\n你向前走,走到尽头\n“前方放着3颗神丹,你可以选一颗”一个很有磁性但又神圣的声音响起\n前方果然放着3颗圆球\n“第一颗可以让你每天恢复5点生命,第二颗可以让你每天体力回满,第三颗可以让你没有挖掘,熔炉烧制的时间”\n“你选那一颗?”";
for(int i=0;i<gs.size();i++){
cout<<gs[i];
Sleep(40);
}
int xd;
cin>>xd;
if(xd==1)xd1=true;
if(xd==2)xd2=true;
if(xd==3)xd3=true;
cout<<"当你吃下那颗仙丹后,一股奇怪的力量将你推了出去!";
Sleep(1300);
}
void tslj(){
int xx=12,yy=9;
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO csbi;
GetConsoleScreenBufferInfo(hConsole, &csbi);
WORD saved_attributes = csbi.wAttributes;
system("cls");
string tsljmap[13][20]={
"□","□","□","□","□","□","□","□","□","□","□","□","□","□","□","□","□","□","□","□",
"□","□","□","□","□","□","□","□","□","□","□","□","□","□","□","□","□","□","□","□",
"□","□","□","□","□","□","□","□","□","+","□","□","□","□","□","□","□","□","□","□",
"□","□","□","□","□","□","□","□","=","=","=","□","□","□","□","□","□","□","□","□",
"□","□","□","□","□","□","□","_","_","_","_","_","□","□","□","□","□","□","□","□",
"□","□","□","□","□","□","(","p","!","@","#","q",")","□","□","□","□","□","□","□",
"□","□","□","□","□","□","|","p","*","S","$","q","|","□","□","□","□","□","□","□",
"□","□","□","□","□","□","(","p","&","^","%","q",")","□","□","□","□","□","□","□",
"□","□","□","□","□","□","□","-","-","-","-","-","□","□","□","□","□","□","□","□",
"□","□","□","□","□","□","□","I","□","I","□","I","□","□","□","□","□","□","□","□",
"□","□","□","□","□","□","□","□","□","□","□","□","□","□","□","□","□","□","□","□",
"□","□","□","□","□","□","□","□","□","□","□","□","□","□","□","□","□","□","□","□",
"□","□","□","□","□","□","□","□","□","N","□","□","□","□","□","□","□","□","□","□"
};
if(cd==false){
srand(time(NULL));
cd=true;
cdx=rand()%13;
cdy=rand()%20;
if(tsljmap[cdx][cdy]!="□"){
while(tsljmap[cdx][cdy]!="□"){
cdx=rand()%13;
cdy=rand()%20;
}
}
}
for(int i=0;i<13;i++){
for(int j=0;j<20;j++){
if(i==xx&&j==yy)cout<<'$';
else {
if(tsljmap[i][j]=="□") SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY);
else if(!(tsljmap[i][j]=="N"))SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN);
cout<<tsljmap[i][j];
SetConsoleTextAttribute(hConsole, saved_attributes);
}
}cout<<endl;
}
if(xx>=1&&xx<=11&&yy>=1&&yy<=19){
if((tsljmap[xx][yy-1]!="□"||tsljmap[xx+1][yy]!="□"||tsljmap[xx-1][yy]!="□"||tsljmap[xx][yy+1]!="□")&&(tsljmap[xx][yy-1]!="N"&&tsljmap[xx+1][yy]!="N"&&tsljmap[xx-1][yy]!="N"&&tsljmap[xx][yy+1]!="N")){
cout<<"o打开炼丹炉\n";
}
}
if(ldlskcs>=2&&tsljmap[xx][yy]=="□")cout<<"c跺脚\n";
while(1){
int jbdd=false;
if(cddj==3){
cddj++;
cdjr();
tsljmap[xx][yy]='X';
jbdd=true;
}
int fh=false;
if(kbhit()){
int a=getch();
if(a==72)if(xx!=0)if(tsljmap[xx-1][yy]=="□"||tsljmap[xx-1][yy]=="N"||tsljmap[xx][yy]=="N"){jbdd=true;xx--;}
if(a==80)if(xx!=12)if(tsljmap[xx+1][yy]=="□"||tsljmap[xx+1][yy]=="N"||tsljmap[xx][yy]=="N"){jbdd=true;xx++;fh=true;}
if(a==80)if(xx==12&&tsljmap[xx][yy]=="N"&&fh==false){system("cls");return;}
if(a==75)if(yy!=0)if(tsljmap[xx][yy-1]=="□"||tsljmap[xx][yy-1]=="N"||tsljmap[xx][yy]=="N"){jbdd=true;yy--;}
if(a==77)if(yy!=19)if(tsljmap[xx][yy+1]=="□"||tsljmap[xx][yy+1]=="N"||tsljmap[xx][yy]=="N"){jbdd=true;yy++;}
if(a=='o'){
jbdd=true;
if(xx>=1&&xx<=11&&yy>=1&&yy<=19){
if((tsljmap[xx][yy-1]!="□"||tsljmap[xx+1][yy]!="□"||tsljmap[xx-1][yy]!="□"||tsljmap[xx][yy+1]!="□")&&(tsljmap[xx][yy-1]!="N"&&tsljmap[xx+1][yy]!="N"&&tsljmap[xx-1][yy]!="N"&&tsljmap[xx][yy+1]!="N")){
if(ldlskcs==0){
ldlskcs++;
cout<<"获得五个制药粉\n";
zyf+=5;
}else if(ldlskcs==1){
cout<<"没东西了,打你注意到盖子上有一行字:\n题问有板地\n";
ldlskcs++;
}else{
cout<<"是否炼制药粉(复制:1制药粉+1钛矿+1木=2制药粉)\n1是 2否\n";
if(!(getch()=='2')){
if(dongs[14]<1||dongs[3]<1||zyf<1){
cout<<"材料不够\n";
}else{
dongs[14]-=1;dongs[3]-=1;
zyf+=1;
cout<<"复制成功\n";
}
}
}
cout<<"按任意键继续......";
getch();
}
}
}
if(a=='c'){
if(xx==cdx&&yy==cdy){
cout<<"咚咚咚~这块地板好像是空的……\n";
cddj++;
}else{
cout<<"砰砰砰,地板没有问题(法国口音)\n";
}
}
}
if(jbdd==false)continue;
system("cls");
for(int i=0;i<13;i++){
for(int j=0;j<20;j++){
if(i==xx&&j==yy)cout<<'$';
else {
if(tsljmap[i][j]=="□") SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY);
else if(!(tsljmap[i][j]=="N"))SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN);
cout<<tsljmap[i][j];
SetConsoleTextAttribute(hConsole, saved_attributes);
}
}cout<<endl;
}
if(xx>=1&&xx<=11&&yy>=1&&yy<=19){
if((tsljmap[xx][yy-1]!="□"||tsljmap[xx+1][yy]!="□"||tsljmap[xx-1][yy]!="□"||tsljmap[xx][yy+1]!="□")&&(tsljmap[xx][yy-1]!="N"&&tsljmap[xx+1][yy]!="N"&&tsljmap[xx-1][yy]!="N"&&tsljmap[xx][yy+1]!="N")){
cout<<"o打开炼丹炉\n";
}
}
if(ldlskcs>=2&&tsljmap[xx][yy]=="□")cout<<"c跺脚\n";
}
}//太上老君
void ydbx(){
char bx[10][15]={
'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'.','.','.','.','|','-','-','-','|','.','.','.','.','.','.',
'.','.','.','.','|',':',':',':','|','.','.','.','.','.','.',
'.','.','.','.','|',':',':',':','|','.','.','.','.','.','.',
'.','.','.','.','|','_','_','_','|','.','.','.','.','.','.',
'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'.','.','.','.','.','.',' ',' ','.','.','.','.','.','.','.'
};
int xx=9,yy=6;
for(int i=0;i<10;i++){
for(int i1=0;i1<15;i1++){
if(i==xx&&i1==yy)cout<<'$';
else{
cout<<bx[i][i1];
}
}cout<<endl;
}
while(1){
bool jbdd=0;
if(kbhit()){
int a=getch();
if(a==72)if(xx!=0)if(bx[xx-1][yy]=='.'){jbdd=true;xx--;}
if(a==80)if(xx!=10)if(bx[xx+1][yy]=='.'||bx[xx+1][yy]==' '||bx[xx][yy]==' '){if(bx[xx][yy]==' '){system("cls");return;}jbdd=true;xx++;}
if(a==75)if(yy!=0)if(bx[xx][yy-1]=='.'){jbdd=true;yy--;}
if(a==77)if(yy!=14)if(bx[xx][yy+1]=='.'){jbdd=true;yy++;}
if(a=='l'){
if(!mm)cout<<"你身上并没有什么密码纸条\n";
else cout<<"AKNOI\n任意键继续.....\n";
getch();
jbdd=1;
}
if(a=='o'){
bool mmpd=true;
jbdd=true;
cout<<"输入5位大写字母密码!\n";
string cinmm;
char cinm;
for(int i=0;i<5;i++){
cin>>cinm;
cinmm+=cinm;
}
for(int i=0;i<5;i++){
if(cinmm[i]!=mms[i]){
mmpd=false;
cout<<"密码错误!\n";
Sleep(500);
}
}
if(mmpd==1&&bxjs==true){
cout<<"开过了\n";
Sleep(700);
}
if(mmpd==1&&bxjs==false){
cout<<"开了,获得:生命恢复药水设计图,大胃袋设计图,饱腹药水设计图,5袋制药粉\n按任意键继续.......";
zysjt[0]=1;
zysjt[1]=1;
zysjt[2]=1;
yssjt[0]=1;
yssjt[1]=1;
yssjt[2]=1;
zyf+=5;
bxjs=true;
getch();
}
}
}
if(jbdd==0)continue;
system("cls");
for(int i=0;i<10;i++){
for(int i1=0;i1<15;i1++){
if(i==xx&&i1==yy)cout<<'$';
else{
cout<<bx[i][i1];
}
}cout<<endl;
}cout<<"o打开保险箱\n";
if(mm==1)cout<<"l看看纸条\n";
}
}//药店保险
void yd(){
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
system("cls");
int xx=18,yy=9;
char yddt[20][20]={
'.','.','.','.','.','.','.','.','.','O','O','.','.','.','.','.','.','.','.','0',
'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'P','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'.','.','.','2','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'.','.','.','.','.','.','.','.','.','.','.','M','.','.','.','.','.','.','.','.',
'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','L','.',
'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'.','.','_','_','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'.','.','|','|','.','T','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'.','.','|','|','.','T','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'.','.','|','|','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'.','.','|','|','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',
'.','.','|','|','.','.','.','.','.','N','.','.','.','.','.','.','.','.','.','.'
};
for(int i=0;i<20;i++){
for(int i1=0;i1<20;i1++){
if(i==xx&&i1==yy)cout<<'$';
else if(yddt[i][i1]=='0'){
SetConsoleTextAttribute(hConsole, FOREGROUND_INTENSITY);
cout<<'.';
SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
}else{
cout<<yddt[i][i1];
}
}cout<<endl;
}
while(1){
bool jbdd=0;
if(kbhit()){
int a=getch();
if(a==72)if(xx>=0)if(yddt[xx-1][yy]=='.'||yddt[xx-1][yy]=='N'||yddt[xx-1][yy]=='0'||yddt[xx-1][yy]==' '||yddt[xx][yy]==' '){if(yddt[xx][yy]==' '){system("cls");ydbx();xx++;}jbdd=true;xx--;}
if(a==80)if(xx!=20)if(yddt[xx+1][yy]=='.'||yddt[xx+1][yy]=='N'||yddt[xx][yy]=='N'||yddt[xx+1][yy]=='0'){if(yddt[xx][yy]=='N'){system("cls");return;}jbdd=true;xx++;}
if(a==75)if(yy!=0)if(yddt[xx][yy-1]=='.'||yddt[xx][yy-1]=='N'||yddt[xx][yy-1]=='0'){jbdd=true;yy--;}
if(a==77)if(yy!=19)if(yddt[xx][yy+1]=='.'||yddt[xx][yy+1]=='N'||yddt[xx][yy+1]=='0'){jbdd=true;yy++;}
if(a=='f'){
if((yddt[xx][yy-1]=='|'||yddt[xx+1][yy]=='|'||yddt[xx-1][yy]=='|'||yddt[xx][yy+1]=='|')&&ct==true){
cout<<"摸过了!\n";
key=true;
cout<<"任意键继续.....\n";
getch();
}
if((yddt[xx][yy-1]=='|'||yddt[xx+1][yy]=='|'||yddt[xx-1][yy]=='|'||yddt[xx][yy+1]=='|')&&ct==false){
system("cls");
jbdd=1;
ct=true;
cout<<"你摸到一把钥匙!\n";
key=true;
cout<<"任意键继续.....\n";
getch();
}
}
if(a=='o'){
if((yddt[xx][yy-1]=='O'||yddt[xx+1][yy]=='O'||yddt[xx-1][yy]=='O'||yddt[xx][yy+1]=='O')&&opendoor==false){
if(key==false){
cout<<"需要一把钥匙\n";
}
else{
cout<<"门慢慢开了\n";
opendoor=true;
for(int i=0;i<20;i++){
if(yddt[0][i]=='O'){
yddt[0][i]=' ';
}
}
}
}
}
}
if (GetAsyncKeyState(VK_LBUTTON) & 0x8000){
if(yddt[xx][yy]=='0'){
jbdd=1;
system("cls");
cout<<"你动了动,发现地板是松动的,掀开看,发现一张纸(好像是打开保险柜的密码)\n纸上:AKNOI\n任意键收下.......";
getch();
yddt[xx][yy]='X';
mm=true;
}
}
if(jbdd==0)continue;
system("cls");
for(int i=0;i<20;i++){
for(int i1=0;i1<20;i1++){
if(i==xx&&i1==yy)cout<<'$';
else if(yddt[i][i1]=='0'){
SetConsoleTextAttribute(hConsole, FOREGROUND_INTENSITY);
cout<<'.';
SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
}else{
cout<<yddt[i][i1];
}
}cout<<endl;
}
if(yddt[xx][yy-1]=='|'||yddt[xx+1][yy]=='|'||yddt[xx-1][yy]=='|'||yddt[xx][yy+1]=='|'){
cout<<"f搜索抽屉\n";
}
if(yddt[xx][yy-1]=='O'||yddt[xx+1][yy]=='O'||yddt[xx-1][yy]=='O'||yddt[xx][yy+1]=='O'){
cout<<"o开门\n";
}
if(yddt[xx][yy]=='0'){
cout<<"这块地板好像有点不对?左键试试\n";
}
}
}//药店
void msl(){
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
system("cls");cout<<"你进入了这片废弃别墅区\n";
Sleep(700);
system("cls");
int xx=16,yy=1;
int rs[4][2]={
2,2,
6,22,
20,12,
24,52
};//人参户
char bs[30][60]={
'#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#','V','V','V','V','V',
'#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#','V','V','V','V','V',
'#','#','n','#','#',' ',' ',' ',' ',' ','#','#','n','#','#',' ',' ',' ',' ',' ','#','#','n','#','#',' ',' ',' ',' ',' ','#','#','n','#','#',' ',' ',' ',' ',' ','#','#','n','#','#',' ',' ',' ',' ',' ','#','#','n','#','#','V','V','V','V','V',
'-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-',
'o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o',
'-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-',
'#','#','n','#','#',' ',' ',' ',' ',' ','#','#','n','#','#',' ',' ',' ',' ',' ','#','#','n','#','#',' ',' ',' ',' ',' ','#','#','n','#','#',' ',' ',' ',' ',' ','#','#','n','#','#',' ',' ',' ',' ',' ','#','#','n','#','#','V','V','V','V','V',
'#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#','V','V','V','V','V',
'#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#','V','V','V','V','V',
'-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-',
'o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o',
'-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-',
'#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#','V','V','V','V','V',
'#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#','V','V','V','V','V',
'#','#','n','#','#',' ',' ',' ',' ',' ','#','#','n','#','#',' ',' ',' ',' ',' ','#','#','n','#','#',' ',' ',' ',' ',' ','#','#','n','#','#',' ',' ',' ',' ',' ','#','#','n','#','#',' ',' ',' ',' ',' ','#','#','n','#','#','V','V','V','V','V',
'N','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-',
'N','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o',
'N','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-',
'#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#','V','V','V','V','V',
'#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#','V','V','V','V','V',
'#','#','n','#','#',' ',' ',' ',' ',' ','#','#','n','#','#',' ',' ',' ',' ',' ','#','#','n','#','#',' ',' ',' ',' ',' ','#','#','n','#','#',' ',' ',' ',' ',' ','#','#','n','#','#',' ',' ',' ',' ',' ','#','#','n','#','#','V','V','V','V','V',
'-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-',
'o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o',
'-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-',
'#','#','n','#','#',' ',' ',' ',' ',' ','#','#','n','#','#',' ',' ',' ',' ',' ','#','#','n','#','#',' ',' ',' ',' ',' ','#','#','n','#','#',' ',' ',' ',' ',' ','#','#','n','#','#',' ',' ',' ',' ',' ','#','#','n','#','#','V','V','V','V','V',
'#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#','V','V','V','V','V',
'#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ','#','#','#','#','#','V','V','V','V','V',
'-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-',
'o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o',
'-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-',
};
for(int i=0;i<30;i++){
for(int j=0;j<60;j++){
if(i==xx&&j==yy){
cout<<'$';
continue;
}
if(bs[i][j]=='V')SetConsoleTextAttribute(hConsole,FOREGROUND_GREEN);
if(bs[i][j]=='o')SetConsoleTextAttribute(hConsole, FOREGROUND_INTENSITY);
cout<<bs[i][j];
SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED);
}cout<<endl;
}
while(1){
bool jbdd=0;
if(kbhit()){
int a=getch();
if(a==72)if(xx!=0)if(bs[xx-1][yy]!='#'){jbdd=true;xx--;}
if(a==80)if(xx!=29)if(bs[xx+1][yy]!='#'){jbdd=true;xx++;}
if(a==75){
if(yy==0&&bs[xx][yy]=='N'){system("cls");return;}
if(yy!=0)if(bs[xx][yy-1]!='#'){jbdd=true;yy--;}
}
if(a==77)if(yy!=59)if(bs[xx][yy+1]!='#'){jbdd=true;yy++;}
}
if(!jbdd)continue;
system("cls");
for(int i=0;i<30;i++){
for(int j=0;j<60;j++){
if(i==xx&&j==yy){
cout<<'$';
continue;
}
if(bs[i][j]=='V')SetConsoleTextAttribute(hConsole,FOREGROUND_GREEN);
if(bs[i][j]=='o')SetConsoleTextAttribute(hConsole, FOREGROUND_INTENSITY);
cout<<bs[i][j];
SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED);
}cout<<endl;
}
if(bs[xx][yy]=='n'){
cout<<"是否进去搜搜看?1yes2no\n";
if(getch()=='1'){
bool p=0;
for(int i=0;i<4;i++){
if(xx==rs[i][0]&&yy==rs[i][1]){
string gs="你在这家中走来走去\n打开柜子时,你竟然看到了一颗密封完好没过期的\n人参\n";
for(int j=0;j<gs.size();j++){
cout<<gs[j];
Sleep(35);
}
zycl[3]++;
if(i==2){
cout<<"你刚刚准备走,在角落看到一本书\n书上面好像是讲人参补气血(再生药水设计图)\n";
yssjt[3]=1;
}
rs[i][0]=-10086;
rs[i][1]=-10086;
p=1;
cout<<"任意键继续.....";
getch();
break;
}
}
if(p==0){
cout<<"因为荒废太久的原因,这家比脸还干净!\n";
Sleep(1000);
}
}
}
}
}//民宿楼
void qwcz(){
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
int xx=28,yy=14;
for(int i=0;i<30;i++){
for(int i1=0;i1<30;i1++){
if(i==xx&&i1==yy)cout<<'$';
else if(cz[i][i1]=='|'&&dt==false){
SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN);
cout<<'|';
SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
}else{
cout<<cz[i][i1];
}
}
cout<<endl;
}cout<<"走出大门返回\n";
bool fat=false;
while(1){
bool jbdd=false;
if(fat==true){
jbdd=true;
fat=false;
}
else{
if(kbhit()){
int a=getch();
if(a==72)if(xx!=0)if(cz[xx-1][yy]=='.'||cz[xx-1][yy]=='N'){jbdd=true;xx--;}
if(a==80)if(cz[xx+1][yy]=='.'||cz[xx+1][yy]==' '||cz[xx+1][yy]=='N'){jbdd=true;xx++;if(cz[xx][yy]==' '){Sleep(1000);return;}}
if(a==75)if(yy!=0)if(cz[xx][yy-1]=='.'||cz[xx][yy-1]=='N'){jbdd=true;yy--;}
if(a==77)if(yy!=29)if(cz[xx][yy+1]=='.'||cz[xx][yy+1]=='N'){jbdd=true;yy++;}
if(a=='l'&&((xx==13||xx==12||xx==14)&&(yy==2||yy==0))){
jbdd=true;
dtck();
}
}
}
if(jbdd==false)continue;
system("cls");
for(int i=0;i<30;i++){
for(int i1=0;i1<30;i1++){
if(i==xx&&i1==yy)cout<<'$';
else if(cz[i][i1]=='|'&&dt==false){
SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN);
cout<<'|';
SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
}else{
cout<<cz[i][i1];
}
}
cout<<endl;
}cout<<"走出大门返回\n";
if((xx==13||xx==12||xx==14)&&(yy==2||yy==0)){
if(dt==false){
cout<<"这里有一块贴牌子,l凑近看看\n";
}else{
cout<<"l查看地图\n";
}
}
if(cz[xx][yy]=='N'){
cout<<"是否进去看看?1yes 其他键no";
int sbsbsbsb=getch();
if(sbsbsbsb=='1'){
if(xx==16){//太上老君
tslj();fat=true;
}
if(xx==26){//民宿楼
msl();fat=true;
}
if(xx==5){//药店
yd();fat=true;
}
}else{
if(xx==16){
xx++;
}if(xx==26)xx--;
if(xx==5)xx++;
fat=true;
}
}
}
}
int main()
{
int sx,sy,dx,dy;
csh();ghbecomefalse();HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);dztbecomefalse();fish1[1]=1;
srand(time(NULL));
rlqhbecomefalse();
memset(a,0,sizeof(a));
we.x=0,we.y=0;
for(int i=0;i<25;i++)
{
for(int j=0;j<40;j++)
{
int ff=rand()%3;
if(ff==1)mat[i][j].w1=true;
mat[i][j].w=mat[i][j].w1;
}
}
for(int i=0;i<37;i++){
for(int j=0;j<37;j++){
int n=rand()%25+1;
if(n==1){
n=rand()%10+1;
if(n==1){
mapsc[i][j]='3';
}else{
mapsc[i][j]='2';
}
}
else mapsc[i][j]='1';
}
}
hide();
cout<<"末日生存,你的名字是:";
cin>>name;
cout<<"欢迎"<<name<<"进入!!!!!!!!!!!!!!!!\n";Sleep(2000);
system("cls");
cout<<"为了游玩舒适,请调成全屏或者缩小窗口,将全部的输出调到可视范围内!!!\n按任意键开始....."; //提示
getch();//任意键
system("cls");
cout<<"看不看游戏信息?(操作玩法)\n看回车 不看其他";
int sb=getch();
system("cls");
if(sb==13){
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);//获取控制台颜色句柄
SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED);
SetConsoleTextAttribute(hConsole, FOREGROUND_RED);
cout<<"本游戏由@2022tysc1697和@2025tyoi0147共创!!!\n";
SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED);
Sleep(1000);
cout<<"你可以建造东西,摸箱子,收集水和木头 \n";
Sleep(1000);
cout<<"这些符号代表:\nn:熔炉\n:火把\n.:移动的地方(地图范围)\n@:篝火";
SetConsoleTextAttribute(hConsole, FOREGROUND_RED);
cout<<"\n@";SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED);
cout<<":点燃的篝火\n#:锻造台\n";
SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE);
cout<<"#";
SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED);
cout<<":可以使用的锻造台\nz:铁砧\n~:鱼缸\nm:纺织机\nT:制药台\n";
Sleep(1000);
cout<<"生命值上限为20,开箱子会有特殊事件\n";
Sleep(1000);
cout<<"篝火无法点燃?再按一下b试试\n锻造台无法使用?记得在旁边加上铁砧,给工作台一把锻造锤(按' ')\n";
Sleep(1000);
cout<<"小贴士:要及时收集水!~~\n";
Sleep(1000);
cout<<"小贴士:生命不会自动恢复,上限20。体力不会自动恢复,上线10(血袋生命+5,烤鱼生命+2体力+7,面包体力+2),水量不会自动恢复,每天-1\n";
Sleep(1000);
cout<<"小贴士:当进入乱纪元后(50天后)遇到特殊天气概率会增加,还会有“三日凌空”(没那么热),会中暑,所以要在50天前做出皮帽噢~\n";
Sleep(1000);
cout<<"小贴士:每种镐子耐久不同,可以自己探索\n";
Sleep(1000);
cout<<"小贴士:摸箱子有1/27概率摸出'快烧核心',可减少%50烧制时间\n";
Sleep(1000);SetConsoleTextAttribute(hConsole, FOREGROUND_RED);
cout<<"!!!注意!!!:在游玩过程中,干完某些事后会黑屏(没有输出),是因为清屏没处理好进入下个循环,再按一下移动键恢复正常\n";SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED);
Sleep(1000);
cout<<"按任意键开始游戏...... \n";
getch();
system("cls");
}
while(1)
{ho.y=0;ho.x=0;//边界
if(ljy==true){
ljytq();
}else{
tq();
}
if(tian>=50){
if(ljyts==false){
cout<<"进入乱纪元!";
ljyts=true;
Sleep(1000);
system("cls");
}
ljy=true;
}
if(sheng<=0){
cout<<"you die!!!";
Sleep(1500);
return 0;
}//死亡停止
if(ho.y<7){
sy=0;
}else{
sy=ho.y-7;
}
if(ho.x<10){
sx=0;
}else{
sx=ho.x-10;
}
if(ho.y>=51){
dy=59;
}else{
dy=ho.y+7;
}
if(ho.x>=80){
dx=89;
}else{
dx=ho.x+10;
}
for(int i=sy;i<=dy;i++)
{
for(int j=sx;j<=dx;j++)
{
if(i==ho.y&&j==ho.x)cout<<"$";
else if(map2[i][j]=='.')cout<<'.';
else{
if(work[int(map2[i][j]+1-'0')]=='@'){
if(gh[i][j]==true){
SetConsoleTextAttribute(hConsole, FOREGROUND_RED);
cout<<'@';
SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED);
}else cout<<'@';
}//点燃火把红色输出
else if(work[int(map2[i][j]+1-'0')]=='#'){
if(dzt[i][j]==true){
SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE);
cout<<'#';
SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED);
}else cout<<'#';
}//工作台联动完毕
else cout<<work[int(map2[i][j]+1-'0')];//改为输出数组
}
}
cout<<endl;
}
//水量
SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE| FOREGROUND_GREEN );
cout<<"水量:";
for(int i=0;i<water;i++){
cout<<"Q";
}SetConsoleTextAttribute(hConsole, FOREGROUND_INTENSITY);
for(int i=0;i<10-water;i++){
cout<<"Q";
}SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED);
SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY);
cout<<"饱食度(体力):";
for(int i=0;i<ti;i++){
cout<<"P";
}SetConsoleTextAttribute(hConsole, FOREGROUND_INTENSITY);
for(int i=0;i<tlsx-ti;i++){
cout<<"P";
}SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED);
cout<<endl;
SetConsoleTextAttribute(hConsole, FOREGROUND_RED);
cout<<"生命值:";
for(int i=0;i<sheng;i++){
if(i%2==0)cout<<"(";
else cout<<")";
}SetConsoleTextAttribute(hConsole, FOREGROUND_INTENSITY);
for(int i=sheng;i<20;i++){
if(i%2==0)cout<<"(";
else cout<<")";
}SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED);
cout<<endl;
if(a[ho.y][ho.x].m==0)cout<<"你生存了"<<tian<<"天"<<"\n生命值:"<<sheng<<"\nz:出发\n1:建造\nb原地搭建一个篝火\nd喝水\n空格:使用工作方块"<<endl<<"本方块:无"<<endl;
else {
if(a[ho.y][ho.x].m==4||a[ho.y][ho.x].m==6){
cout<<"你生存了"<<tian<<"天"<<"\n生命值:"<<sheng<<"\nz:出发\n1:建造\nb原地搭建一个篝火\nd喝水\n空格:使用工作方块"<<endl<<"本方块:"<<ddong[a[ho.y][ho.x].m]<<endl;
}
else{
if(a[ho.y][ho.x].m==110)cout<<"你生存了"<<tian<<"天"<<"\n生命值:"<<sheng<<"\nz:出发\n1:建造\nd喝水\nb原地搭建一个篝火\n空格:使用工作方块"<<endl<<"本方块:"<<jianzhu[4]<<endl;
else if(a[ho.y][ho.x].m==100) cout<<"你生存了"<<tian<<"天"<<"\n生命值:"<<sheng<<"\nz:出发\n1:建造\nd喝水\nb原地搭建一个篝火\n空格:使用工作方块"<<endl<<"本方块:"<<jianzhu[0]<<endl;
else cout<<"你生存了"<<tian<<"天"<<"\n生命值:"<<sheng<<"\nz:出发\n1:建造\nd喝水\nb原地搭建一个篝火\n空格:使用工作方块"<<endl<<"本方块:"<<jianzhu[a[ho.y][ho.x].m]<<endl;
}
}