日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > c/c++ >内容正文

c/c++

简单的C++面向对象打怪小游戏

發(fā)布時(shí)間:2024/3/26 c/c++ 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 简单的C++面向对象打怪小游戏 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

//簡(jiǎn)單的boos打小怪,還能繼續(xù)優(yōu)化。

Battle.h#pragma once //防止頭文件重復(fù) class Battle { public:Battle();~Battle();void Battle_Armsstore();//武器店void Battle_Drugstore();//藥品店void Battle_SmallMonster();//小怪void Battle_BigMonster();//大怪void Battle_Init();//初始化inline void Battle_Map();//初始頁(yè)面地圖 private:double LifeValue;//生命int Attack;//攻擊int Defense;//防御int Money;//金錢bool TongGuan;//通關(guān)//戰(zhàn)斗過(guò)程各種變化 0表示打小怪 1表示打大怪double *g_LifeValue;int *g_Attack;//怪物攻擊力int *g_Defense;//怪物防御力int *g_Money;//打一個(gè)怪物得到的金錢 }; 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;//打一個(gè)怪物得到的金錢 } void Battle::Battle_Map() {system("cls");cout << "歡迎你開(kāi)始玩打怪物小游戲!\n";cout << "小鎮(zhèn)\n";cout << "一個(gè)1000年的小鎮(zhèn)。周圍有一條河,有一片樹林,很多房子和很多人。\n有一家藥店" << endl;cout << "和一家武器店。\n";cout << "1.去武器店" << endl;cout << "2.去藥品店" << endl;cout << "3.去打小怪物" << endl;cout << "4.去打大怪物" << endl;cout << "5.退出游戲" << endl;cout << "6.顯示你的狀態(tài)" << endl; } //初始化 void Battle::Battle_Init() {Battle_Map();int Choose;cin >> Choose;//選擇項(xiàng)目while (Choose != 5) {if (LifeValue < 0) {cout << "生命耗盡" << endl;break;}if (TongGuan) {cout << "恭喜通關(guān)" << 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 << "請(qǐng)繼續(xù)選擇" << endl;break;default:cout << "請(qǐng)輸入正確選擇!" << endl;break;}cin >> Choose;}if (Choose == 5){cout << "正在退出...." << endl;}//cin.get();//cin.get(); } //武器店 void Battle::Battle_Armsstore() {//武器店system("cls");cout << "歡迎來(lái)到武器店!" << endl;cout << "1、買1號(hào)武器(10M加10攻擊5防御)" << endl;cout << "2、買2號(hào)武器(50M加30攻擊10防御)" << endl;cout << "3、買3號(hào)武器(100M加60攻擊20防御)" << endl;cout << "4、離開(kāi)武器店" << endl;int GetArms;cin >> GetArms;while (4 != GetArms){switch (GetArms) {case 1:if (Money < 10) {cout << "錢不夠" << endl;break;}cout << "購(gòu)買成功" << endl;Attack += 10;Defense += 5;Money -= 10;break;case 2:if (Money < 50) {cout << "錢不夠" << endl;break;}cout << "購(gòu)買成功" << endl;Attack += 30;Defense += 10;Money -= 50;break;case 3:if (Money < 100) {cout << "錢不夠" << endl;break;}cout << "購(gòu)買成功" << endl;Attack += 60;Defense += 20;Money -= 100;break;default:cout << "無(wú)" << endl;}cin >> GetArms;}if (4 == GetArms) {cout << "歡迎下次再來(lái)!" << endl;Battle_Map();}} //藥店 void Battle::Battle_Drugstore() {//藥店system("cls");cout << "歡迎來(lái)到藥品店!" << endl;cout << "1、買1號(hào)補(bǔ)血藥(10M加200生命)" << endl;cout << "2、買2號(hào)補(bǔ)血藥(50M加1000生命力)" << endl;cout << "3、買3號(hào)補(bǔ)血藥(100M加2200生命力)" << endl;cout << "4、離開(kāi)藥品店" << endl;int GetDrug;cin >> GetDrug;while (4 != GetDrug){switch (GetDrug) {case 1:if (Money < 10) {cout << "錢不夠" << endl;break;}cout << "購(gòu)買成功" << endl;LifeValue += 200;Money -= 10;break;case 2:if (Money < 50) {cout << "錢不夠" << endl;break;}cout << "購(gòu)買成功" << endl;LifeValue += 1000;Money -= 50;break;case 3:if (Money < 100) {cout << "錢不夠" << endl;break;}cout << "購(gòu)買成功" << endl;LifeValue += 2200;Money -= 100;break;default:cout << "無(wú)" << endl;}cin >> GetDrug;}if (4 == GetDrug) {cout << "歡迎下次再來(lái)!" << endl;Battle_Map();} } //打小怪 void Battle::Battle_SmallMonster() {system("cls");cout << "開(kāi)始打小怪" << endl;//定義主角對(duì)怪物殺傷 和怪物對(duì)主角殺傷double *pKillValue = new double(0);//初始值double *mKillValue = new double(0);//*pKillValue = 0;//*mKillValue = 0;int *HuiHe = new int;//回合制初始化*HuiHe = 1;//開(kāi)始攻擊int *XuanZe = new int;/*殺傷=攻擊力*2-防御玩家每回合可以選擇攻擊和防御*///判斷生命力while ((g_LifeValue[0]) > 0 && LifeValue > 0 && (*XuanZe) != 2) {cout << "現(xiàn)在是第" << *HuiHe << "回合!" << endl;cout << "請(qǐng)選擇你的動(dòng)作:\n";cout << "1、攻擊\n2、逃跑\n";cin >> *XuanZe;switch ((*XuanZe)){case 1:cout << "你對(duì)小怪發(fā)起攻擊!" << endl;g_LifeValue[0] -= (Attack * 2 - (g_Defense[0]));//一次攻擊 小怪剩余*mKillValue = Attack * 2 - (g_Defense[0]);cout << "你打掉了小怪物" << *mKillValue << "的生命" << endl;cout << "小怪物還剩" << (g_LifeValue[0]) - (*mKillValue) << "點(diǎn)生命" << endl;//小怪攻擊你LifeValue -= ((g_Attack[0]) * 2 - Defense);//攻擊剩余生命*pKillValue = (g_Attack[0]) * 2 - Defense;cout << "小怪物對(duì)你發(fā)動(dòng)了攻擊!" << endl;cout << "小怪物打掉了你" << *pKillValue << "的生命" << endl;cout << "你還剩" << LifeValue - (*pKillValue) << "點(diǎn)生命" << endl;break;case 2://逃跑 繼續(xù)進(jìn)行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 << "你被小怪殺死,游戲結(jié)束" << endl;}else if (2 == (*XuanZe)) {cout << "逃回小鎮(zhèn)" << endl;Battle_Map();}delete pKillValue;delete mKillValue;delete XuanZe;delete HuiHe; } //打大怪 void Battle::Battle_BigMonster() {system("cls");cout << "開(kāi)始打大怪" << endl;//定義主角對(duì)怪物殺傷 和怪物對(duì)主角殺傷double *pKillValue = new double(0);//初始值double *mKillValue = new double(0);//*pKillValue = 0;//*mKillValue = 0;int *HuiHe = new int;//回合制初始化*HuiHe = 1;//開(kāi)始攻擊int *XuanZe = new int;/*殺傷=攻擊力*2-防御玩家每回合可以選擇攻擊和防御*///判斷生命力while ((g_LifeValue[1]) > 0 && LifeValue > 0 && (*XuanZe) != 2) {cout << "現(xiàn)在是第" << *HuiHe << "回合!" << endl;cout << "請(qǐng)選擇你的動(dòng)作:\n";cout << "1、攻擊\n2、逃跑\n";cin >> *XuanZe;switch ((*XuanZe)){case 1:cout << "你對(duì)小怪發(fā)起攻擊!" << endl;g_LifeValue[1] -= (Attack * 2 - (g_Defense[1]));//一次攻擊 小怪剩余*mKillValue = Attack * 2 - (g_Defense[1]);cout << "你打掉了小怪物" << *mKillValue << "的生命" << endl;cout << "小怪物還剩" << (g_LifeValue[1]) - (*mKillValue) << "點(diǎn)生命" << endl;//小怪攻擊你LifeValue -= ((g_Attack[1]) * 2 - Defense);//攻擊剩余生命*pKillValue = (g_Attack[1]) * 2 - Defense;cout << "小怪物對(duì)你發(fā)動(dòng)了攻擊!" << endl;cout << "小怪物打掉了你" << *pKillValue << "的生命" << endl;cout << "你還剩" << LifeValue - (*pKillValue) << "點(diǎn)生命" << endl;break;case 2://逃跑 繼續(xù)進(jìn)行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 << "你被小怪殺死,游戲結(jié)束" << endl;}else if (2 == (*XuanZe)) {cout << "逃回小鎮(zhèn)" << endl;Battle_Map();}delete pKillValue;delete mKillValue;delete XuanZe;delete HuiHe; } //豬頭文件 聲明對(duì)象,調(diào)用類函數(shù)main.cpp#include <iostream> #include "Battle.h"using namespace std;int main() {Battle ba;ba.Battle_Init();//缺少清空控制臺(tái)system("pause");return 0; }

簡(jiǎn)單實(shí)現(xiàn)控制臺(tái)邏輯。

總結(jié)

以上是生活随笔為你收集整理的简单的C++面向对象打怪小游戏的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。