-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;
}