你可以试试哦3

#pragma once
#include <bits/stdc++.h>
#include <windows.h>
#include <conio.h>
#include <time.h>
using namespace std;
typedef long long ll;

int toint(char ch) {
	if (ch >= '0' && ch <= '9')
		return ch - '0';
	return ch - 'A' + 10;
}

int stoint(string str) {
	int ans = 0;
	for (int i = 0; i < str.size(); i++)
		ans = ans * 16 + toint(str[i]);
	return ans;
}

void print(string a, WORD color, int x, int y, int wait) {
	WORD colorOld;
	HANDLE handle = ::GetStdHandle(STD_OUTPUT_HANDLE);
	CONSOLE_SCREEN_BUFFER_INFO csbi;
	GetConsoleScreenBufferInfo(handle, &csbi);
	colorOld = csbi.wAttributes;
	if (x >= 0 && y >= 0) {
		COORD pos = {x, y};
		SetConsoleCursorPosition(handle, pos);
	}
	SetConsoleTextAttribute(handle, color);
	for (int i = 0; i < a.size(); i++) {
		if (a[i] == '<') {
			i++;
			char model = a[i];
			i++;
			if (model == 'T') {
				char ch1 = a[i];
				i++;
				char ch2 = a[i];
				string b = "";
				int c = 1;
				do {
					i++;
					if (a[i] == '<')
						c++;
					if (a[i] == '>')
						c--;
					if (a[i] == '&') {
						b += a[i];
						i++;
					}
					b += a[i];
				} while (c != 0);
				b.erase(b.size() - 1, 1);
				WORD adder;
				adder = toint(ch1) * 16 + toint(ch2);
				print(b, adder, -1, -1, wait);
				continue;
			}
		} else {
			if (a[i] == '&')
				i++;
			printf("%c", a[i]);
		}
		Sleep(wait);
	}
	SetConsoleTextAttribute(handle, colorOld);
}

string getstr(int lenth) {
	char ch;
	string input = "";
	while (ch = getchar(), ch != '\n' && input.size() < lenth)
		input += ch;
	return input;
}

string weapon[5] = {"木剑", "石剑", "铁剑", "钻石剑", "下界合金剑"};

void fightmainban () {
	puts ("------------------------------");
	puts ("       请问你要干什么?       ");
	puts (" 1、攻击   2、回血   3、逃跑  ");
	puts ("------------------------------");
}

void mianban () {
	print("<TCF                                                           >", 0xF8, 0, 0, 0);
	print("<TCF  >                                                       <TCF  >", 0xF8, 0, 1, 0);
	print("<TCF  ><TF8                    请问你要干什么?                   ><TCF  >", 0xF8, 0, 2, 0);
	print("<TCF  ><TF81、打架 2、去商店 3、赚金币 4、打boss 5、指令 6、住旅馆><TCF  >", 0xF8, 0, 3, 0);
	print("<TCF  >                                                       <TCF  >", 0xF8, 0, 4, 0);
	print("<TCF  ><TF8                    选择:                             ><TCF  >", 0xF8, 0, 4, 0);
	print("<TCF  >                                                       <TCF  >", 0xF8, 0, 5, 0);
	print("<TCF                                                           >", 0xF8, 0, 6, 0);
	print("", 0xF8, 28, 4, 0);
}

COORD gets_font_size() {
	COORD font_size;
	HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
	/* 字体信息 */
	struct CONSOLE_FONT {
		DWORD index;
		COORD dim;
	} cfi;
	typedef COORD (WINAPI * PROCGETCONSOLEFONTSIZE)(HANDLE, DWORD);
	typedef BOOL (WINAPI * PROCGETCURRENTCONSOLEFONT)(HANDLE, BOOL, struct CONSOLE_FONT *);

	HMODULE hKernel32 = GetModuleHandle("kernel32");
	PROCGETCONSOLEFONTSIZE GetConsoleFontSize = (PROCGETCONSOLEFONTSIZE)GetProcAddress(hKernel32, "GetConsoleFontSize");
	PROCGETCURRENTCONSOLEFONT GetCurrentConsoleFont = (PROCGETCURRENTCONSOLEFONT)GetProcAddress(hKernel32,
	        "GetCurrentConsoleFont");

	GetCurrentConsoleFont(handle, FALSE, &cfi);             /* 获取当前字体索引信息 */
	font_size = GetConsoleFontSize(handle, cfi.index);      /* 获取当前字体宽高信息[字符宽度及高度所占像素数] */

	return font_size;
}

/*******************************************************************************
 * 最大化展示控制台窗口
 ******************************************************************************/
