//工作模拟器1.3
#include <iostream>
#include <string>
#include <cstdlib>
#include <vector>
#include <ctime>
#include<windows.h>
// 替换Windows特定功能
#ifdef _WIN32
#include <windows.h>
#else
// 提供Linux/macOS的替代实现
#endif
#include <fstream>
using namespace std;

int math_ability = 0;
int language_ability = 0;
int science_ability = 0;
int art_ability = 0;
int programming_ability = 0;  
int economics_ability = 0;    

bool can_teach_math = false;
bool can_teach_language = false;
bool can_teach_science = false;
bool can_teach_art = false;
bool can_teach_programming = false;


struct GameData {
	int money;
	int tired;
	int knowledge;
	int work;
	int bank_savings;   
	int bank_loan;         
	int loan_term;           
	int interest_rate;   
	int loan_rate;        
};



namespace dj {
	bool axj(long long key) {
		return (GetKeyState(key) < 0) ? (true) : (false);
	}
	struct hl {
		long long h,l;
	};
	void de(int x) {
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x);
	}
	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;
	}
	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) {
		COORD pos = { l - 1,h - 1 };
		HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
		SetConsoleCursorPosition(hOut, pos);
		return;
	}
	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;
	}
};

using namespace dj;//一定要有

int tired=50,work;
int money=1000000;
int knowledge = 100;/////////////////////////////////////
int study;
// 初始化银行数据
int bank_savings = 0;
int bank_loan = 0;
int loan_term = 0;
int interest_rate = 0.02; // 初始2%
int loan_rate = 0.07;     // 初始7%

// 学生性格类型枚举
enum StudentPersonality {
    EXTROVERTED,    // 外向型
    INTROVERTED,   // 内向型
    SENSORY,       // 感觉型
    INTUITIVE,     // 直觉型
    THINKING,      // 思考型
    FEELING,       // 情感型
    JUDGING,       // 判断型
    PERCEIVING    // 感知型
};

// 学生结构体
struct Student {
    string name;
    int grade_level;        // 1:小学, 2:初中, 3:高中, 4:大学
    string subject;        // 所学科目
    int difficulty;        // 教学难度 1-5
    int base_pay;          // 基础报酬
    StudentPersonality personality; // 性格类型
    int learning_speed;    // 学习速度
    string special_ability; // 特殊能力
};

// 特殊剧情结构体
struct SpecialEvent {
    string title;
    string description;
    vector<string> choices;
    vector<int> effects; // 对知识、金钱、体力的影响
};


int select_elective_course() {
    system("cls");
    cout << "=== 选修课系统 ===" << endl;
    cout << "请选择您感兴趣的选修课程:" << endl;
    cout << "1. 高等数学 - 提升数学能力" << endl;
    cout << "2. 英语文学 - 提升语言能力" << endl;
    cout << "3. 物理化学 - 提升科学能力" << endl;
    cout << "4. 美术音乐 - 提升艺术能力" << endl;
    cout << "5. 计算机编程 - 提升编程能力" << endl;
    cout << "6. 经济学原理 - 提升经济能力" << endl;
    
    int selected_course = 0;
    while(1) {
        if(pdbj(3,1,1,25,2,"1. 高等数学")) {
            selected_course = 1;
            break;
        }
        if(pdbj(4,1,1,25,3,"2. 英语文学")) {
            selected_course = 2;
            break;
        }
        if(pdbj(5,1,1,25,4,"3. 物理化学")) {
            selected_course = 3;
            break;
        }
        if(pdbj(6,1,1,25,5,"4. 美术音乐")) {
            selected_course = 4;
            break;
        }
        if(pdbj(7,1,1,25,6,"5. 计算机编程")) {
            selected_course = 5;
            break;
        }
        if(pdbj(8,1,1,25,7,"6. 经济学原理")) {
            selected_course = 6;
            break;
        }
    }
    return selected_course;
}

