亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? fight.cpp

?? 一個用C++寫的文字類游戲
?? CPP
字號:
#include "StdAfx.h"
#include ".\fight.h"
#include "globalobject.h"
#include <windows.h> 


extern CGlobalObject g_Object;


CFight::CFight(void)
{
	m_nBout = 0;
	
}

CFight::~CFight(void)
{
}
//此處實現攻防計算
void CFight::Render(char cCommand)
{

	g_Object.SetColor(FOREGROUND_BLUE);
	// 查看狀態,不算在回合中。
	if (cCommand == '9') {
		cout<<g_Object.m_protagonist.m_strName<<"還有"<<g_Object.m_protagonist.m_nBlood<<"點血。"<<endl;
		return ;
	}
	if (m_nBloodTime > 0) {
		g_Object.m_protagonist.m_nBlood += this->m_nBlood;
		if (g_Object.m_protagonist.m_nBlood > g_Object.m_protagonist.m_nMaxBlood) {
			g_Object.m_protagonist.m_nBlood = g_Object.m_protagonist.m_nMaxBlood;
		}
		m_nBloodTime--;
		cout<<g_Object.m_protagonist.m_strName<<"生命回復"<<m_nBlood<<"點。"<<endl;
	}
	//此處的邏輯是NPC先攻擊,然后再算主角的攻擊,這樣可以少考慮很多狀態。
	//防值
	int nDef;
	if (m_nRoleDefDouble > 0) {
		nDef = g_Object.m_protagonist.m_nDefend + g_Object.m_protagonist.m_nBaseDef;
		m_nRoleDefDouble--;
	} else {
		nDef = g_Object.m_protagonist.m_nDefend;
	}
	//是否閃躲
	int nLostBlood;
	bool bIsDodge = false;
	if ( m_nDodgeTime > 0) {
		if ((rand()*m_nDodge)/100 == 0) {
			bIsDodge = true;
		}
		m_nDodgeTime--;
	} 

	if (m_nNpcDizzy > 0) {
		cout<<m_iterNPC.m_strName<<"還有暈眩中。"<<endl;
		m_nNpcDizzy--;
	} else {
		if (bIsDodge) {
			cout<<g_Object.m_protagonist.m_strName<<"高超的身法躲開了"<<m_iterNPC.m_strName<<"的攻擊。"<<endl;
		} else {
			//躲不過去就算傷害,
			nLostBlood = m_iterNPC.m_nAttack - nDef/4;
			if (nLostBlood < 0) 
				nLostBlood = 0;
			g_Object.m_protagonist.m_nBlood -= nLostBlood;
			if (g_Object.m_protagonist.m_nBlood <= 0) {
				cout<<g_Object.m_protagonist.m_strName<<"被"<<m_iterNPC.m_strName<<"殺死了!!"<<endl;
				cout<<"請按任意鍵結束。"<<endl;
				g_Object.m_nGameStart = GS_DIE;
				return ;
			} else {
				cout<<g_Object.m_protagonist.m_strName<<"被"<<m_iterNPC.m_strName<<"打掉"<<nLostBlood<<"血。"<<endl;
			}
		}
	}
	//攻擊的計算
	int nAtt = g_Object.m_protagonist.m_nAttack;
	if (m_nDeadlyTime > 0) {
		if ((rand()*m_nDeadly)/100 == 0) {
			nAtt *= 2;
		} 
		m_nDeadlyTime--;
	} 
	bool bKill = false;
	switch(cCommand) {
	case 'H':
	case 'h':
		this->AttackHelp();
		HelpInfo();
		return ;
	case '1':
		nLostBlood = nAtt - m_iterNPC.m_nDefend/4;
		m_iterNPC.m_nBlood -= nLostBlood;
		if (m_iterNPC.m_nBlood <= 0) {
			cout<<g_Object.m_protagonist.m_strName<<"打掉"<<m_iterNPC.m_strName;
			cout<<nLostBlood<<"點血。"<<endl;
			cout<<g_Object.m_protagonist.m_strName<<"殺死了"<<m_iterNPC.m_strName<<endl;
			GetExperience();
			bKill = true;
		} else {
			cout<<g_Object.m_protagonist.m_strName<<"打掉"<<m_iterNPC.m_strName;
			cout<<nLostBlood<<"點血。"<<endl;
		}
		break;
	case '2':
		nLostBlood = 30 + g_Object.m_protagonist.m_nLevel* 5 + (nAtt - m_iterNPC.m_nDefend/4)/3;
		m_iterNPC.m_nBlood -= nLostBlood;
		if (m_iterNPC.m_nBlood <= 0) {
			cout<<g_Object.m_protagonist.m_strName<<"打掉"<<m_iterNPC.m_strName;
			cout<<nLostBlood<<"點血。"<<endl;
			cout<<g_Object.m_protagonist.m_strName<<"殺死了"<<m_iterNPC.m_strName<<endl;
			GetExperience();
			bKill = true;
		} else {
			cout<<g_Object.m_protagonist.m_strName<<"打掉"<<m_iterNPC.m_strName;
			cout<<nLostBlood<<"點血。"<<endl;
		}
		break;
	case '3':
		nLostBlood = 20 + g_Object.m_protagonist.m_nLevel* 4 + (nAtt - m_iterNPC.m_nDefend/4)/3;
		m_iterNPC.m_nBlood -= nLostBlood;
		if (m_iterNPC.m_nBlood <= 0) {
			cout<<g_Object.m_protagonist.m_strName<<"打掉"<<m_iterNPC.m_strName;
			cout<<nLostBlood<<"點血。"<<endl;
			cout<<g_Object.m_protagonist.m_strName<<"殺死了"<<m_iterNPC.m_strName<<endl;
			GetExperience();
			bKill = true;
		} else {
			cout<<g_Object.m_protagonist.m_strName<<"打掉"<<m_iterNPC.m_strName;
			cout<<nLostBlood<<"點血。"<<endl;
		}
		break;
	case '4':
		m_nNpcDizzy = 3;
		cout<<g_Object.m_protagonist.m_strName<<"打暈了"<<m_iterNPC.m_strName<<endl;
		break;
	case '5':
		m_nRoleDefDouble = 6;
		cout<<g_Object.m_protagonist.m_strName<<"的防御加倍。"<<endl;
		break;
	case '6':
		m_nDeadly = 50;	//主角致命一擊的機率; 20表示20%
		m_nDeadlyTime = 5;
		cout<<g_Object.m_protagonist.m_strName<<"提高了致命一擊的機率。"<<endl;
		break;
	case '7':
		m_nDodge = 20;//閃躲機率;20表示20%
		m_nDodgeTime = 10;//還能用幾回合
		cout<<g_Object.m_protagonist.m_strName<<"提高了閃躲的機率。"<<endl;
		break;
	case '8':
		UseGoods();
		break;
	default:
		cout<<"請進行有效攻擊。"<<endl;
		HelpInfo();
		return ;
	}
	if (bKill) {
		vector<CRole>::iterator iter;
		for(iter = g_Object.m_vecNpc.begin(); iter != g_Object.m_vecNpc.end(); iter++) {
			if (iter->m_nPosX == m_iterNPC.m_nPosX && 
				iter->m_nPosY == m_iterNPC.m_nPosY) {
				g_Object.m_vecNpc.erase(iter);
				break;
			}
		}
		g_Object.m_nGameStart = GS_MAP;
		ClearStart();
	} else {
		HelpInfo();
	}
}

