state.cpp

来自「大家共同学习啊 有很大问题请大家帮助」· C++ 代码 · 共 116 行

CPP
116
字号
#include "State.h"
#include <iostream>
using namespace std;

AdvanceState::AdvanceState(Army *pArmy):m_pArmy(pArmy){}

void AdvanceState::Advance()
{
	cout << "Be in Advancing!" << endl;
}
void AdvanceState::Assault()
{
	//设置假想的敌人数
	m_pArmy->SetEmptyCount(200);
	cout << "Ok!Assault!" << endl;
	m_pArmy->SetState(m_pArmy->GetAssaultState());
	
}
void AdvanceState::Rest()
{
	cout << "OK!Rest!" << endl;
	m_pArmy->SetState(m_pArmy->GetRestState());
}
void AdvanceState::Fiesta()
{
	cout << "sorry!can't Fiesta!" << endl;
}

AssaultState::AssaultState(Army *pArmy):m_pArmy(pArmy){}
void AssaultState::Advance()
{
	cout << "Sorry! can't Advancing!" << endl;
}
void AssaultState::Assault()
{
	//得到当前的敌人人数
	int iEmptyCount = m_pArmy->GetEmptyCount();
	//每次攻击消灭敌人100
	if ( iEmptyCount <= 0 ) 
	{
		cout << "have kill all the empty!" << endl;
		return;
	}
	iEmptyCount -= 100; 
	m_pArmy->SetEmptyCount(iEmptyCount);
	cout << "Ok!Assault!" << endl;
	
}
void AssaultState::Rest()
{
	//得到当前的敌人人数
	int iEmptyCount = m_pArmy->GetEmptyCount();

	//敌人数目为零的时候可以休息
	if ( iEmptyCount == 0 )
	{
		cout << "OK! Rest!" << endl;
		m_pArmy->SetState(m_pArmy->GetRestState());
	}
	else
		cout << "sorry!can't rest" << endl;
}
void AssaultState::Fiesta()
{
	cout << "Sorry! can't fiesta!" << endl;
}

RestState::RestState(Army *pArmy):m_pArmy(pArmy){}
void RestState::Advance()
{
	cout << "ok!Advance!" << endl;
	m_pArmy->SetState(m_pArmy->GetAdvanceState());
}
void RestState::Assault()
{
	//设置假想的敌人数
	m_pArmy->SetEmptyCount(200);
	cout << "Ok!Assault!" << endl;
	m_pArmy->SetState(m_pArmy->GetAssaultState());
	
}
void RestState::Rest()
{
	cout << "Be in Resting!" << endl;
	
}
void RestState::Fiesta()
{
	cout << "OK!Fiesta!" << endl;
	m_pArmy->SetState(m_pArmy->GetFiestaState());
}

FiestaState::FiestaState(Army *pArmy):m_pArmy(pArmy){}
void FiestaState::Advance()
{
	cout << "ok!Advance!" << endl;
	m_pArmy->SetState(m_pArmy->GetAdvanceState());
}
void FiestaState::Assault()
{
	//设置假想的敌人数,呵呵,庆典期间遇到敌人,也的动手啊
	m_pArmy->SetEmptyCount(200);
	cout << "Ok!Assault!" << endl;
	m_pArmy->SetState(m_pArmy->GetAssaultState());
	
}
void FiestaState::Rest()
{
	cout << "ok!Rest!" << endl;
	m_pArmy->SetState(m_pArmy->GetRestState());
	
}
void FiestaState::Fiesta()
{
	cout << "Be in Fiestaing!" << endl;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?