// 特殊剧情处理函数
void handle_special_event(Student& student, int& teaching_quality, int& total_income) {
    if(student.name == "神秘少年") {
        cout << "神秘少年神秘一笑:老师,我们还会再见的..." << endl;
        
        // 有概率获得隐藏奖励
        int hidden_reward_roll = rand() % 100;
        if(hidden_reward_roll < 30) { // 30%概率
            cout << "获得神秘少年的感谢信!" << endl;
            // 可以解锁后续剧情
    }
    
    if(student.name == "欧阳老师") {
        cout << "欧阳老师:记住,真正的教育是点燃火焰,而不是填满容器。" << endl;
    }
}

// 教学策略映射表
vector<pair<StudentPersonality, string>> teaching_strategies = {
    {EXTROVERTED, "互动讨论+小组合作"},
    {INTROVERTED, "独立思考+书面反馈"},
    {SENSORY, "实际操作+案例分析"},
    {INTUITIVE, "思维导图+未来规划"},
    {THINKING, "逻辑推理+问题解决"},
    {FEELING, "情感共鸣+合作学习"},
    {JUDGING, "时间管理+目标设定"},
    {PERCEIVING, "灵活应变+开放讨论"}
};
 

vector<Student> available_students = {
    // 普通学生
    {"小明", 1, "数学", 1, 50, EXTROVERTED, 3, "数学天才"},
    {"小红", 2, "英语", 2, 80, INTROVERTED, 4, "语言天赋"},
    {"小刚", 3, "物理", 3, 120, THINKING, 2, "逻辑思维"},
    {"李华", 4, "编程", 4, 200, INTUITIVE, 5, "编程高手"},
    
    // 特殊学生 - 带有特殊剧情
    {"张伟", 2, "化学", 3, 100, SENSORY, 3, "实验能手"},
    {"王芳", 3, "美术", 2, 90, FEELING, 4, "艺术天赋"},
    {"赵雷", 4, "经济学", 4, 180, JUDGING, 3, "商业头脑"},
    {"林雪", 1, "音乐", 1, 60, PERCEIVING, 2, "音乐天才"},
    
    // 隐藏学生 - 稀有角色
    {"神秘少年", 3, "综合", 5, 300, INTUITIVE, 6, "全能天才"},
    {"欧阳老师", 4, "哲学", 5, 250, THINKING, 4, "智慧传承"}
};


int learn_subject(){
	Sleep(100);
	while(1) {
		if(pdbj(1,1,1,20,3,"图书馆自学:免费")) {
			return 1;
		}
		if(pdbj(2,1,1,20,2,"必修课:20元,专业导师")) {
			return 2;
		}
		if(pdbj(3,1,1,20,1,"选修课:增加更多知识")) {
			return 3;
		}
	}
}

void saveGame() {
	ofstream saveFile("game_save.dat");
	saveFile << money << endl;
	saveFile << tired << endl;
	saveFile << knowledge << endl;
	saveFile << work << endl;
	saveFile << bank_savings << endl;
	saveFile << bank_loan << endl;
	saveFile << loan_term << endl;
	saveFile << interest_rate << endl;
	saveFile << loan_rate << endl;
	saveFile.close();
	cout << "游戏数据已保存!" << endl;
	Sleep(1000);
}

void loadGame() {
	ifstream saveFile("game_save.dat");
	if (saveFile.is_open()) {
		saveFile >> money;
		saveFile >> tired;
		saveFile >> knowledge;
		saveFile >> work;
		saveFile >> bank_savings;
		saveFile >> bank_loan;
		saveFile >> loan_term;
		saveFile >> interest_rate;
		saveFile >> loan_rate;
	}
	saveFile.close();
	cout << "游戏数据已加载!" << endl;
	Sleep(1000);
}
//---银行
void cunkuan() {
	system("cls");

	cout << "=== 存款服务 ===" << endl;
	cout << "当前现金:" << money << "元" << endl;
	cout << "银行存款:" << bank_savings << "元" << endl;
	cout << "请输入存款金额(按ESC取消):" << endl;

	int deposit_amount = 0;
	string input_str;

	while(1) {
		ydgb(5,1);
		cout << "存款金额:";
		getline(cin, input_str);

		if(input_str == "") {
			continue;
		}

		if(axj(VK_ESCAPE)) {
			return;
		}

		try {
			deposit_amount = stod(input_str);

			if(deposit_amount <= 0) {
				cout << "存款金额必须大于0!" << endl;
				Sleep(1000);
				system("cls");
				cout << "=== 存款服务 ===" << endl;
				cout << "当前现金:" << money << "元" << endl;
				cout << "请输入存款金额(按ESC取消):" << endl;
				continue;
			}

			if(deposit_amount > money) {
				cout << "现金不足,无法存款!" << endl;
				Sleep(1000);
				system("cls");
				cout << "=== 存款服务 ===" << endl;
				cout << "当前现金:" << money << "元" << endl;
				cout << "请输入存款金额(按ESC取消):" << endl;
				continue;
			}

			break;
		} catch(...) {
			cout << "请输入有效的数字!" << endl;
			Sleep(1000);
			system("cls");
			cout << "=== 存款服务 ===" << endl;
			cout << "当前现金:" << money << "元" << endl;
			cout << "请输入存款金额(按ESC取消):" << endl;
		}
	}

	money -= deposit_amount;
	bank_savings += deposit_amount;

	system("cls");
	cout << "=== 存款成功 ===" << endl;
	cout << "存款金额:" << deposit_amount << "元" << endl;
	cout << "当前现金:" << money << "元" << endl;
	cout << "银行存款:" << bank_savings << "元" << endl;
	cout << "预计年收益:" << (bank_savings * interest_rate) << "元" << endl;

	Sleep(3000);
}

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

	cout << "=== 取款服务 ===" << endl;
	cout << "当前现金:" << money << "元" << endl;
	cout << "银行存款:" << bank_savings << "元" << endl;
	cout << "请输入取款金额(按ESC取消):" << endl;

	int withdraw_amount = 0;
	string input_str;

	while(1) {
		ydgb(5,1);
		cout << "取款金额:";
		getline(cin, input_str);

		if(input_str == "") {
			continue;
		}

		if(axj(VK_ESCAPE)) {
			return;
		}

		try {
			withdraw_amount = stod(input_str);

			if(withdraw_amount <= 0) {
				cout << "取款金额必须大于0!" << endl;
				Sleep(1000);
				system("cls");
				cout << "=== 取款服务 ===" << endl;
				cout << "当前现金:" << money << "元" << endl;
				cout << "请输入取款金额(按ESC取消):" << endl;
				continue;
			}

			if(withdraw_amount > bank_savings) {
				cout << "存款不足,无法取款!" << endl;
				Sleep(1000);
				system("cls");
				cout << "=== 取款服务 ===" << endl;
				cout << "当前现金:" << money << "元" << endl;
				cout << "请输入取款金额(按ESC取消):" << endl;
				continue;
			}

			break;
		} catch(...) {
			cout << "请输入有效的数字!" << endl;
			Sleep(1000);
			system("cls");
			cout << "=== 取款服务 ===" << endl;
			cout << "当前现金:" << money << "元" << endl;
			cout << "请输入取款金额(按ESC取消):" << endl;
		}
	}

	bank_savings -= withdraw_amount;
	money += withdraw_amount;

	system("cls");
	cout << "=== 取款成功 ===" << endl;
	cout << "取款金额:" << withdraw_amount << "元" << endl;
	cout << "当前现金:" << money << "元" << endl;
	cout << "银行存款:" << bank_savings << "元" << endl;

	Sleep(3000);
}

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

	if(bank_loan > 0) {
		cout << "您已有未还清的贷款,请先还款!" << endl;
		Sleep(2000);
		return;
	}

	cout << "=== 贷款服务 ===" << endl;
	cout << "贷款利率:年化" << (loan_rate * 100) << "%" << endl;
	cout << "最大可贷款额度:" << (money * 5) << "元" << endl;
	cout << "请输入贷款金额(按ESC取消):" << endl;

	int loan_amount = 0;
	string input_str;

	while(1) {
		ydgb(5,1);
		cout << "贷款金额:";
		getline(cin, input_str);

		if(input_str == "") {
			continue;
		}

		if(axj(VK_ESCAPE)) {
			return;
		}

		try {
			loan_amount = stod(input_str);

			if(loan_amount <= 0) {
				cout << "贷款金额必须大于0!" << endl;
				Sleep(1000);
				system("cls");
				cout << "=== 贷款服务 ===" << endl;
				cout << "最大可贷款额度:" << (money * 5) << "元" << endl;
				cout << "请输入贷款金额(按ESC取消):" << endl;
				continue;
			}

			if(loan_amount > (money * 5)) {
				cout << "贷款金额超过最大额度!" << endl;
				Sleep(1000);
				system("cls");
				cout << "=== 贷款服务 ===" << endl;
				cout << "最大可贷款额度:" << (money * 5) << "元" << endl;
				cout << "请输入贷款金额(按ESC取消):" << endl;
				continue;
			}

			// 确认贷款
			system("cls");
			cout << "=== 贷款确认 ===" << endl;
			cout << "贷款金额:" << loan_amount << "元" << endl;
			cout << "年利息:" << (loan_amount * loan_rate) << "元" << endl;
			cout << "是否确认申请贷款?(Y/N)" << endl;

			char confirm;
			cin >> confirm;

			if(confirm == 'Y' || confirm == 'y') {
				bank_loan = loan_amount;
				money += loan_amount;
				loan_term = 365; // 1年期限

				cout << "贷款申请成功!" << endl;
				cout << "请记得按时还款,逾期会产生额外费用!" << endl;
			} else {
				cout << "贷款申请已取消" << endl;
			}

			break;
		} catch(...) {
			cout << "请输入有效的数字!" << endl;
			Sleep(1000);
			system("cls");
			cout << "=== 贷款服务 ===" << endl;
			cout << "请输入贷款金额(按ESC取消):" << endl;
		}
	}

	Sleep(3000);
}

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

	if(bank_loan <= 0) {
		cout << "您当前没有需要还款的贷款!" << endl;
		Sleep(2000);
		return;
	}

	cout << "=== 还款服务 ===" << endl;
	cout << "当前贷款:" << bank_loan << "元" << endl;
	cout << "请输入还款金额(按ESC取消):" << endl;

	int repay_amount = 0;
	string input_str;

	while(1) {
		ydgb(5,1);
		cout << "还款金额:";
		getline(cin, input_str);

		if(input_str == "") {
			continue;
		}

		if(axj(VK_ESCAPE)) {
			return;
		}

		try {
			repay_amount = stod(input_str);

			if(repay_amount <= 0) {
				cout << "还款金额必须大于0!" << endl;
				Sleep(1000);
				system("cls");
				cout << "=== 还款服务 ===" << endl;
				cout << "请输入还款金额(按ESC取消):" << endl;
				continue;
			}

			if(repay_amount > money) {
				cout << "现金不足,无法还款!" << endl;
				Sleep(1000);
				system("cls");
				cout << "=== 还款服务 ===" << endl;
				cout << "请输入还款金额(按ESC取消):" << endl;
				continue;
			}

			if(repay_amount > bank_loan) {
				cout << "还款金额超过贷款总额!" << endl;
				Sleep(1000);
				system("cls");
				cout << "=== 还款服务 ===" << endl;
				cout << "请输入还款金额(按ESC取消):" << endl;
				continue;
			}

			money -= repay_amount;
			bank_loan -= repay_amount;

			system("cls");
			cout << "=== 还款成功 ===" << endl;
			cout << "还款金额:" << repay_amount << "元" << endl;
			cout << "剩余贷款:" << bank_loan << "元" << endl;
			cout << "当前现金:" << money << "元" << endl;

			if(bank_loan == 0) {
				cout << "恭喜您已还清所有贷款!" << endl;
			}

			break;
		} catch(...) {
			cout << "请输入有效的数字!" << endl;
			Sleep(1000);
			system("cls");
			cout << "=== 还款服务 ===" << endl;
			cout << "请输入还款金额(按ESC取消):" << endl;
		}
	}

	Sleep(3000);
}

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

	cout << "=== 银行账户详情 ===" << endl;
	cout << "现金余额:" << money << "元" << endl;
	cout << "银行存款:" << bank_savings << "元" << endl;
	cout << "银行贷款:" << bank_loan << "元" << endl;
	cout << "存款利率:年化" << (interest_rate * 100) << "%" << endl;
	cout << "贷款利率:年化" << (loan_rate * 100) << "%" << endl;
	cout << endl;

