當前位置:
首頁 >
简单的C++面向对象打怪小游戏
發布時間:2024/3/26
43
豆豆
生活随笔
收集整理的這篇文章主要介紹了
简单的C++面向对象打怪小游戏
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
//簡單的boos打小怪,還能繼續優化。
Battle.h#pragma once //防止頭文件重復 class Battle { public:Battle();~Battle();void Battle_Armsstore();//武器店void Battle_Drugstore();//藥品店void Battle_SmallMonster();//小怪void Battle_BigMonster();//大怪void Battle_Init();//初始化inline void Battle_Map();//初始頁面地圖 private:double LifeValue;//生命int Attack;//攻擊int Defense;//防御int Money;//金錢bool TongGuan;//通關//戰斗過程各種變化 0表示打小怪 1表示打大怪double *g_LifeValue;int *g_Attack;//怪物攻擊力int *g_Defense;//怪物防御力int *g_Money;//打一個怪物得到的金錢 }; Battle.cpp#include <iostream> #include "Battle.h"using namespace std;Battle::Battle() {LifeValue = 2000;Attack = 150;Defense = 150;Money = 20;TongGuan = false;g_LifeValue = new double[2]{ 100, 300};g_Attack = new int[2]{ 5, 30 };g_Defense = new int[2]{ 3, 20 };g_Money = new int[2]{ 5, 10 };} Battle::~Battle() {delete []g_LifeValue;delete []g_Attack;//怪物攻擊力delete []g_Defense;//怪物防御力delete []g_Money;//打一個怪物得到的金錢 } void Battle::Battle_Map() {system("cls");cout << "歡迎你開始玩打怪物小游戲!\n";cout << "小鎮\n";cout << "一個1000年的小鎮。周圍有一條河,有一片樹林,很多房子和很多人。\n有一家藥店" << endl;cout << "和一家武器店。\n";cout << "1.去武器店" << endl;cout << "2.去藥品店" << endl;cout << "3.去打小怪物" << endl;cout << "4.去打大怪物" << endl;cout << "5.退出游戲" << endl;cout << "6.顯示你的狀態" << endl; } //初始化 void Battle::Battle_Init() {Battle_Map();int Choose;cin >> Choose;//選擇項目while (Choose != 5) {if (LifeValue < 0) {cout << "生命耗盡" << endl;break;}if (TongGuan) {cout << "恭喜通關" << endl;break;}/*if (Choose == 6) {cout << "生命值:" << LifeValue << endl;cout << "攻擊力:" << Attack << endl;cout << "防御力:" << Defense << endl;cout << "擁有金額:" << Money << endl;}*/switch (Choose) {case 1:Battle_Armsstore();break;case 2:Battle_Drugstore();break;case 3:Battle_SmallMonster();break;case 4:Battle_BigMonster();break;case 6:cout << "生命值:" << LifeValue << endl;cout << "攻擊力:" << Attack << endl;cout << "防御力:" << Defense << endl;cout << "擁有金額:" << Money << endl;cout << "請繼續選擇" << endl;break;default:cout << "請輸入正確選擇!" << endl;break;}cin >> Choose;}if (Choose == 5){cout << "正在退出...." << endl;}//cin.get();//cin.get(); } //武器店 void Battle::Battle_Armsstore() {//武器店system("cls");cout << "歡迎來到武器店!" << endl;cout << "1、買1號武器(10M加10攻擊5防御)" << endl;cout << "2、買2號武器(50M加30攻擊10防御)" << endl;cout << "3、買3號武器(100M加60攻擊20防御)" << endl;cout << "4、離開武器店" << endl;int GetArms;cin >> GetArms;while (4 != GetArms){switch (GetArms) {case 1:if (Money < 10) {cout << "錢不夠" << endl;break;}cout << "購買成功" << endl;Attack += 10;Defense += 5;Money -= 10;break;case 2:if (Money < 50) {cout << "錢不夠" << endl;break;}cout << "購買成功" << endl;Attack += 30;Defense += 10;Money -= 50;break;case 3:if (Money < 100) {cout << "錢不夠" << endl;break;}cout << "購買成功" << endl;Attack += 60;Defense += 20;Money -= 100;break;default:cout << "無" << endl;}cin >> GetArms;}if (4 == GetArms) {cout << "歡迎下次再來!" << endl;Battle_Map();}} //藥店 void Battle::Battle_Drugstore() {//藥店system("cls");cout << "歡迎來到藥品店!" << endl;cout << "1、買1號補血藥(10M加200生命)" << endl;cout << "2、買2號補血藥(50M加1000生命力)" << endl;cout << "3、買3號補血藥(100M加2200生命力)" << endl;cout << "4、離開藥品店" << endl;int GetDrug;cin >> GetDrug;while (4 != GetDrug){switch (GetDrug) {case 1:if (Money < 10) {cout << "錢不夠" << endl;break;}cout << "購買成功" << endl;LifeValue += 200;Money -= 10;break;case 2:if (Money < 50) {cout << "錢不夠" << endl;break;}cout << "購買成功" << endl;LifeValue += 1000;Money -= 50;break;case 3:if (Money < 100) {cout << "錢不夠" << endl;break;}cout << "購買成功" << endl;LifeValue += 2200;Money -= 100;break;default:cout << "無" << endl;}cin >> GetDrug;}if (4 == GetDrug) {cout << "歡迎下次再來!" << endl;Battle_Map();} } //打小怪 void Battle::Battle_SmallMonster() {system("cls");cout << "開始打小怪" << endl;//定義主角對怪物殺傷 和怪物對主角殺傷double *pKillValue = new double(0);//初始值double *mKillValue = new double(0);//*pKillValue = 0;//*mKillValue = 0;int *HuiHe = new int;//回合制初始化*HuiHe = 1;//開始攻擊int *XuanZe = new int;/*殺傷=攻擊力*2-防御玩家每回合可以選擇攻擊和防御*///判斷生命力while ((g_LifeValue[0]) > 0 && LifeValue > 0 && (*XuanZe) != 2) {cout << "現在是第" << *HuiHe << "回合!" << endl;cout << "請選擇你的動作:\n";cout << "1、攻擊\n2、逃跑\n";cin >> *XuanZe;switch ((*XuanZe)){case 1:cout << "你對小怪發起攻擊!" << endl;g_LifeValue[0] -= (Attack * 2 - (g_Defense[0]));//一次攻擊 小怪剩余*mKillValue = Attack * 2 - (g_Defense[0]);cout << "你打掉了小怪物" << *mKillValue << "的生命" << endl;cout << "小怪物還剩" << (g_LifeValue[0]) - (*mKillValue) << "點生命" << endl;//小怪攻擊你LifeValue -= ((g_Attack[0]) * 2 - Defense);//攻擊剩余生命*pKillValue = (g_Attack[0]) * 2 - Defense;cout << "小怪物對你發動了攻擊!" << endl;cout << "小怪物打掉了你" << *pKillValue << "的生命" << endl;cout << "你還剩" << LifeValue - (*pKillValue) << "點生命" << endl;break;case 2://逃跑 繼續進行cout << "你決定逃跑!" << endl;cout << "逃跑成功!" << endl;continue;default:cout << "不要亂選!" << endl;break;}(*HuiHe)++;//第二回合}if ((g_LifeValue[0]) <= 0) {//怪物被殺死cout << "小怪被殺死" << endl;Money += (g_Money[0]);Battle_Map();}else if(LifeValue <=0 ){//你被小怪殺死cout << "你被小怪殺死,游戲結束" << endl;}else if (2 == (*XuanZe)) {cout << "逃回小鎮" << endl;Battle_Map();}delete pKillValue;delete mKillValue;delete XuanZe;delete HuiHe; } //打大怪 void Battle::Battle_BigMonster() {system("cls");cout << "開始打大怪" << endl;//定義主角對怪物殺傷 和怪物對主角殺傷double *pKillValue = new double(0);//初始值double *mKillValue = new double(0);//*pKillValue = 0;//*mKillValue = 0;int *HuiHe = new int;//回合制初始化*HuiHe = 1;//開始攻擊int *XuanZe = new int;/*殺傷=攻擊力*2-防御玩家每回合可以選擇攻擊和防御*///判斷生命力while ((g_LifeValue[1]) > 0 && LifeValue > 0 && (*XuanZe) != 2) {cout << "現在是第" << *HuiHe << "回合!" << endl;cout << "請選擇你的動作:\n";cout << "1、攻擊\n2、逃跑\n";cin >> *XuanZe;switch ((*XuanZe)){case 1:cout << "你對小怪發起攻擊!" << endl;g_LifeValue[1] -= (Attack * 2 - (g_Defense[1]));//一次攻擊 小怪剩余*mKillValue = Attack * 2 - (g_Defense[1]);cout << "你打掉了小怪物" << *mKillValue << "的生命" << endl;cout << "小怪物還剩" << (g_LifeValue[1]) - (*mKillValue) << "點生命" << endl;//小怪攻擊你LifeValue -= ((g_Attack[1]) * 2 - Defense);//攻擊剩余生命*pKillValue = (g_Attack[1]) * 2 - Defense;cout << "小怪物對你發動了攻擊!" << endl;cout << "小怪物打掉了你" << *pKillValue << "的生命" << endl;cout << "你還剩" << LifeValue - (*pKillValue) << "點生命" << endl;break;case 2://逃跑 繼續進行cout << "你決定逃跑!" << endl;cout << "逃跑成功!" << endl;continue;default:cout << "不要亂選!" << endl;break;}(*HuiHe)++;//第二回合}if ((g_LifeValue[1]) <= 0) {//怪物被殺死cout << "小怪被殺死" << endl;Money += (g_Money[1]);Battle_Map();}else if (LifeValue <= 0) {//你被小怪殺死cout << "你被小怪殺死,游戲結束" << endl;}else if (2 == (*XuanZe)) {cout << "逃回小鎮" << endl;Battle_Map();}delete pKillValue;delete mKillValue;delete XuanZe;delete HuiHe; } //豬頭文件 聲明對象,調用類函數main.cpp#include <iostream> #include "Battle.h"using namespace std;int main() {Battle ba;ba.Battle_Init();//缺少清空控制臺system("pause");return 0; }簡單實現控制臺邏輯。
總結
以上是生活随笔為你收集整理的简单的C++面向对象打怪小游戏的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 联想G50-70装机过程
- 下一篇: SICK西克变频器编码器调试程序 Hip