void full_screen() {
	HWND hwnd = GetForegroundWindow();
	HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);   /* 标准输出缓冲区句柄 */
	int cx = GetSystemMetrics(SM_CXSCREEN);            /* 屏幕宽度 */
	int cy = GetSystemMetrics(SM_CYSCREEN);            /* 屏幕高度 */

	COORD size = gets_font_size();
	char cmd[32] = { 0 };
	sprintf(cmd, "MODE CON: COLS=%d LINES=%d", cx / size.X, cy / size.Y);
	system(cmd);
	SetWindowPos(hwnd, HWND_TOP, 0, 0, cx, cy, 0);
}

int main () {
	system("color f0");
	full_screen();
	SetConsoleTitle("ZCK\'s Game");
	srand ((unsigned)time (NULL));
	int chance = 2, bloodchance = 2, pricechange = 2, hotal = 500, tmpblood;
	string s;
	ll blood1 = 300000, atk1 = 300000, wep = 0;
	ll atk, blood, equipment, money = 0;
	print("<TFC----------小游戏  <TF5zck>出品---------->", 0xF8, 0, 0, 10);
	print("<TFC请输入您的名字:>", 0xF8, 0, 1, 10);
	print("<TFC----------------------------------->", 0xF8, 0, 2, 10);
	print("", 0xF8, 15, 1, 0);
	HANDLE handle = ::GetStdHandle(STD_OUTPUT_HANDLE);
	CONSOLE_SCREEN_BUFFER_INFO csbi;
	GetConsoleScreenBufferInfo(handle, &csbi);
	SetConsoleTextAttribute(handle, 0xF9);
	WORD colorOld = csbi.wAttributes;
	s = getstr(16);
	SetConsoleTextAttribute(handle, colorOld);
	if (s == "niuzeyu" || s == "牛泽宇" || s == "奶牛大军") {
		atk = 99999999;
		blood = 99999999;
		equipment = 99999999;
		money = 999999999999;
	} else if (s == "gym" || s == "桂一鸣") {
		atk = 1;
		blood = 2;
		equipment = 1;
		money = -100000000;
	} else {
		atk = rand () % 10 + 99902;
		blood = rand () % 9 + 2000;
		equipment = rand ();
		tmpblood = blood;
	}
	int bl = 2;
	bool killed = false;
	blood += equipment;
	char buff[150];
	sprintf(buff, "<TF9%s> <TFCatk:>%lld <TFCblood:>%lld <TFCequipment:>%d \n", s.c_str(), atk, blood, equipment);
	print(buff, 0xF8, 0, 3, 10);
	char opt;
	while (1) {
i:
		Sleep(2000);
		system("cls");
		if (killed)
			blood = tmpblood;
		int i = 1;
		mianban ();
		HANDLE handle = ::GetStdHandle(STD_OUTPUT_HANDLE);
		CONSOLE_SCREEN_BUFFER_INFO csbi;
		GetConsoleScreenBufferInfo(handle, &csbi);
		SetConsoleTextAttribute(handle, 0xF9);
		WORD colorOld = csbi.wAttributes;
		opt = getch();
		putch(opt);
		SetConsoleTextAttribute(handle, colorOld);
		print("", 0xF8, 0, 7, 0);
		if (opt == '1') {
			while (1) {
				int blood1 = rand () % 10 + 99900;
				int atk1 = rand () % 9 + 2000;
				cout << "NPC血量=" << blood1 << ". 攻击力=" << atk1 << endl;
				cout << "第" << i << "回合" << endl;
				cout << "请问" << s << "要干什么?" << endl;
				fightmainban ();
				int k;
				cin >> k;
				if (k == 1) {
					int tmp = rand () % 10;
					if (tmp < 4) {
						blood1 -= (atk * 2);
						cout << s << "使用附魔钻石剑攻击" << endl;
						cout << "NPC" << "还剩" << blood1 << "血" << endl;
					} else {
						blood1 -= atk;
						cout << s << "使用" << weapon[wep] << "攻击" << "NPC" << endl;
						cout << "NPC" << "还剩" << blood1 << "血" << endl;
					}
				}
				if (k == 2 && bl <= 0)
					puts ("泥煤吃的了......");
				if (k == 2 && bl > 0) {
					blood += 10;
					bl -- ;
					cout << s << "加10滴血" << endl;
				}
				if (k == 3) {
					int tmp = rand () % 10;
					if (tmp <= 4) {
						cout << s << "逃跑了" << endl;
						cout << "NPC" << "胜利" << endl;
						money -= 10;
						break;
					}
				}
				if (blood1 <= 0) {
					cout << s << "干掉了" << "NPC" << endl;
					cout << s << "胜利" << endl;
					money += rand () % 10;
					break;
				}
				int tmp2 = rand () % 10;
				if (tmp2 <= 4) {
					blood -= (atk1 * 2);
					cout << "NPC" << "使用篮球攻击" << s << endl;
					cout << s << "还剩" << blood << "血" << endl;
				} else {
					blood -= atk1;
					cout << "NPC使用屁股攻击" << s << endl;
					cout << s << "还剩" << blood << "血" << endl;
				}
				if (blood <= 0) {
					cout << "NPC" << "干掉了" << s << endl;
					cout << "NPC" << "胜利" << endl;
					money -= 10;
					killed = true;
					break;
				}
				i ++ ;
			}
		}
		if (opt == '2') {
			puts ("欢迎来到黑心商店~~~~");
			puts ("攻击武器 : 1、石剑:100元 2、铁剑:500元 3、钻石剑:2000元 4、下界合金剑:50000元");
			puts ("防御装备 : 5、皮革装:300元 6、铁套:20000元 7、钻石套:50000元 8、下界合金套:100000元");
			puts ("输入0,离开商店");
			int op;
			cin >> op;
			if (op == 0)
				goto i;
			if (op == 1 && money >= 10)
				atk += 30, money -= 10, wep = 1;
			else if (money < 10) {
				puts ("没钱!!!");
				goto i;
			}
			if (op == 2 && money >= 50)
				atk += 500, money -= 50, wep = 2;
			else if (money < 50) {
				puts ("没钱!!!");
				goto i;
			}
			if (op == 3 && money >= 200)
				atk += 1000, money -= 200, wep = 3;
			else if (money < 200) {
				puts ("没钱!!!");
				goto i;
			}
			if (op == 4 && money >= 500)
				atk += 2000, money -= 500, wep = 4;
			else if (money < 500) {
				puts ("没钱!!!");
				goto i;
			}
			if (op == 5 && money >= 30)
				blood += 200, money -= 30;
			else if (money < 30) {
				puts ("没钱!!!");
				goto i;
			}
			if (op == 6 && money >= 100)
				blood += 7000, money -= 100;
			else if (money < 100) {
				puts ("没钱!!!");
				goto i;
			}
			if (op == 7 && money >= 500)
				blood += 10000, money -= 500;
			else if (money < 500) {
				puts ("没钱!!!");
				goto i;
			}
			if (op == 8 && money >= 1000)
				blood += 30000, money -= 1000;
			else if (money < 1000) {
				puts ("没钱!!!");
				goto i;
			}
			puts ("已穿上装备");
		}
		if (opt == '3') {
			puts ("来打工的?");
			puts ("1、擦盘子 2分钟5金币");
			puts ("2、巡逻 2分钟20金币");
			puts ("3、管理10个人 2分钟50金币");
			puts ("4、管理公司 2分钟70金币");
			int y;
			cin >> y;
			if (y == 1 && money >= 500) {
				puts ("你想做几分钟?");
				int times;
				cin >> times;
				cout << "打工中......" << endl;
				Sleep (times * 60000);
				money += (times / 2) * 20;
				cout << "你现在有:" << money << "元" << endl;
				goto i;
			} else if (y == 1 && money < 500) {
				puts ("你没资格......");
				goto i;
			}
			if (y == 2 && money >= 2000) {
				puts ("你想做几分钟?");
				int times;
				cin >> times;
				cout << "打工中" << endl;
				Sleep (times * 60000);
				money += (times / 2) * 50;
				cout << "你现在有:" << money << "元" << endl;
				goto i;
			} else if (y == 2 && money < 2000) {
				puts ("你没资格......");
				goto i;
			}
			if (y == 3 && money >= 5000) {
				puts ("你想做几分钟?");
				int times;
				cin >> times;
				cout << "打工中" << endl;
				Sleep (times * 60000);
				money += (times / 2) * 5;
				cout << "你现在有:" << money << "元" << endl;
				goto i;
			} else if (y == 3 && money < 5000) {
				puts ("你没资格......");
				goto i;
			}
			if (y == 4 && money >= 10000) {
				puts ("你想做几分钟?");
				int times;
				cin >> times;
				cout << "打工中" << endl;
				Sleep (times * 60000);
				money += (times / 2) * 70;
				cout << "你现在有:" << money << "元" << endl;
				goto i;
			} else if (y == 4 && money < 10000) {
				puts ("你没资格......");
				goto i;
			}
		}
		if (opt == '4') {
			while (1) {
				cout << "末影龙血量=" << blood1 << ". 攻击力=" << atk1 << endl;
				cout << "第" << i << "回合" << endl;
				cout << "请问" << s << "要干什么?" << endl;
				fightmainban ();
				int k;
				cin >> k;
				if (k == 1) {
					int tmp = rand () % 10;
					if (tmp < 4) {
						blood1 -= (atk * 2);
						cout << s << "使用附魔钻石剑攻击" << endl;
						cout << "末影龙" << "还剩" << blood1 << "血" << endl;
					} else {
						blood1 -= atk;
						cout << s << "使用武器攻击" << "末影龙" << endl;
						cout << "末影龙" << "还剩" << blood1 << "血" << endl;
					}
				}
				if (k == 2 && bl <= 0)
					puts ("泥煤吃的了......");
				if (k == 2 && bl > 0) {
					blood += 10;
					bl -- ;
					cout << s << "加10滴血" << endl;
				}
				if (k == 3) {
					int tmp = rand () % 10;
					if (tmp <= 4) {
						cout << s << "逃跑了" << endl;
						cout << "末影龙" << "胜利" << endl;
						money -= 10;
						break;
					}
				}
				if (blood1 <= 0) {
					cout << s << "干掉了" << "末影龙" << endl;
					cout << s << "胜利" << endl;
					return 0;
				}
				int tmp2 = rand () % 10;
				if (tmp2 <= 4) {
					blood -= (atk1 * 2);
					cout << "末影龙" << "使用龙息攻击" << s << endl;
					cout << s << "还剩" << blood << "血" << endl;
				} else {
					blood -= atk1;
					cout << "末影龙使用翅膀攻击" << s << endl;
					cout << s << "还剩" << blood << "血" << endl;
				}
				if (blood <= 0) {
					cout << "末影龙" << "干掉了" << s << endl;
					cout << "末影龙" << "胜利" << endl;
					money -= 10;
					killed = true;
					break;
				}
				i ++ ;
			}
		}
		if (opt == '5') {
			puts ("指令:1、coi_money (看自己有多少钱)");
			puts ("1(1)、coi_atk_and_blood (看末影龙血量、攻击力)");
			puts ("1(2)、coi_me (看自己目前攻击力、血量)");
			puts ("2、cut_blood (削弱末影龙3%血量,有20%的几率)");
			puts ("3、atk++ (加强攻击力,作者专用)");
			puts ("4、blood++ (加强血量)");
			puts ("5、cut_price (降价旅馆钱数,两次机会,有20%几率)");
			puts ("请输入指令:");
			string zl;
			cin >> zl;
			if (zl == "coi_money") {
				cout << "money:" << money << endl;
				goto i;
			}
			if (zl == "coi_atk_and_blood") {
				cout << "攻击力:" << atk1 << " 防御力:" << blood1 << endl;
				goto i;
			}
			if (zl == "coi_me") {
				cout << "攻击力:" << atk << " 防御力:" << blood << endl;
				goto i;
			}
			if (zl == "cut_blood" && chance <= 0) {
				puts ("泥煤机会了......");
				goto i;
			}
			if (zl == "cut_blood" && chance > 0) {
				int ran = rand ();
				if (ran % 5 == 0) {
					atk1 *= 0.97;
					blood1 *= 0.97;
					cout << "目前末影龙攻击力:" << atk1 << "血量:" << blood1 << endl;
					chance -- ;
					goto i;
				} else {
					puts ("真不走运......");
					goto i;
				}
			}
			if (zl == "atk++" && s == "zck" || zl == "atk++" && s == "朱宸可") {
				atk += 1000;
				blood += 10000;
				cout << "现在血量:" << atk << " 防御力:" << blood << endl;
				goto i;
			} else if (zl == "atk++" && s != "zck" || zl == "atk++" && s != "朱宸可") {
				puts ("你不是作者!!!!!!");
				goto i;
			}
			if (zl == "blood++" && bloodchance <= 0) {
				puts ("泥煤机会了......");
				goto i;
			}
			if (zl == "blood++" && bloodchance > 0) {
				blood += 900;
				cout << "现在血量:" << blood;
				bloodchance -- ;
				goto i;
			}
			if (zl == "cut_price" && pricechange <= 0) {
				puts ("泥煤机会了......");
				goto i;
			}
			if (zl == "cut_price" && pricechange > 0) {
				int price = rand () % 10;
				if (price <= 4) {
					hotal *= 0.8;
					cout << "现在钱数:" << hotal << endl;
					pricechange -- ;
					goto i;
				} else {
					puts ("真不走运......");
					goto i;
				}
			}
		}
		if (opt == '6') {
			puts ("欢迎来到酒店~~~~~");
			puts ("住一次500元,血量+5000");
			puts ("要住店吗?同意输入1");
			int o;
			cin >> o;
			if (o == 1 && money >= 500) {
				puts ("好好睡吧......");
				blood += 5000;
				money -= 500;
				Sleep (3000);
				puts ("第二天了");
				goto i;
			} else if (o == 1 && money < 500) {
				puts ("泥煤钱!!!");
				goto i;
			} else {
				puts ("下次再来!!!!");
				goto i;
			}
		}
	}
	return 0;
}

MC代码!!!

如果你喜欢的话,记得一键三连哦!求求了,这对我很重要!

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值