// 计算预计收益
	int yearly_interest = bank_savings * interest_rate;
	int loan_interest = bank_loan * loan_rate;

	cout << "存款年收益:" << yearly_interest << "元" << endl;
	cout << "贷款年利息:" << loan_interest << "元" << endl;
	cout << endl;

	if(bank_savings > 0) {
		cout << "每日存款收益:" << (yearly_interest / 365) << "元" << endl;
	}
	Sleep(5000);
}

void calculate_daily_interest() {
	// 每日存款利息
	if(bank_savings > 0) {
		int daily_interest = bank_savings * interest_rate / 365;
		bank_savings += daily_interest;

		cout << "今日存款利息:" << daily_interest << "元" << endl;
	}

	// 每日贷款利息
	if(bank_loan > 0) {
		int daily_loan_interest = bank_loan * loan_rate / 365;
		bank_loan += daily_loan_interest;

		cout << "今日贷款利息:" << daily_loan_interest << "元" << endl;
	}
}

void update_bank_rates() {
	// 根据存款金额调整利率
	if(bank_savings < 1000) {
		interest_rate = 0.015; // 1.5%
	} else if(bank_savings < 10000) {
		interest_rate = 0.02;  // 2.0%
	} else if(bank_savings < 50000) {
		interest_rate = 0.025; // 2.5%
	} else {
		interest_rate = 0.03;  // 3.0%
	}

	// 贷款利率固定比存款利率高
	loan_rate = interest_rate + 0.05; // 贷款利率比存款利率高5%
}



void bank() {
	system("cls");
	Sleep(1000);
	cout << "=== 莫尔德帝国银行 ===" << endl;
	cout << "当前现金:" << money << "元" << endl;
	cout << "银行存款:" << bank_savings << "元" << endl;
	if(bank_loan > 0) {
		cout << "银行贷款:" << bank_loan << "元" << endl;
	}
	cout << "存款利率:年化" << (interest_rate * 100) << "%" << endl;
	if(bank_loan > 0) {
		cout << "贷款利率:年化" << (loan_rate * 100) << "%" << endl;
	}
	cout << "请选择银行服务:" << endl;
	int selected_option = 0;
	while(1) {
		// 显示选项按钮
		if(pdbj(7,1,1,15,2,"1. 存款")) {
			selected_option = 1;
			break;
		}
		if(pdbj(8,1,1,15,3,"2. 取款")) {
			selected_option = 2;
			break;
		}
		if(pdbj(9,1,1,15,4,"3. 申请贷款")) {
			selected_option = 3;
			break;
		}
		if(pdbj(10,1,1,15,5,"4. 还款")) {
			selected_option = 4;
			break;
		}
		if(pdbj(11,1,1,15,6,"5. 账户详情")) {
			selected_option = 5;
			break;
		}
		if(axj(VK_ESCAPE)) {
			return;
		}
	}

	// 处理选择的银行服务
	switch(selected_option) {
		case 1: // 存款
			cunkuan();
			break;

		case 2: // 取款
			qukuan();
			break;

		case 3: // 申请贷款
			shenqingdaikuan();
			break;

		case 4: // 还款
			huankuan();
			break;

		case 5: // 查看账户详情
			zhanghuxiangqing();
			break;
	}

}
// ---
int job() {
    Sleep(100);
    while(1) {
        if(pdbj(1,1,1,33,6,"工地基础材料搬运工,多劳多得,无限制")) {
            return 1;
        }
        if(pdbj(2,1,1,33,1,"保鲜膜生产制作工人,多劳多得,无限制")) {
            return 2;
        }
        if(pdbj(3,1,1,33,7,"家教,要求专项能力,收益更高")) {
            // 检查是否有可用的专项家教资格
            if(can_teach_math || can_teach_language || can_teach_science || can_teach_art || can_teach_programming) {
                return 3;
            } else {
                cout << "需要先学习专项能力才能从事家教!";
                Sleep(1000);
                return 0;
            }
        }
        if(pdbj(4,1,1,33,8,"房地产开发商,需要100万启动资金")) {
            if(money >= 1000000) {
                return 4;
            } else {
                cout << "资金不足,无法进入房地产市场!";
                Sleep(1000);
                return 0;
            }
        }
    }
}