void CFight::AttackHelp()
{
	g_Object.HelpString("", '1',"普通攻擊");
	//三斬三絕為殺敵技能,望有效利用。
	g_Object.HelpString("", '2',"飛龍斬:  攻擊敵人單體");
	g_Object.HelpString("", '3',"狂風斬:  攻擊敵人全體");
	g_Object.HelpString("", '4',"霹靂斬:  攻擊敵人單體,三回合內暈乎乎的");
	g_Object.HelpString("", '5',"金鐘訣:  六回合內防御加倍");
	g_Object.HelpString("", '6',"必殺訣:  五回合內致命一擊機率+50%");
	g_Object.HelpString("", '7',"靈體訣:  十回合內閃避機率+20%");
	g_Object.HelpString("", '8',"使用藥物");
	g_Object.HelpString("", '9',"查看狀態");
}

void CFight::HelpInfo()
{
	g_Object.SetColor(FOREGROUND_GREEN);
	cout<<"1:普通攻擊  2:飛龍斬  3:狂風斬  4:霹靂斬"<<endl;
	cout<<"5:金鐘訣    6:必殺訣  7:靈體訣  8:使用藥物"<<endl;
	cout<<"9:參看狀態             H:查看詳細說明"<<endl;
}
void CFight::ClearStart()
{
	m_nBout = 0;//第幾回合
	
	m_nNpcDizzy = 0;//NPC暈的狀態,大于1表示還要暈幾回合,等于0為不暈。
	m_nRoleDefDouble = 0;//主角防御加倍的狀態,大于1表示還要加倍幾回合,等于0為不加倍。
	m_nDeadly = 0;	//主角致命一擊的機率; 20表示20%
	m_nDeadlyTime = 0;//還能用幾回合。
	m_nDodge = 0;//閃躲機率;20表示20%
	m_nDodgeTime = 0;//還能用幾回合
	m_nBlood = 0;//回血量
	m_nBloodTime = 0; //能回血幾回合
}

