游戏内容
其实就是一个打怪小游戏
游戏代码
代码如下:
#include "heads.h"
#include "io.h"
typedef long long ll;
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 == "zck" || s == "朱宸可") {
atk = 99999999;
blood = 99999999;
equipment = 99999999;
money = 999999999999;
}
else if (s == "xhc" || 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;