//学习 
void check_unlocked_teaching_types() {
    // 解锁数学家教
    if(math_ability >= 10 && !can_teach_math) {
        can_teach_math = true;
        cout << "恭喜!您已获取高等数学教师资格证!" << endl;
    }
    
    // 解锁语言家教
    if(language_ability >= 10 && !can_teach_language) {
        can_teach_language = true;
        cout << "恭喜!您已解锁英语文学教师资格证!" << endl;
    }
    
    // 解锁科学家教
    if(science_ability >= 10 && !can_teach_science) {
        can_teach_science = true;
        cout << "恭喜!您已解锁物理化学教师资格证!" << endl;
    }
    
    // 解锁艺术家教
    if(art_ability >= 10 && !can_teach_art) {
        can_teach_art = true;
        cout << "恭喜!您已解锁美术音乐教师资格证!" << endl;
    }
    
    // 解锁编程家教
    if(programming_ability >= 7 && !can_teach_programming) {
        can_teach_programming = true;
        cout << "恭喜!您已解锁计算机编程教师资格证!" << endl;
    }
}

void study_process(int subject) {
    system("cls");
    int study_points = 0;
    bool completed = false;
    
    // 选修课变量
    int elective_course = 0;
    string subject_name, study_content;
    int cost_per_hour, points_per_hour;
    int energy_cost;
    int ability_type = 0; // 1:数学, 2:语言, 3:科学, 4:艺术, 5:编程, 6:经济

    switch(subject) {
        case 1: // 自学模式
            subject_name = "自学";
            study_content = "《论语》,《离骚》,《相对论》";
            cost_per_hour = 0.0;
            points_per_hour = 1.0;
            energy_cost = 5;
            ability_type = 0;
            break;
            
        case 2: // 必修课模式
            subject_name = "必修课";
            study_content = "∫x2dx = x3/3 + C   lim(x→∞)(1+1/x)? = e";
            cost_per_hour = 20.0;
            points_per_hour = 3.0;
            energy_cost = 2;
            ability_type = 0;
            break;
            
        case 3: // 选修课模式
        	Sleep(1000);
            elective_course = select_elective_course();
            
            switch(elective_course) {
                case 1: // 高等数学
                    subject_name = "高等数学";
                    study_content = "微积分、线性代数、概率统计";
                    cost_per_hour = 15.0;
                    points_per_hour = 2.5;
                    energy_cost = 3;
                    ability_type = 1;
                    break;
                    
                case 2: // 英语文学
                    subject_name = "英语文学";
                    study_content = "莎士比亚作品、英语语法、写作技巧";
                    cost_per_hour = 18.0;
                    points_per_hour = 2.8;
                    energy_cost = 3;
                    ability_type = 2;
                    break;
                    
                case 3: // 物理化学
                    subject_name = "物理化学";
                    study_content = "牛顿定律、化学反应、实验操作";
                    cost_per_hour = 20.0;
                    points_per_hour = 3.0;
                    energy_cost = 4;
                    ability_type = 3;
                    break;
                    
                case 4: // 美术音乐
                    subject_name = "美术音乐";
                    study_content = "绘画技巧、音乐理论、艺术鉴赏";
                    cost_per_hour = 25.0;
                    points_per_hour = 2.0;
                    energy_cost = 2;
                    ability_type = 4;
                    break;
                    
                case 5: // 计算机编程
                    subject_name = "计算机编程";
                    study_content = "C++语法、算法设计、项目开发";
                    cost_per_hour = 30.0;
                    points_per_hour = 3.5;
                    energy_cost = 4;
                    ability_type = 5;
                    break;
                    
                case 6: // 经济学原理
                    subject_name = "经济学原理";
                    study_content = "供需关系、市场分析、投资策略";
                    cost_per_hour = 22.0;
                    points_per_hour = 2.2;
                    energy_cost = 3;
                    ability_type = 6;
                    break;
                    
                default:
                    return;
            }
            break;
            
        default:
            return;
    }
	system("cls");
    cout << "正在学习:" << subject_name << endl;
    cout << "学习内容:" << study_content << endl;
    if(cost_per_hour > 0) {
        cout << "每小时费用:" << cost_per_hour << "元" << endl;
    } else {
        cout << "免费学习" << endl;
    }
    cout << "按空格键学习,ESC键结束" << endl;

    while(1) {
        if(axj(VK_SPACE)) {
            if(money >= cost_per_hour) {
                if(cost_per_hour > 0) {
                    money -= cost_per_hour;
                }
                study_points += points_per_hour;
                tired -= energy_cost;
                
                cout << "学习进度:" << study_points << " 知识+" << points_per_hour;
                
                // 根据选修课类型增加专项能力
                if(ability_type > 0 && study_points % 2 == 0) {
                    switch(ability_type) {
                        case 1: // 数学能力
                            math_ability++;
                            cout << " 数学能力+" << 1;
                            break;
                                
                        case 2: // 语言能力
                            language_ability++;
                            cout << " 语言能力+" << 1;
                            break;
                                
                        case 3: // 科学能力
                            science_ability++;
                            cout << " 科学能力+" << 1;
                            break;
                                
                        case 4: // 艺术能力
                            art_ability++;
                            cout << " 艺术能力+" << 1;
                            break;
                                
                        case 5: // 编程能力
                            programming_ability++;
                            cout << " 编程能力+" << 1;
                            break;
                                
                        case 6: // 经济能力
                            economics_ability++;
                            cout << " 经济能力+" << 1;
                            break;
                    }
                }
                cout << endl;
                Sleep(500);
            } else {
                cout << "资金不足,无法继续学习!" << endl;
                Sleep(1000);
                break;
            }
        }

        if(axj(VK_ESCAPE)) {
            break;
        }

        if(tired <= 0) {
            cout << "太累了,需要休息!" << endl;
            Sleep(1000);
            break;
        }

        if(study_points >= 10) {
            completed = true;
            break;
        }
    }

    if(completed) {
        knowledge += study_points;
        cout << "恭喜完成本次学习!知识水平+" << study_points << endl;
        check_unlocked_teaching_types();
    } else {
        knowledge += study_points * 0.5;
        cout << "学习结束,获得知识:" << study_points * 0.5 << endl;
    }
    Sleep(2000);
}