void CFight::GetExperience()
{
	float fCoefficient;
	if (g_Object.m_protagonist.m_nLevel > m_iterNPC.m_nLevel + 2) {
		fCoefficient = 0.8;
	} else if (g_Object.m_protagonist.m_nLevel + 2 < m_iterNPC.m_nLevel) {
		fCoefficient = 1.2;
	} else {
		fCoefficient = 1.0;
	}
	int nEx = (g_Object.m_protagonist.m_nLevel + 10) * fCoefficient;
	g_Object.m_protagonist.m_nExperience += nEx;
	g_Object.SetColor(FOREGROUND_GREEN);
	cout<<g_Object.m_protagonist.m_strName<<"得到經驗"<<nEx<<endl;
	g_Object.m_protagonist.Upgrade();
}

void CFight::UseGoods()
{
	g_Object.SetColor(FOREGROUND_BLUE);
	vector<ROLE_GOODS>::iterator iter;
	for (iter = g_Object.m_vecGoods.begin(); iter != g_Object.m_vecGoods.end(); iter++) {
		if (iter->nType == 3) {
			cout<<"1:"<<iter->strName<<"數量"<<iter->nNumber<<endl;	
		} else if (iter->nType == 4) {
			cout<<"2:"<<iter->strName<<"數量"<<iter->nNumber<<endl;	
		}
	}
	cout<<"您使用:"<<endl;
	char cTemp[30];
	memset(cTemp, 0, 30);
	cin>>cTemp;
	if (cTemp[0] != '1'&& cTemp[0] != '2') {
		cout<<g_Object.m_protagonist.m_strName<<"笨拙的動作浪費了一次吃藥的機會。"<<endl;
		return ;
	}
	for (iter = g_Object.m_vecGoods.begin(); iter != g_Object.m_vecGoods.end(); iter++) {
		if (iter->nType == 3 && cTemp[0] == '1') {
			if (iter->nNumber <= 0) {
				cout<<iter->strName<<"已吃完了。"<<endl;
				return ;
			}
			cout<<g_Object.m_protagonist.m_strName<<"使用了"<<iter->strName<<endl;
			m_nBlood = iter->nAttribute;
			m_nBloodTime = 10;
			g_Object.m_protagonist.m_nBlood += this->m_nBlood;
			if (g_Object.m_protagonist.m_nBlood > g_Object.m_protagonist.m_nMaxBlood) {
				g_Object.m_protagonist.m_nBlood = g_Object.m_protagonist.m_nMaxBlood;
			}
			m_nBloodTime--;
			cout<<g_Object.m_protagonist.m_strName<<"生命回復"<<m_nBlood<<"點。"<<endl;
			iter->nNumber--;	
			break;
		} else if (iter->nType == 4 && cTemp[0] == '2') {
			if (iter->nNumber <= 0) {
				cout<<iter->strName<<"已吃完了。"<<endl;
				return ;
			}
			iter->nNumber--;
			cout<<g_Object.m_protagonist.m_strName<<"使用了"<<iter->strName<<endl;
			g_Object.m_protagonist.m_nBlood += iter->nAttribute;
			if (g_Object.m_protagonist.m_nBlood > g_Object.m_protagonist.m_nMaxBlood) {
				g_Object.m_protagonist.m_nBlood = g_Object.m_protagonist.m_nMaxBlood;
			}
			break;
		}
	}

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一级黄色片| 国产日韩成人精品| 成人三级在线视频| 日本大胆欧美人术艺术动态| 尤物视频一区二区| 一区二区三区欧美在线观看| 国产精品国产三级国产普通话99| 2021中文字幕一区亚洲| 精品国产免费视频| 欧美另类高清zo欧美| 亚洲综合色视频| 一区二区在线免费观看| 亚洲精品乱码久久久久久| 亚洲激情图片小说视频| 亚洲综合另类小说| 丝袜亚洲另类欧美| 精品一区二区三区欧美| 国产一区二区在线影院| 国产精品一区二区久久不卡| 成人一区二区三区中文字幕| 成人黄色在线视频| 欧美视频你懂的| 欧美成人官网二区| 久久久久久免费毛片精品| 中文字幕一区二区三区在线播放| 中文字幕中文字幕中文字幕亚洲无线| 亚洲一区二区三区四区在线观看| 亚洲五码中文字幕| 狠狠色狠狠色综合系列| 欧美日韩一级视频| www.欧美精品一二区| 91色.com| 欧美一区二区日韩| 国产精品每日更新| 亚洲图片欧美色图| 国产乱色国产精品免费视频| 成人精品小蝌蚪| 欧美日韩国产123区| 久久精品在线免费观看| 亚洲精品网站在线观看| 青青草伊人久久| 丁香六月综合激情| 欧美美女网站色| 国产欧美一区二区在线| 亚洲成人自拍一区| 国产一区二区三区精品视频| 99re视频这里只有精品| 日韩欧美一区二区免费| 国产精品乱码一区二三区小蝌蚪| 亚洲成va人在线观看| 国产一区二区三区久久久 | 在线观看一区二区视频| 91.xcao| 国产精品热久久久久夜色精品三区 | 亚洲观看高清完整版在线观看| 久久精品国产免费看久久精品| 成人激情免费电影网址| 日韩一区二区三区四区| 一区二区三区成人在线视频| 国产一区二区三区四区五区美女| 欧美曰成人黄网| 欧美国产日本韩| 精品一区二区三区免费视频| 色哟哟一区二区| 国产精品卡一卡二| 国产激情91久久精品导航| 9191精品国产综合久久久久久| 亚洲靠逼com| eeuss国产一区二区三区| 精品久久国产老人久久综合| 亚洲sss视频在线视频| 99re8在线精品视频免费播放| 亚洲精品一区二区三区四区高清| 日韩精品乱码av一区二区| 日韩欧美精品在线| 亚洲国产精品麻豆| 成人高清免费在线播放| www成人在线观看| 日本不卡123| 欧美电影影音先锋| 一区二区日韩电影| 91久久奴性调教| 亚洲欧美另类综合偷拍| 99视频有精品| 国产精品成人在线观看| 不卡欧美aaaaa| 国产精品久久夜| 99久久精品免费| 亚洲精品大片www| 色哟哟在线观看一区二区三区| 亚洲人成小说网站色在线 | 久久99国内精品| 久久综合九色综合欧美亚洲| 久久精品国产一区二区三区免费看| 91精品福利在线一区二区三区 | 日韩三级精品电影久久久 | 日韩一级免费观看| 国内不卡的二区三区中文字幕| 精品第一国产综合精品aⅴ| 国内外成人在线视频| 久久久久久久久久久久久久久99 | 韩国毛片一区二区三区| 久久一日本道色综合| 粉嫩绯色av一区二区在线观看| 日本一二三不卡| 日本韩国欧美在线| 日韩av午夜在线观看| 欧美精品一区二区久久久| 国产一区二三区| 亚洲欧洲精品成人久久奇米网| 在线免费观看成人短视频| 视频一区免费在线观看| 国产三级精品在线| 在线观看视频一区二区欧美日韩| 日韩精品一区第一页| 久久先锋影音av| 一本色道久久加勒比精品| 国产欧美一二三区| 26uuu国产在线精品一区二区| 成人黄色在线网站| 午夜精品久久久久久久99水蜜桃| 2021中文字幕一区亚洲| 日本久久电影网| 精品制服美女丁香| 亚洲精选免费视频| 久久久久久久一区| 欧美色网站导航| 成人免费看视频| 蜜桃视频第一区免费观看| 亚洲欧洲日韩女同| 欧美xingq一区二区| 欧洲另类一二三四区| 国产一本一道久久香蕉| 日韩经典一区二区| 亚洲视频小说图片| 国产日韩欧美电影| 日韩三级在线观看| 欧美日韩精品专区| 99re6这里只有精品视频在线观看| 久久国产视频网| 91在线观看高清| 精品一区二区精品| 日韩av高清在线观看| 亚洲一区视频在线观看视频| 国产精品丝袜久久久久久app| 日韩欧美国产麻豆| 欧美肥妇bbw| 欧美男男青年gay1069videost| 99国产麻豆精品| 99国产精品久久| 成人高清视频在线| 国产69精品久久99不卡| 国产乱妇无码大片在线观看| 日本网站在线观看一区二区三区| 亚洲成人一二三| 亚洲午夜久久久久| 亚洲va韩国va欧美va| 亚洲综合一二区| 亚洲激情图片一区| 亚洲午夜久久久久久久久久久| 一区二区三区四区国产精品| 中文字幕亚洲精品在线观看| 国产日韩v精品一区二区| 久久综合久色欧美综合狠狠| 精品国产百合女同互慰| 精品人在线二区三区| 欧美va亚洲va国产综合| 国产亚洲一区二区三区四区| 国产精品国产三级国产aⅴ中文| 欧美日韩性生活| 精品1区2区3区| 8x8x8国产精品| 欧美一区二区视频在线观看2020 | 国产福利91精品一区二区三区| 老司机精品视频线观看86| 精品一区二区三区在线播放| 极品尤物av久久免费看| 国产69精品久久777的优势| 成人永久免费视频| 色婷婷综合久久久中文字幕| 91久久线看在观草草青青| 欧美久久久久久久久久| 精品日韩成人av| 日韩伦理av电影| 天堂精品中文字幕在线| 精品综合免费视频观看| 成人毛片老司机大片| 欧美精品123区| 久久精品一区二区三区av| 亚洲免费三区一区二区| 日本欧美肥老太交大片| 国产福利一区二区三区视频| 色婷婷综合在线| 欧美电视剧在线观看完整版| 亚洲国产精品激情在线观看| 亚洲最大成人网4388xx| 狠狠色综合色综合网络| 91福利在线观看| 国产亚洲女人久久久久毛片| 亚洲一区二区三区在线播放|