-O2 -lm -std=c++14
#include <bits/stdc++.h>//工作模拟器
#include <windows.h>
#define ll long long

using namespace std;


char dt[16][40]= {
	{'#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#'},
	{'#',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','+','+',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','#'},
	{'#',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','S',' ','+','+',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','#'},
	{'#',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','P','P',' ',' ','S',' ','+','+',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','#'},
	{'#',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','=',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','J',' ',' ','T','#'},
	{'#',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','|'},
	{'#',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','|'},
	{'#',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','|'},
	{'#',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','|'},
	{'#',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','|'},
	{'#',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','|'},
	{'#',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','C',' ',' ','T','#'},
	{'#',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','#'},
	{'#',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','#'},
	{'#',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','G','#'},
	{'#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#'}
};
int xueli_value = 0;          // 学历值
int xueli_level = 0;          // 学历等级 0-7
int kecheng[7] = {0};         // 各科目学习值 [语文,数学,英语,化学,物理,地理,政治]
bool has_student_card = false; // 学生证状态
int library_bonus = 0;         // 图书馆自习加成
int tired_max=100;
// 在现有变量如 int wzx=5,wzy=2,money=2000... 附近添加
int car_owned = 0;          // 拥有的车辆等级:0-无车,1-自行车,2-摩托车,3-汽车
int move_speed = 1;         // 基础移动速度(每帧移动1格),购买车辆后会减少移动延迟
int car_price[4] = {0, 500, 2000, 10000}; // 各级车辆价格:无,自行车,摩托车,汽车
string car_names[4] = {"步行", "自行车", "摩托车", "豪华汽车"};

// 在现有变量附近添加
bool has_passenger = false;        // 是否载有乘客
int passenger_start_x = 0;         // 乘客起点X坐标
int passenger_start_y = 0;         // 乘客起点Y坐标
int passenger_end_x = 0;           // 乘客终点X坐标
int passenger_end_y = 0;           // 乘客终点Y坐标
int fare_earned = 0;               // 本次行程车费


namespace gongjv {
	inline void cd(int x) {
		Sleep(x);
		system("cls");
	}
	void ggb() {
		HWND hwnd = GetConsoleWindow();
		LONG style = GetWindowLong(hwnd, GWL_STYLE);
		style &= ~(WS_MINIMIZEBOX | WS_MAXIMIZEBOX  | WS_THICKFRAME);
		SetWindowLong(hwnd, GWL_STYLE, style);
		SetWindowPos(hwnd, HWND_TOP, 0, 0, 0, 0,
		             SWP_NOMOVE | SWP_NOSIZE | SWP_FRAMECHANGED);
	}
	bool SetWindowTopMost(HWND hWnd, bool topmost, bool noActivate = true) {
		if (!IsWindow(hWnd)) return false;
		UINT flags = SWP_NOMOVE | SWP_NOSIZE;
		if (noActivate) flags |= SWP_NOACTIVATE; // 关键:置顶但不抢焦点
		return SetWindowPos(hWnd,
		                    topmost ? HWND_TOPMOST : HWND_NOTOPMOST,
		                    0, 0, 0, 0,
		                    flags);
	}
	bool axj(long long key) {
		return (GetKeyState(key) < 0) ? (true) : (false);
	}
	struct hl {
		long long h,l;
	};
	inline void de(int x) {
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x);
	}
	int djde1(int x) {
		int y=0;
		switch(x) {
			case 1:
				y=7;
				break;
			case 2:
				y=15;
				break;
			case 3:
				y=2;
				break;
			case 4:
				y=10;
				break;
			case 5:
				y=3;
				break;
			case 6:
				y=11;
				break;
			case 7:
				y=9;
				break;
			case 8:
				y=14;
				break;
			case 9:
				y=12;
				break;
		}
		return y;
	}
	void pzde2(int x) {
		int y=0;
		switch(x) {
			case 1:
				y=15;
				break;
			case 2:
				y=10;
				break;
			case 3:
				y=11;
				break;
			case 4:
				y=14;
				break;
			case 5:
				y=4;
				break;
		}
		de(y);
	}
	int pzde1(int x) {
		int y=0;
		switch(x) {
			case 1:
				y=15;
				break;
			case 2:
				y=10;
				break;
			case 3:
				y=11;
				break;
			case 4:
				y=14;
				break;
			case 5:
				y=4;
				break;
		}
		return y;
	}
	void djde2(int x) {
		int y=0;
		switch(x) {
			case 1:
				y=7;
				break;
			case 2:
				y=15;
				break;
			case 3:
				y=2;
				break;
			case 4:
				y=10;
				break;
			case 5:
				y=3;
				break;
			case 6:
				y=11;
				break;
			case 7:
				y=9;
				break;
			case 8:
				y=14;
				break;
			case 9:
				y=12;
				break;
		}
		de(y);
	}
	bool ax(long long key) {
		return (GetKeyState(key) < 0) ? (true) : (false);
	}
	hl wz(bool x = 1, bool n = 1) {
		HANDLE hOutput = GetStdHandle(STD_OUTPUT_HANDLE);
		HWND h = GetForegroundWindow();
		CONSOLE_FONT_INFO consoleCurrentFont;
		hl hl;
		POINT p;
		if (x) {
			GetCursorPos(&p);
			ScreenToClient(h, &p);
		} else {
			GetCursorPos(&p);
		}
		if (n) {
			GetCurrentConsoleFont(hOutput, FALSE, &consoleCurrentFont);
			p.x /= consoleCurrentFont.dwFontSize.X;
			p.y /= consoleCurrentFont.dwFontSize.Y;
		}
		hl.h = p.y + 1;
		hl.l = p.x + 1;
		return hl;
	}
	hl GetActiveWindowSize() {
		HWND hwnd = GetForegroundWindow();
		RECT rect;
		if (GetClientRect(hwnd, &rect)) {
			int clientWidth = rect.right - rect.left;
			int clientHeight = rect.bottom - rect.top;
			hl sas= {clientWidth /8,clientHeight /16};
			return sas;
		}
	}
	void ycbj() {
		HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE);
		DWORD mode;
		GetConsoleMode(hStdin, &mode);
		mode &= ~ENABLE_QUICK_EDIT_MODE;
		SetConsoleMode(hStdin, mode);
		return;
	}
	void ycgb() {
		CONSOLE_CURSOR_INFO cursor;
		cursor.bVisible = FALSE;
		cursor.dwSize = sizeof(cursor);
		HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
		SetConsoleCursorInfo(handle, &cursor);
		return;
	}
	inline void ydgb(long long h, long long l) {
		h-=1;
		l-=1;
		COORD pos = { (short)l,(short)h  };
		HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
		SetConsoleCursorPosition(hOut, pos);
		return;
	}
	inline void ydgb_zj_sc(int x,string zt) {
		ll s1=GetActiveWindowSize().h/2;
		ll s2=zt.size()/2;
		ydgb(x,s1-s2);
		cout<<zt;
	}
	inline void ydgb_zj(int x,string zt) {
		ll s1=GetActiveWindowSize().h/2;
		ll s2=zt.size()/2;
		ydgb(x,s1-s2);
	}
	inline void ydgb_zj(int x,int zt) {
		ll s1=GetActiveWindowSize().h/2;
		ll s2=zt/2;
		ydgb(x,s1-s2);
	}
	inline hl ydgb_zj_hl(string zt) {
		ll s1=GetActiveWindowSize().h/2;
		ll s2=zt.size()/2;
		hl z= {s1-s2,s1+s2};
		return z;
	}
	inline bool pdbj(int y,int x,int x1,int x2,int ys,string zt) {
		ycgb();
		ycbj();
		hl z=wz(1,1);
		bool a=0;
		if(z.h==y&&z.l>=x1&&z.l<=x2) {
			ydgb(y,x);
			de(ys*16);
			cout<<zt;
			de(ys);
			if(axj(VK_LBUTTON)) {
				a=1;
			}
		} else {
			ydgb(y,x);
			de(ys);
			cout<<zt;
		}
		de(15);
		return a;
	}
	inline bool pddj_zj(int h,int ys,string zt) {
		int s1=GetActiveWindowSize().h/2;
		int s2=zt.size()/2;
		if(pdbj(h,s1-s2,s1-s2,s2+s1,ys,zt)) {
			return 1;
		} else {
			return 0;
		}
	}
	inline bool pddj_zj_kh(int h,int ys,string zt,string z1="",string z2="") {
		int s1=GetActiveWindowSize().h/2;
		int s2=zt.size()/2;
		ydgb(h,s1-s2-z1.size()-1);
		cout<<z1<<"[";
		ydgb(h,s1+s2);
		cout<<"]"<<z2;
		if(pdbj(h,s1-s2,s1-s2,s2+s1,ys,zt)) {
			return 1;
		} else {
			return 0;
		}
	}
	inline bool pddj_kh(int h,int x,int ys,string zt,string z1="",string z2="") {
		int s2=zt.size();
		ydgb(h,x);
		cout<<z1<<"[";
		ydgb(h,x+z1.size()+s2+1);
		cout<<"]"<<z2;
		if(pdbj(h,x+z1.size()+1,x+z1.size()+1,s2+x+z1.size(),ys,zt)) {
			return 1;
		} else {
			return 0;
		}
	}
	inline string wjcc(string x, string y) {
		std::string full_path = x + "\\" + y;
		// 只创建目录,不创建文件
		std::string command = "if not exist " + x + " mkdir " + x;
		int ret = system(command.c_str());
		return full_path;
	}
	inline string in_str(ll x) {
		string y="";
		const string z[]= {"0","1","2","3","4","5","6","7","8","9"};
		while(x) {
			y+=z[x%10];
			x/=10;
		}
		reverse(y.begin(),y.end());
		return y;
	}
};

using namespace gongjv;

int wzx=5,wzy=2,money=2000,tired=50,health=100,shang1=1,kuan1=1,shang2=20,kuan2=8,scsuo=0;

void gongdi() {
	cout<<"     "<<"一片工地,好像是某户人家要建造房屋?";
	cout<<"                          是否上工?";
	while(1) {
		if(pdbj(3,20,20,20,7,"是")) {
			break;
		}
		if(pdbj(4,20,20,20,7,"否")) {
			return;
		}
	}
	system("cls");
	int zhuanshu=0;
	int wzx_gong=1,wzy_gong=2;
	char gdt[8][10]= {
		{'#',' ',' ',' ',' ','e',' ',' ',' ','#'},
		{'#',' ',' ',' ',' ',' ',' ',' ',' ','#'},
		{'#',' ',' ',' ',' ',' ',' ',' ','d',' '},
		{'#',' ',' ',' ',' ',' ',' ',' ','d',' '},
		{'#',' ',' ',' ',' ',' ',' ',' ','d',' '},
		{'#',' ',' ',' ',' ',' ',' ',' ',' ','#'},
		{'#','s',' ',' ',' ',' ',' ',' ',' ','#'},
		{'#','#','#','#','#','#','#','#','#','#'},
	};
	ggb();
	ycgb();
	bool f=0;
	ycbj();
	int yd=0;
	for(int hu=1; 1; ++hu) {
		if(yd) {
			if(hu%10==0)yd=0;
		}
		ydgb(1,1);
		for(int i=0; i<8; i++) {
			ydgb(i+1,1);
			for(int j=0; j<10; j++) {
				if(i==wzx_gong&&j==wzy_gong) {
					cout<<"I";
					if(gdt[i][j]=='d') {
						system("cls");
						return ;
						system("cls");
					}
					if(gdt[i][j]=='s') {
						if(zhuanshu<9) {
							zhuanshu+=1;
							Sleep(100);
						} else {
							f=1;
						}
					}
					if(gdt[i][j]=='e') {
						money+=zhuanshu;
						tired-=zhuanshu;
						zhuanshu=0;
						f=0;
					}
				} else {
					cout<<gdt[i][j];
				}

			}
			if(i==0) {
				cout<<"   d:门口,会离开工地";
			}
			if(i==1) {
				cout<<"   s:取砖处  当前砖数:"<<zhuanshu;
			}
			if(i==2) {
				cout<<"   e:放砖处 已拥有金额:"<<money;
			}
		}
		cout<<endl;
		if(f) {
			cout<<"已经到达最大限度";
		} else {
			if(gdt[wzx_gong][wzy_gong]=='e') {
				system("cls");
				wzx_gong=1;
				wzy_gong=5;
			}

		}
		if(tired<=0) {
			system("cls");
			cout<<"你因过度劳累,被工友抬出了施工现场,请及时吃饭哦";
			Sleep(500);
			return ;
		}
		if(health<=0) {
			system("cls");
			cout<<"你在工地咳得很厉害,工友让你赶紧去买点药";
			cd(500);
			return ;
		}
		if(axj('W')&&!yd) {
			ydgb(wzx_gong+1,wzy_gong+1);
			cout<<" ";
			if(wzx_gong>0)wzx_gong-=1;
			hu=1;
			yd=1;
		}
		if(axj('S')&&!yd) {
			ydgb(wzx_gong+1,wzy_gong+1);
			cout<<" ";
			if(wzx_gong<6)wzx_gong+=1;
			hu=1;
			yd=1;
		}
		if(axj('A')&&!yd) {
			ydgb(wzx_gong+1,wzy_gong+1);
			cout<<" ";
			if(wzy_gong>1)wzy_gong-=1;
			hu=1;
			yd=1;
		}
		if(axj('D')&&!yd) {
			ydgb(wzx_gong+1,wzy_gong+1);
			cout<<" ";
			if(wzy_gong<8)wzy_gong+=1;
			hu=1;
			yd=1;
		}
		Sleep(1);
	}
}

void menu(int f) {
	if(f==1) {
		if(tired>tired_max-5) {
			cout<<"你确定你吃的下?";
			Sleep(500);
			return;
		}
		cout<<"欢迎光临";
		Sleep(1000);
		system("cls");
		cout<<"                    菜单";
		while(1) {
			if(pddj_zj(2,7,"1. 清灼时蔬, 15元 (+20体力, +40健康)" )) {
				tired+=20;
				health+=40;
				money-=15;
				if(tired>tired_max) {
					tired=tired_max;
				}
				break;
			}
			if(pddj_zj(3,7,"2. 香辣土豆丝, 20元 (+40体力, +5健康)" )) {
				tired+=40;
				health+=5;
				money-=20;
				int md=rand()%100+1;
				cd(1000);
				if(md<40) {
					cout<<"作者看到你吃了他兄弟,非常生气,揍了你一顿!";
					cd(1000);
					health-=40;
				}
				if(tired>tired_max) {
					tired=tired_max;
				}
				break;
			}
			if(pddj_zj(4,7,"3. 红烧肉, 50元 (+60体力, +10健康)" )) {
				tired+=60;
				health+=10;
				money-=50;
				int md=rand()%100+1;
				cd(1000);
				if(md<15) { // 15%概率吃坏肚子
					cout<<"红烧肉太油腻,你吃坏肚子了!";
					cd(1000);
					health-=20;
					tired-=10;
				}
				if(tired>tired_max) {
					tired=tired_max;
				}
				break;
			}
			if(pddj_zj(5,7,"4. 海鲜炒饭, 35元 (+40体力, +20健康)" )) {
				tired+=50;
				health+=20;
				money-=35;
				int md=rand()%100+1;
				cd(1000);
				if(md<10) { // 10%概率海鲜过敏
					cout<<"你对海鲜过敏,浑身起疹子!";
					cd(1000);
					health-=30;
				}
				if(tired>tired_max) {
					tired=tired_max;
				}
				break;
			}
			if(pddj_zj(6,7,"5. 营养套餐, 80元 (+50体力, +50健康)" )) {
				tired+=80;
				health+=50;
				money-=80;
				cd(1000);
				if(tired>tired_max) {
					tired=tired_max;
				}
				break;
			}
			if(pddj_zj(7,7,"6.可口可乐, 5元 (+15体力, -5健康)" )) {
				tired+=15;
				health-=5;
				money-=5;
				cd(1000);
				if(tired>tired_max) {
					tired=tired_max;
				}
				break;
			}
			if(pddj_zj(8,7,"7. 豪华大餐, 150元 (+100体力, +80健康)" )) {
				if(money < 150) {
					cout<<"钱不够吃豪华大餐!";
					cd(1000);
					continue;
				}
				tired+=100;
				tired = 100; // 体力上限100
				health+=80;
				health = 100; // 健康上限100
				money-=150;
				cout<<"享用豪华大餐,状态全满!";
				cd(1000);
				if(tired>tired_max) {
					tired=tired_max;
				}
				break;
			}
			// === 新增食物选项结束 ===
			if(pddj_zj(9,7,"8. 离开餐馆" )) {
				break;
			}
		}
		system("cls");
		// 显示用餐后的状态
		cout<<"用餐完毕!当前状态:"<<endl;
		cout<<"体力: "<<tired<<"/"<<tired_max<<endl;
		cout<<"健康: "<<health<<"/100"<<endl;
		cout<<"余额: "<<money<<"元"<<endl;
		Sleep(1500);
		system("cls");
	} else if(f==2) {
		cd(500);
		while(1) {
			// 原有药物
			if(pddj_zj(1,7,"1. 藿香正气水,20元一瓶 (+50健康)")) {
				if(money < 20) {
					system("cls");
					cout<<"余额不足!";
					cd(800);
					continue;
				}
				health = min(100, health + 50); // 确保不超过100
				money -= 20;
				cd(800);
				break;
			}
			if(pddj_zj(2,7,"2. 止咳药,10元一瓶 (+30健康)")) {
				if(money < 10) {
					system("cls");
					cout<<"余额不足!";
					cd(800);
					continue;
				}
				health = min(100, health + 30);
				money -= 10;
				cd(800);
				break;
			}
			// === 新增药物选项开始 ===
			if(pddj_zj(3,7,"3. 强效恢复剂,50元 (健康回满,消耗体力)")) {
				if(money < 50) {
					system("cls");
					cout<<"余额不足!";
					cd(800);
					continue;
				}
				if(health >= 100) {
					system("cls");
					cout<<"你的健康已经是满的,不需要这个。";
					cd(800);
					continue;
				}
				// 计算恢复量并扣除相应体力
				int heal_amount = 100 - health;
				int stamina_cost = heal_amount / 2; // 每恢复2点健康扣1点体力

				if(tired < stamina_cost) {
					system("cls");
					cout<<"体力不足,无法承受药效!";
					cd(800);
					continue;
				}

				health = 100;
				tired -= stamina_cost;
				money -= 50;
				system("cls");
				cout<<"使用了强效恢复剂!健康已回满。"<<endl;
				cout<<"因药效强烈,体力减少了"<<stamina_cost<<"点。";
				cd(1200);
				break;
			}
			if(pddj_zj(4,7,"4. 体力增强剂,100元 (+10体力上限)")) {
				if(money < 100) {
					system("cls");
					cout<<"余额不足!";
					cd(800);
					continue;
				}
				tired =  tired_max+10;
				money -= 100;
				tired_max+=10;
				cd(800);
				break;
			}
			// === 新增药物选项结束 ===
			if(pddj_zj(5,7,"5. 离开药店")) {
				break;
			}
		}
		cd(500);
	}

}

void car_shop() {
	system("cls");
	cout << "=== 车辆商店 ===" << endl;
	cout << "当前座驾: " << car_names[car_owned] << endl;
	cout << "当前移速: " << move_speed << " 格/次" << endl;
	cout << "当前余额: " << money << " 元" << endl << endl;

	while(1) {
		// 显示自行车选项(如果未拥有且未拥有更高级车辆)
		if(pddj_zj(5, 7, "1. 购买自行车 - 500元 (移速+1)")) {
			if(money >= car_price[1]) {
				money -= car_price[1];
				car_owned = 1;
				move_speed = 2; // 移动速度变为2倍
				system("cls");
				cout << "购买成功!你获得了一辆自行车!" << endl;
				cout << "现在移动速度提升了!";
				Sleep(1500);
				return;
			} else {
				system("cls");
				cout << "余额不足!需要500元,当前只有" << money << "元";
				Sleep(1500);
				system("cls");
				car_shop(); // 重新显示商店
				return;
			}
		}
		if(pddj_zj(6, 7, "2. 升级到摩托车 - 2000元 (移速+2)")) {
			if(money >= car_price[2]) {
				money -= car_price[2];
				car_owned = 2;
				move_speed = 3; // 移动速度变为3倍
				system("cls");
				cout << "升级成功!你换上了摩托车!" << endl;
				cout << "现在移动速度更快了!";
				Sleep(1500);
				return;
			} else {
				system("cls");
				cout << "余额不足!需要2000元,当前只有" << money << "元";
				Sleep(1500);
				system("cls");
				car_shop();
				return;
			}
		}
		if(pddj_zj(7, 7, "3. 升级到豪华汽车 - 10000元 (移速+4)")) {
			if(money >= car_price[3]) {
				money -= car_price[3];
				car_owned = 3;
				move_speed = 5; // 移动速度变为5倍
				system("cls");
				cout << "升级成功!你开上了豪华汽车!" << endl;
				cout << "现在你是街上最靓的仔!";
				Sleep(1500);
				return;
			} else {
				system("cls");
				cout << "余额不足!需要10000元,当前只有" << money << "元";
				Sleep(1500);
				system("cls");
				car_shop();
				return;
			}
		}

		// 离开选项
		if(pddj_zj(8, 7, "离开车辆商店")) {
			system("cls");
			return;
		}
	}
}

// 出租车功能函数
void pickup_passenger() {
	if (has_passenger) {
		cout << "已经有乘客在车上!" << endl;
		Sleep(1000);
		return;
	}

	if (car_owned == 0) {
		cout << "需要至少拥有自行车才能接客!" << endl;
		Sleep(1000);
		return;
	}

	has_passenger = true;
	passenger_start_x = wzx;
	passenger_start_y = wzy;

	// 随机生成目的地
	passenger_end_x = rand() % 14 + 1;  // 1-14之间的随机行
	passenger_end_y = rand() % 38 + 1;  // 1-38之间的随机列

	// 确保目的地不是障碍物
	while (!dt[passenger_end_x][passenger_end_y] == ' ') {
		passenger_end_x = rand() % 14 + 1;
		passenger_end_y = rand() % 38 + 1;
	}

	dt[passenger_end_x][passenger_end_y]='E';

	cout << "接到乘客!目的地坐标: (" << passenger_end_x << "," << passenger_end_y << ")" << endl;
	cout << "请将乘客送到E点下车" << endl;
	Sleep(1500);
}

void dropoff_passenger() {
	if (!has_passenger) {
		cout << "车上没有乘客!" << endl;
		Sleep(1000);
		return;
	}

	// 计算曼哈顿距离
	int distance = abs(passenger_start_x - wzx) + abs(passenger_start_y - wzy);
	dt[passenger_end_x][passenger_end_y]=' ';
	// 计算车费:曼哈顿距离 × 车辆等级 ÷ 2
	fare_earned = distance * car_owned / 2;

	if (fare_earned < 1) fare_earned = 1;  // 最低车费1元

	money += fare_earned;

	cout << "乘客已送达!" << endl;
	cout << "行驶距离: " << distance << " 格" << endl;
	cout << "车辆等级: " << car_owned << endl;
	cout << "获得车费: " << fare_earned << " 元" << endl;
	cout << "当前余额: " << money << " 元" << endl;

	has_passenger = false;
	fare_earned = 0;
	Sleep(2000);
}

void show_passenger_info() {
	if (has_passenger) {
		cout << "=== 乘客信息 ===" << endl;
		cout << "当前位置: (" << wzx << "," << wzy << ")" << endl;
		cout << "目的地: (" << passenger_end_x << "," << passenger_end_y << ")" << endl;
		cout << "剩余距离: " << (abs(wzx - passenger_end_x) + abs(wzy - passenger_end_y)) << " 格" << endl;
		cout << "车辆等级: " << car_owned << endl;
		cout << "预计车费: " << ((abs(passenger_start_x - passenger_end_x) + abs(passenger_start_y - passenger_end_y)) * car_owned / 2) << " 元" << endl;
	} else {
		cout << "车上没有乘客" << endl;
	}
	Sleep(2000);
}


void chifan() {
	int wzx_eat=2,wzy_eat=1;
	char meishijie[5][10]= {
		{'#','#','#','#','#','#','#','#','#','#'},
		{' ',' ',' ','m','*',' ',' ',' ',' ',' '},
		{' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},
		{' ',' ',' ',' ','*',' ',' ',' ',' ',' '},
		{'#','#','#','#','#','#','#','#','#','#'},
	};
	system("mode con cols=50 lines=20");
	ggb();
	ycgb();
	ycbj();
	int yd=0;
	for(int hu=1; 1; ++hu) {
		if(yd) {
			if(hu%10==0)yd=0;
		}
		ydgb(1,1);
		for(int i=0; i<5; i++) {
			ydgb(i+1,1);
			for(int j=0; j<10; j++) {
				if(i==wzx_eat&&j==wzy_eat) {
					cout<<"I";
					if(meishijie[i][j]=='*') {
						system("cls");
						cout<<"              一家小餐馆,你要吃吗?";
						while(1) {
							if(pddj_zj(2,7,"是")) {
								system("cls");
								menu(1);
								break;
							}
							if(pddj_zj(3,7,"否")) {
								break;
							}
						}
						wzx_eat=2;
						system("cls");
						break;
					}
					if(meishijie[i][j]=='m') {
						system("cls");
						cout<<"          一个药店,药到病除";
						while(1) {
							if(pddj_zj(2,7,"买药")) {
								system("cls");
								menu(2);
								break;
							}
							if(pddj_zj(3,7,"算了")) {
								break;
							}
						}
						wzx_eat=2;
						system("cls");
						break;
					}
					if(j==0) {
						return;
					}
				} else {
					cout<<meishijie[i][j];
				}

			}
			if(i==0) {
				cout<<"    余额:"<<money;
			}
		}
		if(axj('W')&&!yd) {
			ydgb(wzx_eat+1,wzy_eat+1);
			cout<<" ";
			if(wzx_eat>1)wzx_eat-=1;
			hu=1;
			yd=1;
		}
		if(axj('S')&&!yd) {
			ydgb(wzx_eat+1,wzy_eat+1);
			cout<<" ";
			if(wzx_eat<3)wzx_eat+=1;
			hu=1;
			yd=1;
		}
		if(axj('A')&&!yd) {
			ydgb(wzx_eat+1,wzy_eat+1);
			cout<<" ";
			if(wzy_eat>0)wzy_eat-=1;
			hu=1;
			yd=1;
		}
		if(axj('D')&&!yd) {
			ydgb(wzx_eat+1,wzy_eat+1);
			cout<<" ";
			if(wzy_eat<8)wzy_eat+=1;
			hu=1;
			yd=1;
		}
		Sleep(1);
	}
}

void shuoming() {
	cout<<"    这有一座奇怪的建筑,叫:游戏公司?";
	while(1) {
		if(pddj_zj(2,7,"进入")) {
			break;
		}
		if(pddj_zj(3,7,"算了")) {
			return;
		}
	}
	system("cls");
	cout<<"策划:说吧,你是不是想问点啥?"<<endl;
	Sleep(1000);
	cout<< "“我”:这是什么地方?"<<endl ;
	Sleep(1000);
	cout<<"策划:你不必知道。"<<endl;
	Sleep(100);
	while(1) {
		if(pdbj(4,1,1,28,7,"为什么,你不是说让我问的吗?")) {
			system("cls");
			cout<<"策划:说吧,你是不是想问点啥?"<<endl;
			cout<< "“我”:这是什么地方?"<<endl ;
			cout<<"策划:你不必知道。"<<endl;
			cout<<"“我”:为什么,你不是说让我问的吗?"<<endl;
			Sleep(1000);
			cout<<"策划:那你出去吧!"<<endl;
			Sleep(1000);
			system("cls");
			break;
		}
		if(pdbj(5,1,1,16,7,"那你想要谁知道?")) {
			system("cls");
			cout<<"策划:说吧,你是不是想问点啥?"<<endl;
			cout<< "“我”:这是什么地方?"<<endl ;
			cout<<"策划:你不必知道。"<<endl;
			cout<<"“我”:那你想要谁知道?"<<endl;
			Sleep(1000);
			cout<<"策划:屏幕后面的人。"<<endl;
			Sleep(1000);
			system("cls");
			break;
		}
	}
	while(1) {
		ydgb(1,1);
		cout<<"策划:好了,你想问什么关于游戏的,主角已经走了"<<endl;
		if(pdbj(2,1,1,14,7,"什么时候更新!")) {
			system("cls");
			cout<<"策划:好了,你想问什么关于游戏的,主角已经走了"<<endl;
			cout<<"我:什么时候更新!"<<endl;
			cd(1000);
			cout<<"mod:没办法,我家电脑运行不了这代码"<<endl;
			cd(1000);
			cout<<"mod:所以没法在家更新"<<endl;
			cd(1000);
			cout<<"mod:但是别担心,我会在学校努力更新的!"<<endl;
			cd(1000);
		}
		if(pdbj(3,1,1,20,7,"你是怎么造的这游戏?")) {
			system("cls");
			cout<<"策划:好了,你想问什么关于游戏的,主角已经走了"<<endl;
			cout<<"我:你是怎么造的这游戏?"<<endl;
			cd(1000);
			cout<<"mod:我本来不想造和工作有关的游戏"<<endl;
			cd(1000);
			cout<<"mod:但是其他人造的奇奇怪怪的,根本没有游戏背景可言的"<<endl;
			cd(1000);
			cout<<"mod:最关键的是,没有点击和地图!"<<endl;
			cd(1000);
			cout<<"mod:打工游戏没有地图是不完整的!"<<endl;
			cd(1000);
			cout<<"mod:点击是游戏的灵魂!"<<endl;
			cd(1000);
			cout<<"我:所以就是这么个原因啊……";
			cd(1000);
			system("cls");
		}
		if(pdbj(4,1,1,8,7,"介绍介绍")) {
			system("cls");
			cout<<"策划:好了,你想问什么关于游戏的,主角已经走了"<<endl;
			cout<<"我:介绍介绍"<<endl;
			cd(1000);
			cout<<"mod:这几乎是我独自创造的游戏"<<endl;
			cd(1000);
			cout<<"mod:但佩奇(培奇)也帮了点忙"<<endl;
			cd(1000);
			cout<<"mod:对了,这游戏有结局哦,还不止一个,快去探索吧!"<<endl;
			cd(1000);
			system("cls");
		}
		if(pdbj(5,1,1,8,7,"再见")) {
			system("cls");
			return ;
		}
	}
}

void print_xueli_level() {
	string levels[] = {"小学", "初中", "高中", "专科", "二本", "一本", "硕士", "博士"};
	if(xueli_level >= 0 && xueli_level < 8) {
		cout << levels[xueli_level];
	} else {
		cout << "未知学历";
	}
}

void check_xueli() {
	system("cls");
	cout << "=== 学历信息 ===" << endl;
	cout << "当前学历: ";
	print_xueli_level();
	cout << endl;
	cout << "学历值: " << xueli_value << "/";

	int required[] = {100, 300, 600, 1000, 1500, 2200, 3000, 9999};
	if(xueli_level < 7) {
		cout << required[xueli_level] << endl;
		cout << "还需: " << (required[xueli_level] - xueli_value) << "学历值";
	} else {
		cout << "MAX" << endl;
		cout << "已达最高学历!";
	}

	cout << endl << endl << "=== 各科目学习情况 ===" << endl;
	string subject_names[] = {"语文", "数学", "英语", "化学", "物理", "地理", "政治"};
	for(int i = 0; i < 7; i++) {
		cout << subject_names[i] << ": " << kecheng[i] << "次学习";
		cout << " (+" << min(kecheng[i] * 2, 20) << "%考试概率)" << endl;
	}

	cout << endl << "图书馆自习加成: +" << library_bonus << "%考试概率";
	Sleep(3000);
	system("cls");
}

bool random_event() {
	int chance = rand() % 100;
	if(chance < 10) { // 10%概率
		return 1;
		// 本次学习获得的学历值翻倍
	}
	return 0;
}

void study_subject(int subject_id) {
	// subject_id: 0-语文,1-数学,2-英语,3-化学,4-物理,5-地理,6-政治
	string subject_names[] = {"语文", "数学", "英语", "化学", "物理", "地理", "政治"};
	int study_gain[] = {3, 4, 3, 5, 5, 2, 2}; // 学历值增加
	system("cls");
	if(tired<10) {
		cout<<"你太累了,先吃点饭在回来上课!"<<endl;
		Sleep(1000);
		system("cls");
		return ;
	}
	system("cls");
	cout << "正在学习" << subject_names[subject_id] << "..." << endl;
	Sleep(800);

	kecheng[subject_id] += 1; // 该科目学习次数+1
	xueli_value += study_gain[subject_id]; // 增加学历值
	tired -= 10; // 消耗体力
	if(random_event()) {
		cout << "今天老师讲课特别棒!学习效率翻倍!"<<endl;
		xueli_value+=study_gain[subject_id];
	}
	cout << "学习完成!" << endl;
	cout << subject_names[subject_id] << "学习值: " << kecheng[subject_id] << endl;
	cout << "当前学历值: " << xueli_value << endl;
	Sleep(1000);
	system("cls");

}

void library_study() {
	system("cls");
	Sleep(100);
	cout << "图书馆自习中..." << endl;

	while(1) {
		if(pddj_zj(2, 7, "自习1小时")) {
			if(tired >= 15) {
				library_bonus += 5;
				tired -= 15;
				system("cls");
				cout << "自习完成!考试及格概率+" << library_bonus << "%";
				Sleep(1000);
				break;
			} else {
				system("cls");
				cout << "体力不足!";
				Sleep(1000);
				break;
			}
		}
		if(pddj_zj(3, 7, "自习2小时")) {
			if(tired >= 25) {
				library_bonus += 10;
				tired -= 25;
				system("cls");
				cout << "自习完成!考试及格概率+" << library_bonus << "%";
				Sleep(1000);
				break;
			} else {
				system("cls");
				cout << "体力不足!";
				Sleep(1000);
				break;
			}
		}
		if(pddj_zj(4, 7, "自习3小时")) {
			if(tired >= 35) {
				library_bonus += 15;
				tired -= 35;
				system("cls");
				cout << "自习完成!考试及格概率+" << library_bonus << "%";
				Sleep(1000);
				break;
			} else {
				system("cls");
				cout << "体力不足!";
				Sleep(1000);
				break;
			}
		}
	}
	system("cls");
	return ;
}

void take_exam() {
	system("cls");
	Sleep(100);
	int required_value[] = {100, 300, 600, 1000, 1500, 2200, 3000}; // 各等级所需学历值

	if(xueli_value < required_value[xueli_level]) {
		cout << "学历值不足!需要" << required_value[xueli_level] << ",当前" << xueli_value;
		Sleep(1000);
		return ;
	}

	// 计算基础及格概率
	int pass_rate = 30; // 基础30%

	// 各科目加成
	for(int i = 0; i < 7; i++) {
		pass_rate += min(kecheng[i] * 2, 20); // 每学习一次+2%,最多+20%
	}

	// 图书馆加成
	pass_rate += library_bonus;

	// 体力影响
	if(tired < 30) pass_rate -= 20;
	else if(tired > 70) pass_rate += 10;
	Sleep(1000);
	pass_rate = max(10, min(pass_rate, 95)); // 限制在10%-95%

	cout << "考试及格概率: " << pass_rate << "%" << endl;
	cout << "是否参加考试?";
	while(1) {
		if(pddj_zj(2, 7, "参加考试")) {
			system("cls");
			int result = rand() % 100 + 1;
			if(result <= pass_rate) {
				// 考试通过
				xueli_level++;
				library_bonus = 0; // 重置图书馆加成
				cout << "恭喜!考试通过!" << endl;
				cout << "新学历: ";
				print_xueli_level();
				Sleep(1500);
				system("cls");
				return;
			} else {
				cout << "很遗憾,考试未通过..." << endl;
				cout << "可以继续学习或去图书馆自习提高概率";
				Sleep(1500);
				return ;
			}
		}
	}
}

// 随机事件:学习效率提升


struct Achievement {
	bool graduated_high_school = false;
	bool graduated_college = false;
	bool all_subjects_max = false;
	bool library_fan = false; // 图书馆常客
} achievement;

void check_achievements() {
	// 检查并解锁成就
	if(xueli_level >= 2 && !achievement.graduated_high_school) {
		cout << "成就解锁:高中毕业!";
		money += 500; // 成就奖励
		achievement.graduated_high_school = true;
	}
	// ... 其他成就
}//未完成部分!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


void school_main() {
	system("cls");
	int wzx_len=2,wzy_len=2;
	system("mode con cols=50 lines=30");
	char school_map[10][20] = {
		{'#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#'},
		{'d',' ',' ','C',' ','M',' ','E',' ','H',' ','P',' ','G',' ','L',' ','Z',' ','#'},
		{'o',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','#'},
		{'o',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','#'},
		{'r',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','#'},
		{'r',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','#'},
		{'o',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','#'},
		{'o',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','#'},
		{'d',' ',' ','B',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','T',' ',' ','#'},
		{'#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#'}
	};
	ggb();
	ycgb();
	ycbj();
	int yd=0;
	for(int hu=1; 1; ++hu) {
		if(yd) {
			if(hu%10==0)yd=0;
		}
		ydgb(1,1);
		for(int i=0; i<10; i++) {
			ydgb(i+1,1);
			for(int j=0; j<20; j++) {
				if(i==wzx_len&&j==wzy_len) {
					cout<<"I";
					if(school_map[i][j]=='C') {
						system("cls");
						cout<<"           教导主任:要查看学历吗";
						while(1) {
							if(pddj_zj(2,7,"是")) {
								system("cls");
								check_xueli();
								break;
							}
							if(pddj_zj(3,7,"否")) {
								break;
							}
						}
						wzx_len=2;
						wzx_len=2;
						system("cls");
						break;
					}
					if(school_map[i][j]=='B') {
						system("cls");
						cout<<"           是否进入图书管自习?";
						while(1) {
							if(pddj_zj(2,7,"是")) {
								system("cls");
								library_study();
								break;
							}
							if(pddj_zj(3,7,"否")) {
								break;
							}
						}
						wzx_len=2;
						wzx_len=2;
						system("cls");
						break;
					}
					if(school_map[i][j]=='T') {
						system("cls");
						cout<<"           是否进行考试?";
						while(1) {
							if(pddj_zj(2,7,"是")) {
								system("cls");
								take_exam();
								break;
							}
							if(pddj_zj(3,7,"否")) {
								break;
							}
						}
						wzx_len=2;
						wzx_len=2;
						system("cls");
						break;
					}
					if(school_map[i][j]=='Z') {
						system("cls");
						cout<<"           是否上语文课?";
						while(1) {
							if(pddj_zj(2,7,"是")) {
								system("cls");
								study_subject(0);
								break;
							}
							if(pddj_zj(3,7,"否")) {
								break;
							}
						}
						wzx_len=2;
						wzx_len=2;
						system("cls");
						break;
					}
					if(school_map[i][j]=='M') {
						system("cls");
						cout<<"           是否上数学课?";
						while(1) {
							if(pddj_zj(2,7,"是")) {
								system("cls");
								study_subject(1);
								break;
							}
							if(pddj_zj(3,7,"否")) {
								break;
							}
						}
						wzx_len=2;
						wzx_len=2;
						system("cls");
						break;
					}
					if(school_map[i][j]=='E') {
						system("cls");
						cout<<"           是否上英语课?";
						while(1) {
							if(pddj_zj(2,7,"是")) {
								system("cls");
								study_subject(2);
								break;
							}
							if(pddj_zj(3,7,"否")) {
								break;
							}
						}
						wzx_len=2;
						wzx_len=2;
						system("cls");
						break;
					}
					if(school_map[i][j]=='H') {
						system("cls");
						cout<<"           是否上化学课?";
						while(1) {
							if(pddj_zj(2,7,"是")) {
								system("cls");
								study_subject(3);
								break;
							}
							if(pddj_zj(3,7,"否")) {
								break;
							}
						}
						wzx_len=2;
						wzx_len=2;
						system("cls");
						break;
					}
					if(school_map[i][j]=='P') {
						system("cls");
						cout<<"           是否上物理课?";
						while(1) {
							if(pddj_zj(2,7,"是")) {
								system("cls");
								study_subject(4);
								break;
							}
							if(pddj_zj(3,7,"否")) {
								break;
							}
						}

						wzx_len=2;
						wzx_len=2;
						system("cls");
						break;
					}
					if(school_map[i][j]=='G') {
						system("cls");
						cout<<"           是否上地理课?";
						while(1) {
							if(pddj_zj(2,7,"是")) {
								system("cls");
								study_subject(5);
								break;
							}
							if(pddj_zj(3,7,"否")) {
								break;
							}
						}
						wzx_len=2;
						wzx_len=2;
						system("cls");
						break;
					}
					if(school_map[i][j]=='L') {
						system("cls");
						cout<<"           是否上政治课?";
						while(1) {
							if(pddj_zj(2,7,"是")) {
								system("cls");
								study_subject(6);
								break;
							}
							if(pddj_zj(3,7,"否")) {
								break;
							}
						}
						wzx_len=2;
						wzx_len=2;
						system("cls");
						break;
					}
					if(j==0) {
						print_xueli_level();
						return;
					}
				} else {
					cout<<school_map[i][j];
				}

			}
		}
		if(axj('W')&&!yd) {
			ydgb(wzx_len+1,wzy_len+1);
			cout<<" ";
			if(wzx_len>1)wzx_len-=1;
			hu=1;
			yd=1;
		}
		if(axj('S')&&!yd) {
			ydgb(wzx_len+1,wzy_len+1);
			cout<<" ";
			if(wzx_len<8)wzx_len+=1;
			hu=1;
			yd=1;
		}
		if(axj('A')&&!yd) {
			ydgb(wzx_len+1,wzy_len+1);
			cout<<" ";
			if(wzy_len>0)wzy_len-=1;
			hu=1;
			yd=1;
		}
		if(axj('D')&&!yd) {
			ydgb(wzx_len+1,wzy_len+1);
			cout<<" ";
			if(wzy_len<18)wzy_len+=1;
			hu=1;
			yd=1;
		}
		Sleep(1);
	}
}

void guard() {
	cout<<"你要干嘛?";
	while(1) {
		if(pddj_zj(2,7,"我去___,这是路费,200000" )) {
			int mod=rand()%100+1;
			if(money>=200000&&mod<=10) {
				money-=200000;
				cd(100);
				cout<<"经过长途跋涉,你终于回到了China"<<endl;
				cout<<"达成隐藏结局1:回家~~";
				exit(0);
			} else if(money>=200000) {
				cd(1);
				cout<<"守卫:这不是钱不钱的问题,关键是现在也没队走这条路啊"<<endl;
				Sleep(1000);
				return;
			} else {
				cd(1);
				cout<<"没钱你还出啥城?"<<endl;
				Sleep(1000);
				return;
			}
		}
		if(pddj_zj(3,7,"没事")) {
			return;
		}
	}
}

void enter_school() {
	if(!has_student_card) {
		system("cls");
		cout << "教务处老师:要进入学校需要学生证。" << endl;
		cout << "请完成以下任务获取学生证:" << endl;
		cout << "缴纳100元报名费" << endl;

		if(money >= 100) {
			money -= 100;
			has_student_card = true;
			scsuo = 1; // 设置可以进入学校的标志
			cout << "恭喜获得学生证!可以进入学校了。";
			Sleep(500);
			system("cls");
			school_main();
		} else {
			cout << "钱不够,先去打工赚钱吧!";
		}
		system("cls");
		return;
	}
	system("cls");
	// 进入学校地图
	school_main();
}

void jiajiao() {
	system("cls");

	// 检查学历等级是否达到初中(等级1)
	if(xueli_level < 1) {
		cout << "家教中心:抱歉,您的学历过低,我们无法录取你!" << endl;
		cout << "当前学历:";
		print_xueli_level();
		Sleep(2000);
		system("cls");
		return;
	}

	// 检查体力是否足够
	if(tired < 20) {
		cout << "家教中心:您太累了,需要先休息一下!" << endl;
		cout << "当前饱食度:" << tired << "/100" << endl;
		Sleep(2000);
		system("cls");
		return;
	}

	cout << "家教中心:上班快乐!" << endl;
	cout << "当前学历:";
	print_xueli_level();
	cout << endl;
	cout << "家教工作每次消耗20饱食度" << endl;
	cout << "薪资:100 * 学历等级 = " << 100 * (xueli_level + 1) << "元" << endl;
	cout << "学历值增加:" << (xueli_level + 1) * 10 << "点" << endl;
	cout << "当前饱食度:" << tired << "/100" << endl;
	cout << "当前余额:" << money << "元" << endl;

	while(1) {
		if(pddj_zj(8, 7, "开始家教工作")) {
			// 扣除饱食度
			tired -= 20;

			// 计算薪资(100 * 学历等级)
			int salary = 100 * (xueli_level + 1);
			money += salary;

			// 增加学历值(根据学历等级增加)
			int xueli_gain = (xueli_level + 1) * 10;
			xueli_value += xueli_gain;


			system("cls");
			cout << "家教工作完成!" << endl;
			cout << "获得薪资:" << salary << "元" << endl;
			cout << "增加学历值:" << xueli_gain << "点" << endl;
			cout << "当前饱食度:" << tired << "/100" << endl;
			cout << "当前余额:" << money << "元" << endl;
			cout << "当前学历值:" << xueli_value << endl;

			Sleep(2000);
			system("cls");
			return;
		}
		if(pddj_zj(9, 7, "取消")) {
			system("cls");
			return;
		}
	}
}


int main() {
	system("mode con cols=50 lines=20");
	ggb();
	ycgb();
	ycbj();
	int yd=0;
	for(int hu=1; 1; ++hu) {
		if(yd) {
			// 根据车辆等级调整移动延迟,等级越高,需要等待的帧数越少
			int delay_frames = 10 / move_speed; // 例如:无车时10帧,有车时减少
			if(hu % delay_frames == 0) yd = 0;
		}
		ydgb(1,1);
		for(int i=kuan1; i<kuan2; i++) {
			ydgb(i-kuan1+1,1);
			for(int j=shang1; j<shang2; j++) {
				if(i==wzx&&j==wzy) {
					cout<<"I";
					if(dt[i][j]=='+') {
						system("cls");
						gongdi();
						wzx=4;
						kuan1=3;
						kuan2=10;
						health-=30;
						system("cls");
						break;
					}
					if(dt[i][j]=='=') {
						system("cls");
						chifan();
						wzy-=1;
						shang1-=1;
						shang2-=1;
						system("cls");
					}
					if(dt[i][j]=='S') {
						system("cls");
						enter_school(); // 调用学校入口函数
						wzx+=1; // 调整位置
						system("cls");
					}

					if(dt[i][j]=='G') {
						system("cls");
						shuoming();
						wzy-=1;
						system("cls");
					}
					if(dt[i][j]=='T') {
						cd(1);
						guard();
						shang1=1;
						kuan1=1;
						shang2=20;
						kuan2=8;
						wzx=5;
						wzy=2;
						cd(1);
					}
					// 在主函数的交互逻辑中找到以下部分,在if(dt[i][j]=='T')的代码块后添加:

					if(dt[i][j]=='J') {
						system("cls");
						jiajiao();
						wzx += 1; // 调整位置,避免重复触发
						system("cls");
					}
// 在主函数的交互逻辑中找到以下部分,在 if(dt[i][j]=='J') 的代码块后添加:
					if(dt[i][j]=='C') {
						system("cls");
						car_shop();
						wzx += 1; // 调整位置,避免重复触发
						system("cls");
					}
					// 在主函数的交互逻辑中找到以下部分,在if(dt[i][j]=='C')的代码块后添加:

					if(dt[i][j]=='P') {
						system("cls");
						if (!has_passenger) {
							pickup_passenger();
						} else {
							cout << "这里只能接客,不能下车!" << endl;
							Sleep(1000);
						}
						wzx += 1; // 调整位置,避免重复触发
						system("cls");
					}

					if(dt[i][j]=='E') {
						system("cls");
						if (has_passenger) {
							dropoff_passenger();
						} else {
							cout << "这里只能下车,不能接客!" << endl;
							Sleep(1000);
						}
						wzx += 1; // 调整位置,避免重复触发
						system("cls");
					}


				} else {
					cout<<dt[i][j];
				}

			}
			if(i==kuan1) {
				cout<<"    余额:"<<money;
			}

		}
		cout<<endl;
		cout<<"坐标:("<<wzx<<","<<wzy<<")";
		cout<<endl;
		cout<<"饱食度:"<<tired;
		// 在 cout<<"坐标:("<<wzx<<","<<wzy<<")"; 后面添加
		cout << "  座驾:" << car_names[car_owned];
		// 在 cout << "  座驾:" << car_names[car_owned]; 后面添加
		if (has_passenger) {
			cout << "  乘客:有";
		} else {
			cout << "  乘客:无";
		}

		if(axj('W')&&!yd) {
			if(kuan1>0) {

				kuan1-=1;
				kuan2-=1;
			}
			ydgb(wzx+1,wzy+1);
			cout<<" ";
			if(wzx>1)wzx-=1;
			hu=1;
			yd=1;
		}
		if(axj('S')&&!yd) {
			if(kuan2<=15) {
				kuan1+=1;
				kuan2+=1;
			}
			ydgb(wzx+1,wzy+1);
			cout<<" ";
			if(wzx<14)wzx+=1;
			hu=1;
			yd=1;
		}
		if(axj('A')&&!yd) {
			if(shang1>0) {
				shang1-=1;
				shang2-=1;
			}
			ydgb(wzx+1,wzy+1);
			cout<<" ";
			if(wzy>1)wzy-=1;
			hu=1;
			yd=1;
		}
		if(axj('D')&&!yd) {
			if(shang2<=39) {
				shang1+=1;
				shang2+=1;
			}
			ydgb(wzx+1,wzy+1);
			cout<<" ";
			if(wzy<38)wzy+=1;
			hu=1;
			yd=1;
		}
		cd(1);
	}
	return 0;
}