void knowledge_level(int knowledge) {
	if(knowledge < 10) {
		cout << "初中";
	} else if(knowledge < 30) {
		cout << "高中";
	} else if(knowledge < 100) {
		cout << "大学";
	} else if(knowledge < 150) {
		cout << "研究生";
	} else {
		cout << "硕士";
	}
}



// 

void gongchang() {
	int zs=0;
	while(1) {
		ydgb(1,1);
		cout<<"=====把传送带上的东西做完!"<<endl;
		if(pdbj(1,1,1,1,1,"=")) {
			while(1) {
				system("cls");
				ydgb(1,1);
				cout<<"=====";
				system("cls");
				if(pdbj(1,2,2,2,1,"=")) {
					while(1) {
						system("cls");
						ydgb(1,1);
						cout<<"=====";
						if(pdbj(1,3,3,3,1,"=")) {
							while(1) {
								system("cls");
								ydgb(1,1);
								cout<<"=====";
								if(pdbj(1,4,4,4,1,"=")) {
									while(1) {
										system("cls");
										ydgb(1,1);
										cout<<"=====";
										if(pdbj(1,5,5,5,1,"=")) {
											break;
										}
									}
									break;
								}
							}
							break;
						}
					}
					break;
				}
			}
			zs++;
			tired--;
		}
		cout<<endl;
		cout<<"已制作保鲜膜:"<<zs;
		if(pdbj(3,1,1,4,15,"下工")) {
			break;
		}
		if(tired<=0) {
			cout<<"饿倒了";
			Sleep(1000);
			break;
		}
	}
	system("cls");
	cout<<"本次工资:"<<zs;
	money+=zs;
	Sleep(1000);
	return ;
}

void banzhuan() {
	cout<<"这不就是搬砖吗?";
	Sleep(1000);
	system("cls");
	bool fl=1;
	int zs=0;
	int h,l;
	while(1) {
		ydgb(1,1);
		cout<<"___________________________________________________"<<endl;
		cout<<"|                                                 |"<<endl;
		cout<<"|                                                 |"<<endl;
		cout<<"|                                                 |"<<endl;
		cout<<"|                                                 |"<<endl;
		cout<<"|                                                 |"<<endl;
		cout<<"|                                                 |"<<endl;
		cout<<"|                                                 |"<<endl;
		cout<<"|                                                 |"<<endl;
		cout<<"|                                                 |"<<endl;
		cout<<"|                                                 |"<<endl;
		cout<<"|_________________________________________________|"<<endl;
		cout<<"       高高兴兴上班,平平安安回家     已搬砖数:"<<zs;
		if(fl) {
			h=rand()%30+2;
			l=rand()%10+2;
			fl=0;
		}
		const int h1=h;
		const int l1=l;
		if(pdbj(l1,h1,h1,h1+2,6,"砖")) {
			zs++;
			fl=1;
			tired--;
			system("cls");
			continue;
		}
		if(pdbj(16,1,1,4,15,"下工")) {
			break;
		}
		if(tired==0) {
			system("cls");
			cout<<"你快饿扁了!"<<endl;
			break;
		}
	}
	Sleep(500);
	system("cls");
	cout<<"本次工资:"<<zs;
	money+=zs;
	Sleep(500);
	return ;
}

void jiajiao() {
    system("cls");
    
    if(tired < 20) {
        cout << "太累了,无法进行家教工作!" << endl;
        Sleep(1000);
        return;
    }

    // 随机选择学生(稀有学生有较低概率)
    int student_index;
    int rarity_roll = rand() % 100;
    
    if(rarity_roll < 5) { // 5%概率遇到隐藏学生
        student_index = 6; // 神秘少年
    } else if(rarity_roll < 15) { // 10%概率遇到特殊学生
        student_index = 4 + rand() % 2; // 张伟或王芳
    } else {
        student_index = rand() % 4; // 普通学生
    }
    
    Student current_student = available_students[student_index];
    
    cout << "=== 家教工作系统 ===" << endl;
    cout << "学生信息:" << endl;
    cout << "姓名:" << current_student.name << endl;
    cout << "年级:";
    switch(current_student.grade_level) {
        case 1: cout << "小学"; break;
        case 2: cout << "初中"; break;
        case 3: cout << "高中"; break;
        case 4: cout << "大学"; break;
    }
    cout << endl;
    cout << "科目:" << current_student.subject << endl;
    
    // 显示学生性格
    cout << "性格特点:";
    switch(current_student.personality) {
        case EXTROVERTED: cout << "外向活泼,喜欢互动"; break;
        case INTROVERTED: cout << "内向安静,需要引导"; break;
        case SENSORY: cout << "注重实际,喜欢动手"; break;
        case INTUITIVE: cout << "富有想象力,善于思考"; break;
        case THINKING: cout << "逻辑性强,追求真理"; break;
        case FEELING: cout << "情感丰富,重视和谐"; break;
        case JUDGING: cout << "有条理,喜欢计划"; break;
        case PERCEIVING: cout << "灵活多变,适应性强"; break;
    }
    cout << endl;
    
    if(!current_student.special_ability.empty()) {
        cout << "特殊能力:" << current_student.special_ability << endl;
    }
    
    // 显示可用的家教类型
    vector<string> available_courses;
    vector<int> course_types;
    
    // 基础数学家教
    available_courses.push_back("初中数学家教");
    course_types.push_back(0);
    
    // 专项家教类型
    if(can_teach_math) {
        available_courses.push_back("高等数学家教");
        course_types.push_back(1);
    }
    
    if(can_teach_language) {
        available_courses.push_back("英语文学家教");
        course_types.push_back(2);
    }
    
    if(can_teach_science) {
        available_courses.push_back("物理化学家教");
        course_types.push_back(3);
    }
    
    if(can_teach_art) {
        available_courses.push_back("美术音乐家教");
        course_types.push_back(4);
    }
    
    if(can_teach_programming) {
        available_courses.push_back("计算机编程家教");
        course_types.push_back(5);
    }
    
    // 显示可用选项
    for(int i = 0; i < available_courses.size(); i++) {
        cout << (i+1) << ". " << available_courses[i] << endl;
    }
    
    cout << "按ESC返回" << endl;
    
    int selected_course = 0;
    int y_pos = 10;
    
    while(1) {
        for(int i = 0; i < available_courses.size(); i++) {
            if(pdbj(y_pos+i, 1, 1, 25, 2+i, (to_string(i+1) + ". " + available_courses[i])) {
                selected_course = course_types[i];
                break;
            }
        }
        
        if(axj(VK_ESCAPE)) {
            return;
        }
        
        if(selected_course > 0) {
            break;
        }
    }
    
    system("cls");
    
    // 根据学生年级调整教学难度和收益
    double teaching_multiplier = 1.0;
    switch(current_student.grade_level) {
        case 1: teaching_multiplier = 0.8; break;  // 小学
        case 2: teaching_multiplier = 1.0; break;  // 初中
        case 3: teaching_multiplier = 1.3; break;  // 高中
        case 4: teaching_multiplier = 1.8; break;  // 大学
    }
    
    cout << "=== 家教工作开始 ===" << endl;
    cout << "学生:" << current_student.name << endl;
    cout << "年级:";
    switch(current_student.grade_level) {
        case 1: cout << "小学"; break;
        case 2: cout << "初中"; break;
        case 3: cout << "高中"; break;
        case 4: cout << "大学"; break;
    }
    cout << endl;
    cout << "科目:" << current_student.subject << endl;
    
    // 根据性格提供教学策略建议
    cout << "教学策略建议:";
    switch(current_student.personality) {
        case EXTROVERTED: 
            cout << "采用互动讨论和小组合作方式";
            break;
        case INTROVERTED:
            cout << "提供独立思考时间,逐步引导";
            break;
        case SENSORY:
            cout << "注重实际操作和案例分析";
            break;
        case INTUITIVE:
            cout << "使用思维导图和未来规划";
            break;
        case THINKING:
            cout << "强化逻辑推理和问题解决";
            break;
        case FEELING:
            cout << "建立情感共鸣,采用合作学习";
            break;
        case JUDGING:
            cout << "培养时间管理和目标设定";
            break;
        case PERCEIVING:
            cout << "保持灵活应变,鼓励开放讨论";
            break;
    }
    cout << endl;
    
    cout << "按空格键进行教学,ESC键结束" << endl;
    
    int teaching_progress = 0;
    int teaching_quality = 0;
    bool completed = false;
    bool special_event_triggered = false;
    
    // 根据知识水平决定基础教学质量
    if(knowledge >= 100) {
        teaching_quality = 3; // 教授水平
    } else if(knowledge >= 50) {
        teaching_quality = 2; // 研究生水平
    } else if(knowledge >= 30) {
        teaching_quality = 1; // 大学水平
    } else {
        teaching_quality = 0; // 基础水平
    }
    
    // 特殊剧情触发条件
    if(current_student.name == "神秘少年" || current_student.name == "欧阳老师") {
        special_event_triggered = true;
    }
    
    while(1) {
        if(axj(VK_SPACE)) {
            // 基础进度增加
            teaching_progress += (5 + teaching_quality);
            tired -= (2 + current_student.difficulty);
            
            cout << "教学进度:" << teaching_progress;
            
            // 根据学生性格显示不同反馈
            switch(current_student.personality) {
                case EXTROVERTED:
                    cout << " 学生:老师,这个游戏真好玩!";
                    break;
                case INTROVERTED:
                    cout << " 学生:嗯...我懂了";
                    break;
                case SENSORY:
                    cout << " 学生:让我试试看!";
                    break;
                case INTUITIVE:
                    cout << " 学生:哇,原来是这样!";
                    break;
                case THINKING:
                    cout << " 学生:这个逻辑我明白了";
                    break;
                case FEELING:
                    cout << " 学生:老师您真好!";
                    break;
                case JUDGING:
                    cout << " 学生:我会按照计划学习的";
                    break;
                case PERCEIVING:
                    cout << " 学生:这个新方法很有趣!";
                    break;
            }
            
            // 特殊剧情触发
            if(!special_event_triggered && teaching_progress >= 30) {
                special_event_triggered = true;
                
                // 神秘少年特殊剧情
                if(current_student.name == "神秘少年") {
                    cout << endl;
                    cout << "&zwnj;*** 特殊剧情:神秘少年的挑战 ***&zwnj;" << endl;
                    cout << "神秘少年突然说:老师,我们来玩个游戏吧!" << endl;
                    cout << "如果你能解答我的问题,我会给你双倍报酬!" << endl;
                    
                    // 玩家选择:是否接受挑战
                    cout << "1. 接受挑战(风险高,收益高)" << endl;
                    cout << "2. 继续正常教学(稳定收益)" << endl;
                    
                    int challenge_choice = 0;
                    while(challenge_choice == 0) {
                if(pdbj(12,1,1,20,10,"1. 接受挑战")) {
                    challenge_choice = 1;
                }
                if(pdbj(13,1,1,20,11,"2. 继续教学")) {
                    challenge_choice = 2;
                }
            }
            
            if(challenge_choice == 1) {
                // 挑战成功概率基于玩家知识水平
                int challenge_success_rate = min(90, knowledge);
                int challenge_roll = rand() % 100;
                
                if(challenge_roll < challenge_success_rate) {
                    cout << "恭喜!你成功解答了神秘少年的问题!" << endl;
                    teaching_quality += 2; // 大幅提升教学质量
                } else {
                    cout << "很遗憾,你未能解答神秘少年的问题。" << endl;
                }
            }
            
            cout << endl;
            Sleep(300);
        }
        
        if(axj(VK_ESCAPE)) {
            break;
        }
        
        if(tired <= 0) {
            cout << "体力耗尽,无法继续教学!" << endl;
            Sleep(1000);
            break;
        }
        
        if(teaching_progress >= 100) {
            completed = true;
            break;
        }
    }
    
    // 计算报酬
    int base_salary = current_student.base_pay;
    int quality_bonus = teaching_quality * 30;
    int completion_bonus = completed ? 80 : 0;
    
    // 特殊能力加成
    int special_bonus = 0;
    if(!current_student.special_ability.empty()) {
        special_bonus = 0;
    } else {
        // 根据特殊能力给予额外奖励
        if(current_student.special_ability == "数学天才") {
            special_bonus = 60;
        } else if(current_student.special_ability == "语言天赋") {
            special_bonus = 50;
        } else if(current_student.special_ability == "编程高手") {
            special_bonus = 100;
        }
    }
    
    int total_income = (base_salary + quality_bonus + completion_bonus + special_bonus) * teaching_multiplier;
    
    money += total_income;
    
    system("cls");
    cout << "=== 家教工作结束 ===" << endl;
    cout << "学生:" << current_student.name << endl;
    cout << "基础工资:" << base_salary << "元" << endl;
    if(quality_bonus > 0) {
        cout << "教学质量奖励:" << quality_bonus << "元" << endl;
    }
    if(completion_bonus > 0) {
        cout << "完成课时奖励:" << completion_bonus << "元" << endl;
    }
    if(special_bonus > 0) {
        cout << "特殊能力奖励:" << special_bonus << "元" << endl;
    }
    cout << "总收入:" << total_income << "元" << endl;
    cout << "当前余额:" << money << "元" << endl;
    
    // 知识水平提升(基于教学难度和学生特殊能力)
    if(completed) {
        int knowledge_gain = 2 + current_student.difficulty;
        if(!current_student.special_ability.empty()) {
            knowledge_gain += 1; // 特殊学生提供更多经验
        }
        knowledge += knowledge_gain;
        cout << "教学相长,知识水平+" << knowledge_gain << endl;
    }
    
    // 欧阳老师特殊剧情 - 智慧传承
    if(current_student.name == "欧阳老师" && completed) {
            cout << "&zwnj;*** 特殊奖励:智慧传承 ***&zwnj;" << endl;
            cout << "欧阳老师对你说:年轻人,你的教学很有潜力。" << endl;
            cout << "作为回报,我传授你一些人生智慧。" << endl;
            knowledge += 10; // 大量知识提升
            cout << "获得欧阳老师的智慧传承,知识水平+10!" << endl;
        }
    
    Sleep(3000);
}



void fangdichan() {
    system("cls");
    Sleep(100);
    // 经济限制检查
    if(money < 1000000) {
        cout << "=== 资金不足 ===" << endl;
        cout << "当前现金:" << money << "元" << endl;
        cout << "房地产开发商需要100万启动资金!" << endl;
        Sleep(3000);
        return;
    }
    
    cout << "=== 房地产开发商工作 ===" << endl;
    cout << "启动资金:100万元" << endl;
    cout << "当前现金:" << money << "元" << endl;
    cout << "请选择开发项目:" << endl;
    cout << "1. 住宅小区开发(投资50万,收益80万)" << endl;
    cout << "2. 商业中心建设(投资80万,收益120万)" << endl;
    cout << "3. 豪华别墅项目(投资150万,收益200万)" << endl;
    cout << "按ESC返回" << endl;
    
    int selected_project = 0;
    
    while(1) {
        if(pdbj(5,1,1,25,2,"1. 住宅小区开发")) {
            selected_project = 1;
            break;
        }
        if(pdbj(6,1,1,25,3,"2. 商业中心建设")) {
            selected_project = 2;
            break;
        }
        if(pdbj(7,1,1,25,4,"3. 豪华别墅项目")) {
            selected_project = 3;
            break;
        }
        if(axj(VK_ESCAPE)) {
            return;
        }
    }
    
    // 处理选择的开发项目
    int investment = 0;
    int  profit = 0;
    string project_name;
    
    switch(selected_project) {
        case 1: // 住宅小区
            investment = 500000;
            profit = 800000;
            project_name = "住宅小区开发";
            break;
            
        case 2: // 商业中心
            investment = 800000;
            profit = 1200000;
            project_name = "商业中心建设";
            break;
            
        case 3: // 豪华别墅
            investment = 1500000;
            project_name = "豪华别墅项目";
            break;
    }
    
    // 二次资金检查
    if(money < investment) {
        cout << "资金不足,无法启动该项目!" << endl;
        Sleep(2000);
        return;
    }
    
    // 项目执行过程
    system("cls");
    cout << "=== " << project_name << " ===" << endl;
    cout << "项目投资:" << investment << "元" << endl;
    cout << "预计收益:" << profit << "元" << endl;
    cout << "按空格键推进项目进度" << endl;
    
    int progress = 0;
    bool project_success = true;
    
    while(1) {
        if(axj(VK_SPACE)) {
            progress += 10;
            tired -= 5;
            
            cout << "项目进度:" << progress << "%" << endl;
            
            // 随机事件:可能影响项目收益
            int random_event = rand() % 100;
            if(random_event < 10) { // 10%概率遇到问题
                cout << "??  遇到施工问题,需要额外处理!" << endl;
            }
            
            Sleep(500);
        }
        
        if(axj(VK_ESCAPE)) {
            project_success = false;
            break;
        }
        
        if(tired <= 20) {
            cout << "体力不足,无法继续推进项目!" << endl;
            project_success = false;
            Sleep(1000);
            break;
        }
        
        if(progress >= 100) {
            break;
        }
    }
    
    // 结算收益
    if(project_success) {
        money -= investment; // 扣除投资
        money += profit;     // 获得收益
        knowledge += 5;      // 经验积累
        
        system("cls");
        cout << "=== 项目完成 ===" << endl;
        cout << "项目名称:" << project_name << endl;
        cout << "投资金额:" << investment << "元" << endl;
        cout << "收益金额:" << profit << "元" << endl;
        cout << "净利润:" << (profit - investment) << "元" << endl;
        cout << "知识水平+5" << endl;
    } else {
        cout << "项目中断,投资损失!" << endl;
        money -= investment * 0.3; // 损失30%投资
    }
    
    Sleep(3000);
}

//民以食为天 

void bdje(int tired) {
	if(tired < 10) {
		cout << "极度饥饿,急需进食!";
	} else if(tired < 30) {
		cout << "非常饥饿,需要吃饭";
	} else if(tired < 50) {
		cout << "比较饥饿";
	} else if(tired == 50) {
		cout << "肚子不算饿";
	} else if(tired < 80) {
		cout << "饱了";
	} else if(tired < 90) {
		cout << "很饱";
	} else {
		cout << "太撑了,不能再吃了!";
	}
}

void chifan() {
	system("cls");
	Sleep(1000);
	cout << "=== 餐饮系统 ===" << endl;
	cout << "当前饥饿状态:";
	bdje(tired);
	cout<<endl;
	cout << "请选择餐饮方式:" << endl;
	cout << "1. 快餐 (10元,恢复20体力)" << endl;
	cout << "2. 自助餐 (30元,恢复50体力)" << endl;
	cout << "3. 高级餐厅 (80元,恢复80体力)" << endl;
	cout << "4. 豪华大餐 (150元,恢复100体力)" << endl;
	cout << "5. 自己做饭 (5元,恢复15体力)" << endl;
	cout << "按ESC返回" << endl;

	int selected_option = 0;

	while(1) {
		// 显示选项按钮
		if(pdbj(4,1,1,15,2,"1. 快餐 (10元")) {
			selected_option = 1;
			break;
		}
		if(pdbj(5,1,1,15,3,"2. 自助餐 (30元")) {
			selected_option = 2;
			break;
		}
		if(pdbj(6,1,1,15,4,"3. 高级餐厅 (80元")) {
			selected_option = 3;
			break;
		}
		if(pdbj(7,1,1,15,5,"4. 豪华大餐 (150元")) {
			selected_option = 4;
			break;
		}
		if(pdbj(8,1,1,15,6,"5. 自己做饭 (5元")) {
			selected_option = 5;
			break;
		}
		if(axj(VK_ESCAPE)) {
			return;
		}
	}
	Sleep(100);
	system("cls");
	// 处理选择的餐饮方式
	switch(selected_option) {
		case 1: // 快餐
			if(money < 10) {
				cout << "余额不足,无法享用快餐!" << endl;
				Sleep(1000);
				return;
			}
			if(tired > 90) {
				cout << "已经太饱了,吃不下了!" << endl;
				Sleep(1000);
				return;
			}
			money -= 10;
			tired += 20;
			cout << "享用快餐,体力恢复20点!" << endl;
			break;

		case 2: // 自助餐
			if(money < 30) {
				cout << "余额不足,无法享用自助餐!" << endl;
				Sleep(1000);
				return;
			}
			if(tired > 80) {
				cout << "已经比较饱了,建议选择更便宜的餐饮!" << endl;
				Sleep(1000);
				return;
			}
			money -= 30;
			tired += 50;
			cout << "享用自助餐,体力恢复50点!" << endl;
			break;

		case 3: // 高级餐厅
			if(money < 80) {
				cout << "余额不足,无法享用高级餐厅!" << endl;
				Sleep(1000);
				return;
			}
			if(tired > 50) {
				cout << "当前体力充足,建议选择更经济的餐饮!" << endl;
				Sleep(1000);
				return;
			}
			money -= 80;
			tired += 80;
			cout << "享用高级餐厅美食,体力恢复80点!" << endl;
			break;

		case 4: // 豪华大餐
			if(money < 150) {
				cout << "余额不足,无法享用豪华大餐!" << endl;
				Sleep(1000);
				return;
			}
			if(tired > 20) {
				cout << "当前体力尚可,豪华大餐有些浪费!" << endl;
				Sleep(1000);
				return;
			}
			money -= 150;
			tired = 100; // 直接恢复满体力
			cout << "享用豪华大餐,体力完全恢复!" << endl;
			break;

		case 5: // 自己做饭
			if(money < 5) {
				cout << "余额不足,无法购买食材!" << endl;
				Sleep(1000);
				return;
			}
			money -= 5;
			tired += 15;
			cout << "自己动手做饭,体力恢复15点!" << endl;
			break;
	}

	// 确保体力不超过上限
	if(tired > 100) {
		tired = 100;
	}

	// 显示用餐效果
	cout << endl;
	cout << "用餐后状态:" << endl;
	cout << "余额:" << money << "元" << endl;
	cout << "体力:" << tired << "/100" << endl;

	Sleep(2000);
}

// 

void shangban(int wk) {
    if(tired <= 0) {
        cout << "先吃饭吧";
        Sleep(1000);
        return;
    }
    
    if(wk == 1) {
        banzhuan();
    } else if(wk == 2) {
        gongchang();
    } else if(wk == 3) {
        jiajiao();
    } else if(wk == 4) { // 新增房地产开发商
        fangdichan();
    } else {
        cout << "你都没有应聘好吗?";
    }
    Sleep(1000);
    return;
}



void ctjb(int work) {
	if(work==1) {
		cout<<"工地基础材料搬运工";
	} else if(work==2) {
		cout<<"钟点工人";
	} else if(work==3) {
		cout<<"私人家教";
	}else if(work==4){
		cout<<"房地产开发商"; 
	} else {
		cout<<"无业游民";
	}
}

int main() {
	ifstream testFile("game_save.dat");
	cout << "是否加载存档文件?(Y/N)//之前没玩过的建议不要加载,否则会遇见0元的尴尬情况" << endl;
	char choice;
	cin >> choice;
	if (choice == 'Y' || choice == 'y') {
		loadGame();
	}
	testFile.close();
	system("mode con cols=150 lines=50");
	srand(time(0));
	cout<<"======================================================================================================================================================"<<endl;
	cout<<"                                                 欢迎来到莫尔德帝国,你要在这里生活下去了"<<endl;
	Sleep(1000);
	cout<<"                                                   我先给你200,等你钱够多了我再来找你哦~"<<endl;
	Sleep(5000);
	system("cls");
	cout<<"那人是谁?算了不管了,这个地方——算了不管了,先解决温饱吧";
	Sleep(5000);
	system("cls");
	while(money>=0) {
		// 在工作、学习、吃饭函数结束时调用

		if(money>=100000000) {
			system("cls");
			cout<<"你成为了全帝国数一数二的富翁,却再也没见过那人了~";
			return 0;
		}
		if(knowledge>=500) {
			system("cls");
			cout<<"你通过努力学习,成为了一名教授,事迹感人,教授不是你的终点,而是你的起点,加油!";
			return 0;
		}
		ydgb(1,1);
		cout<<"余额:"<<money<<"    ";
		bdje(tired);
		cout<<endl;
		cout<<"当前职业:";
		ctjb(work);
		cout<<"    学历:";
		knowledge_level(knowledge);


		if(pdbj(3,1,1,8,15,"选择职业")) {
			system("cls");
			work=job();
			system("cls");
			Sleep(100);
		}
		if(pdbj(4,1,1,4,15,"工作")) {
			system("cls");
			shangban(work);
			system("cls");
			Sleep(100);
		}
		if(pdbj(5,1,1,4,15,"吃饭")) {
			system("cls");
			chifan();
			system("cls");
			Sleep(100);
		}

		if(pdbj(6,1,1,4,15,"学习")) {
			system("cls");
			study = learn_subject();
			system("cls");
			study_process(study);
			system("cls");
			Sleep(100);
		}
		// 在主循环的按钮部分添加
		if(pdbj(7,1,1,8,15,"银行服务")) {
			system("cls");
			bank();
			system("cls");
			Sleep(100);
		}

		// 在主循环的按钮部分添加
		if(pdbj(8,1,1,8,15,"保存游戏")) {
			saveGame();
			Sleep(1000);
			system("cls");
		}

	}
	system("cls");
	cout<<"你破产了,流浪街头……";
	return 0;
}