超级回合制RPG游戏~c语言实现

默认分类 | 2018-09-30 16:43:36 | 阅读 159 次 | 评论(0)
#include <iostream> #include <string> #include <cstdlib> #include <time.h> using namespace std;       //武器类 class Weapon{ protected: int Price; //武器价格 int ATK; //武器攻击力 string Name; //武器名称 string Rank; //武器等级 public: Weapon(int price=0,int atk=0,string name="",string rank=""){Price=price;ATK=atk;Name=name;Rank=rank;} int GetPrice(){return Price;} int GetATK(){return ATK;} string GetName(){return Name;} string GetRank(){return Rank;} virtual ~Weapon(){} };   //战士武器类 class WarriorWeapon:public Weapon{ public: WarriorWeapon(int price=0,int atk=0,string name="",string rank=""):Weapon(price,atk,name,rank){} ~WarriorWeapon(){} };   class WarriorWeapon1:public WarriorWeapon{ public: WarriorWeapon1(int price=500,int atk=70,string name="巨剑",string rank="白银"):WarriorWeapon(price,atk,name,rank){} ~WarriorWeapon1(){} };   class WarriorWeapon2:public WarriorWeapon{ public: WarriorWeapon2(int price=1000,int atk=130,string name="巨剑",string rank="黄金"):WarriorWeapon(price,atk,name,rank){} ~WarriorWeapon2(){} };   class WarriorWeapon3:public WarriorWeapon{ public: WarriorWeapon3(int price=1800,int atk=220,string name="巨剑",string rank="白金"):WarriorWeapon(price,atk,name,rank){} ~WarriorWeapon3(){} };   class WarriorWeapon4:public WarriorWeapon{ public: WarriorWeapon4(int price=3000,int atk=350,string name="巨剑",string rank="钻石"):WarriorWeapon(price,atk,name,rank){} ~WarriorWeapon4(){} };   //法师武器类 class WizardWeapon:public Weapon{ public: WizardWeapon(int price=0,int atk=0,string name="",string rank=""):Weapon(price,atk,name,rank){} ~WizardWeapon(){} };   class WizardWeapon1:public WizardWeapon{ public: WizardWeapon1(int price=400,int atk=50,string name="法杖",string rank="白银"):WizardWeapon(price,atk,name,rank){} ~WizardWeapon1(){} };   class WizardWeapon2:public WizardWeapon{ public: WizardWeapon2(int price=800,int atk=100,string name="法杖",string rank="黄金"):WizardWeapon(price,atk,name,rank){} ~WizardWeapon2(){} };   class WizardWeapon3:public WizardWeapon{ public: WizardWeapon3(int price=1500,int atk=180,string name="法杖",string rank="白金"):WizardWeapon(price,atk,name,rank){} ~WizardWeapon3(){} };   class WizardWeapon4:public WizardWeapon{ public: WizardWeapon4(int price=2500,int atk=300,string name="法杖",string rank="钻石"):WizardWeapon(price,atk,name,rank){} ~WizardWeapon4(){} };   //妖怪武器类 class MonsterWeapon:public Weapon{ public: MonsterWeapon(int price=0,int atk=0,string name="",string rank=""):Weapon(price,atk,name,rank){} ~MonsterWeapon(){} };   class MonsterWeapon1:public MonsterWeapon{ public: MonsterWeapon1(int price=450,int atk=60,string name="灵刃",string rank="白银"):MonsterWeapon(price,atk,name,rank){} ~MonsterWeapon1(){} };   class MonsterWeapon2:public MonsterWeapon{ public: MonsterWeapon2(int price=900,int atk=120,string name="灵刃",string rank="黄金"):MonsterWeapon(price,atk,name,rank){} ~MonsterWeapon2(){} };   class MonsterWeapon3:public MonsterWeapon{ public: MonsterWeapon3(int price=1650,int atk=200,string name="灵刃",string rank="白金"):MonsterWeapon(price,atk,name,rank){} ~MonsterWeapon3(){} };   class MonsterWeapon4:public MonsterWeapon{ public: MonsterWeapon4(int price=2750,int atk=320,string name="灵刃",string rank="钻石"):MonsterWeapon(price,atk,name,rank){} ~MonsterWeapon4(){} };     //盔甲类 class Armor{ protected: int Price; //盔甲价格 int DEF; //盔甲防御力 string Name; //盔甲名称 string Rank; //盔甲等级 public: Armor(int price=0,int def=0,string name="",string rank=""){Price=price;DEF=def;Name=name;Rank=rank;} int GetPrice(){return Price;} int GetDEF(){return DEF;} string GetName(){return Name;} string GetRank(){return Rank;} //虚析构函数 ~Armor(){} };     //战士盔甲类 class WarriorArmor:public Armor{ public: WarriorArmor(int price=0,int def=0,string name="",string rank=""):Armor(price,def,name,rank){} ~WarriorArmor(){} };   class WarriorArmor1:public WarriorArmor{ public: WarriorArmor1(int price=300,int def=30,string name="铠甲",string rank="白银"):WarriorArmor(price,def,name,rank){} ~WarriorArmor1(){} };   class WarriorArmor2:public WarriorArmor{ public: WarriorArmor2(int price=600,int def=60,string name="铠甲",string rank="黄金"):WarriorArmor(price,def,name,rank){} ~WarriorArmor2(){} };   class WarriorArmor3:public WarriorArmor{ public: WarriorArmor3(int price=1200,int def=100,string name="铠甲",string rank="白金"):WarriorArmor(price,def,name,rank){} ~WarriorArmor3(){} };   class WarriorArmor4:public WarriorArmor{ public: WarriorArmor4(int price=2000,int def=200,string name="铠甲",string rank="钻石"):WarriorArmor(price,def,name,rank){} ~WarriorArmor4(){} };     //法师盔甲类 class WizardArmor:public Armor{ public: WizardArmor(int price=0,int def=0,string name="",string rank=""):Armor(price,def,name,rank){} ~WizardArmor(){} };   class WizardArmor1:public WarriorArmor{ public: WizardArmor1(int price=400,int def=40,string name="面纱",string rank="白银"):WarriorArmor(price,def,name,rank){} ~WizardArmor1(){} };   class WizardArmor2:public WarriorArmor{ public: WizardArmor2(int price=800,int def=80,string name="面纱",string rank="黄金"):WarriorArmor(price,def,name,rank){} ~WizardArmor2(){} };   class WizardArmor3:public WarriorArmor{ public: WizardArmor3(int price=1500,int def=160,string name="面纱",string rank="白金"):WarriorArmor(price,def,name,rank){} ~WizardArmor3(){} };   class WizardArmor4:public WarriorArmor{ public: WizardArmor4(int price=2500,int def=250,string name="面纱",string rank="钻石"):WarriorArmor(price,def,name,rank){} ~WizardArmor4(){} };     //妖怪盔甲类 class MonsterArmor:public Armor{ public: MonsterArmor(int price=0,int def=0,string name="",string rank=""):Armor(price,def,name,rank){} ~MonsterArmor(){} };   class MonsterArmor1:public MonsterArmor{ public: MonsterArmor1(int price=350,int def=35,string name="鳞甲",string rank="白银"):MonsterArmor(price,def,name,rank){} ~MonsterArmor1(){} };   class MonsterArmor2:public MonsterArmor{ public: MonsterArmor2(int price=700,int def=70,string name="鳞甲",string rank="黄金"):MonsterArmor(price,def,name,rank){} ~MonsterArmor2(){} };   class MonsterArmor3:public MonsterArmor{ public: MonsterArmor3(int price=1350,int def=130,string name="鳞甲",string rank="白金"):MonsterArmor(price,def,name,rank){} ~MonsterArmor3(){} };   class MonsterArmor4:public MonsterArmor{ public: MonsterArmor4(int price=2300,int def=220,string name="鳞甲",string rank="钻石"):MonsterArmor(price,def,name,rank){} ~MonsterArmor4(){} };     //角色类 class Character{ protected: string Name; //职业名称 int Health; //生命值 int ATK; //攻击力 int DEF; //防御力 int Money; //武器,盔甲,药(暂用治疗术代替药水) Weapon *weapon; Armor *armor; //Medicine medicine; public: Character(int health=2000,int atk=0,int def=0,int money=500,string name="") {Health=health;ATK=atk;DEF=def;Money=money;Name=name;weapon=new Weapon();armor=new Armor();} //得到角色的信息 string GetName(){return Name;} int GetHealth(){return Health;} int GetATK(){return ATK;} int GetDEF(){return DEF;} int GetMoney(){return Money;} Weapon* GetWeapon(){return weapon;} Armor* GetArmor(){return armor;}     //获得金钱,武器,装备 void GetMoney(int money){Money+=money;cout<<"获得了"<<money<<"金币"<<endl;} void GetWeapon(Weapon *w) { Money-=w->GetPrice()-weapon->GetPrice(); //金币减少 ATK+=w->GetATK()-weapon->GetATK(); //攻击力上升 weapon=w; } void GetArmor(Armor *a) { Money-=a->GetPrice()-armor->GetPrice(); //金币减少 DEF+=a->GetDEF()-armor->GetDEF(); //防御力上升 armor=a; }   /*void GetMedicine(Medicine m) { Medicine=m; Money-=m.Price; }*/   //受到攻击 void TakeAttack(int atk) { if(atk>DEF) Health=Health-atk+DEF; if(Health<0) Health=0; }   //使用治疗术 void Treatment() { if((Health+200)<=2000) Health+=200; else Health=2000; }   /*void TakeMedicine() { if((Health+medicine.value)<=2000) Health+=medicine.value; else Health=2000; }*/   //展示角色信息 void Show() { cout<<"职业:"<<Name<<endl; cout<<"生命值:"<<Health<<endl; cout<<"武器:"<<weapon->GetRank()<<weapon->GetName()<<"\t攻击力:"<<ATK<<endl; cout<<"盔甲:"<<armor->GetRank()<<armor->GetName()<<"\t防御力:"<<DEF<<endl; cout<<"金币:"<<Money<<endl; } //虚析构函数 virtual ~Character() { if(!weapon)delete weapon; if(!armor) delete armor; } };   //战士类 class Warrior:public Character{ public: Warrior(int health=2000,int atk=70,int def=20,int money=500,string name="战士"):Character(health, atk,def,money,name){} ~Warrior() { if(!weapon)delete weapon; if(!armor) delete armor; } };   //法师类 class Wizard:public Character{ public: Wizard(int health=2000,int atk=50,int def=40,int money=500,string name="法师"):Character(health, atk,def,money,name){} ~Wizard() { if(!weapon)delete weapon; if(!armor) delete armor; } };   //妖怪类 class Monster:public Character{ public: Monster(int health=2000,int atk=60,int def=30,int money=500,string name="妖怪"):Character(health, atk,def,money,name){} ~Monster() { if(!weapon)delete weapon; if(!armor) delete armor; } };     class CharacterFactory{ public: Character *CreatCharacter(int flag) { switch(flag) { case 1: return new Warrior(); break; case 2: return new Wizard(); break; case 3: return new Monster(); break; } } };     //武器商店类 class WeaponStore{ public: virtual void Show()=0; //武器信息展示 virtual Weapon *CreatWeapon(int flag)=0; //创建武器 //虚析构函数,防止析构一般,泄漏一半 virtual ~WeaponStore(){} };     //战士武器商店类 class WarriorWeaponStore:public WeaponStore{ public: void Show() { cout<<"1.白银巨剑 500金币 +70攻击力"<<endl; cout<<"2.黄金巨剑 1000金币 +130攻击力"<<endl; cout<<"3.白金巨剑 1800金币 +220攻击力"<<endl; cout<<"4.钻石巨剑 3000金币 +350攻击力"<<endl; } Weapon *CreatWeapon(int flag) { switch(flag) { case 1: return new WarriorWeapon1();break; case 2: return new WarriorWeapon2();break; case 3: return new WarriorWeapon3();break; case 4: return new WarriorWeapon4();break; } } ~WarriorWeaponStore(){} };   //法师武器商店类 class WizardWeaponStore:public WeaponStore{ public: void Show() { cout<<"1.白银法杖 400金币 +50攻击力"<<endl; cout<<"2.黄金法杖 800金币 +100攻击力"<<endl; cout<<"3.白金法杖 1500金币 +180攻击力"<<endl; cout<<"4.钻石法杖 2500金币 +300攻击力"<<endl; } Weapon *CreatWeapon(int flag) { switch(flag) { case 1: return new WizardWeapon1();break; case 2: return new WizardWeapon2();break; case 3: return new WizardWeapon3();break; case 4: return new WizardWeapon4();break; } } ~WizardWeaponStore(){} };   //妖怪武器商店类 class MonsterWeaponStore:public WeaponStore{ public: void Show() { cout<<"1.白银灵刃 450金币 +60攻击力"<<endl; cout<<"2.黄金灵刃 900金币 +120攻击力"<<endl; cout<<"3.白金灵刃 1650金币 +200攻击力"<<endl; cout<<"4.钻石灵刃 2750金币 +320攻击力"<<endl; } Weapon *CreatWeapon(int flag) { switch(flag) { case 1: return new MonsterWeapon1();break; case 2: return new MonsterWeapon2();break; case 3: return new MonsterWeapon3();break; case 4: return new MonsterWeapon4();break; } } ~MonsterWeaponStore(){} };     //盔甲商店类 class ArmorStore{ public: virtual void Show()=0; //盔甲信息展示 virtual Armor* CreatArmor(int flag)=0; //创建盔甲 virtual ~ArmorStore(){} };     //战士盔甲商店类 class WarriorArmorStore:public ArmorStore{ public: void Show() { cout<<"1.白银铠甲 300金币 +30防御力"<<endl; cout<<"2.黄金铠甲 600金币 +60防御力"<<endl; cout<<"3.白金铠甲 1200金币 +100防御力"<<endl; cout<<"4.钻石铠甲 2000金币 +200防御力"<<endl; } Armor *CreatArmor(int flag) { switch(flag) { case 1: return new WarriorArmor1();break; case 2: return new WarriorArmor2();break; case 3: return new WarriorArmor3();break; case 4: return new WarriorArmor4();break; } } ~WarriorArmorStore(){} };   //法师盔甲商店类 class WizardArmorStore:public ArmorStore{ public: void Show() { cout<<"1.白银面纱 400金币 +40防御力"<<endl; cout<<"2.黄金面纱 800金币 +80防御力"<<endl; cout<<"3.白金面纱 1500金币 +160防御力"<<endl; cout<<"4.钻石面纱 2500金币 +250防御力"<<endl; } Armor *CreatArmor(int flag) { switch(flag) { case 1: return new WizardArmor1();break; case 2: return new WizardArmor2();break; case 3: return new WizardArmor3();break; case 4: return new WizardArmor4();break; } } ~WizardArmorStore(){} };   //妖怪盔甲商店类 class MonsterArmorStore:public ArmorStore{ public: void Show() { cout<<"1.白银鳞甲 350金币 +35防御力"<<endl; cout<<"2.黄金鳞甲 700金币 +70防御力"<<endl; cout<<"3.白金鳞甲 1350金币 +130防御力"<<endl; cout<<"4.钻石鳞甲 2300金币 +220防御力"<<endl; } Armor *CreatArmor(int flag) { switch(flag) { case 1: return new MonsterArmor1();break; case 2: return new MonsterArmor2();break; case 3: return new MonsterArmor3();break; case 4: return new MonsterArmor4();break; } } ~MonsterArmorStore(){} };   //管理商店类 class StoreManager{ public: WeaponStore *CreatWeaponStore(string name) { if(name=="战士") return new WarriorWeaponStore(); if(name=="法师") return new WizardWeaponStore(); if(name=="妖怪") return new MonsterWeaponStore(); } ArmorStore *CreatArmorStore(string name) { if(name=="战士") return new WarriorArmorStore(); if(name=="法师") return new WizardArmorStore(); if(name=="妖怪") return new MonsterArmorStore(); } };     int main() { CharacterFactory characterFactory; //角色产生工厂 Character *player1=0; //玩家一角色 Character *player2=0; //玩家二角色   StoreManager storeManager; //商店产生工厂(决定产生哪种职业的武器和盔甲) WeaponStore* player1weaponStore=0; //玩家一武器商店 ArmorStore* player1armorStore=0; //玩家一盔甲商店 WeaponStore* player2weaponStore=0; //玩家二武器商店 ArmorStore* player2armorStore=0; //玩家二盔甲商店   Weapon *player1Weapon=0; //玩家一武器 Weapon *player2Weapon=0; //玩家二武器 Armor *player1Armor=0; //玩家一盔甲 Armor *player2Armor=0; //玩家二盔甲   int money; //每回合随机生成金币 srand((unsigned)time(NULL)); money=rand()%100+200; //每回合生成200到300的金币     int flag=0,count=0; //用于switch的flag和记录回合数的count const int treatCD=4; //治疗术的CD,即四个回合 int player1NextTreat=1,player2NextTreat=1; //玩家一和玩家二下次可以使用治疗术的回合     //游戏开始 cout<<"游戏开始!"<<endl;   //玩家一创建角色 cout<<"玩家一请选择职业:\n"<<"1.战士\t2.法师\t3.妖怪"<<endl; while(1) { cin>>flag; if(!cin) //输入类型错误,即int型的flag却输入了字母 { cin.clear(); //防止输入字母后程序崩溃,将之前的输入错误标识改回为0,即输入无错误 cin.sync(); //清除之前错误的数据流,以便重新输入 cout<<"输入错误请重新输入!\n"<<endl; continue; } if(flag!=1&&flag!=2&&flag!=3) cout<<"输入错误,请重新输入!\n"; else break; } player1=characterFactory.CreatCharacter(flag); player1weaponStore=storeManager.CreatWeaponStore(player1->GetName()); player1armorStore=storeManager.CreatArmorStore(player1->GetName());   //玩家二创建角色 cout<<"玩家二请选择职业:\n"<<"1.战士\t2.法师\t3.妖怪"<<endl; while(1) { cin>>flag; if(!cin) //输入类型错误,即int型的flag却输入了字母 { cin.clear(); //防止输入字母后程序崩溃,将之前的输入错误标识改回为0,即输入无错误 cin.sync(); //清除之前错误的数据流,以便重新输入 cout<<"输入错误请重新输入!\n"<<endl; continue; } if(flag!=1&&flag!=2&&flag!=3) cout<<"输入错误,请重新输入!"; else break; } player2=characterFactory.CreatCharacter(flag); player2weaponStore=storeManager.CreatWeaponStore(player2->GetName()); player2armorStore=storeManager.CreatArmorStore(player2->GetName());     //无限循环,直到有一方生命值下降为0 while(1) { count++; cout<<"\n*************"<<endl; cout<<"***第"<<count<<"回合***"<<endl; cout<<"*************\n"<<endl; //玩家一进行游戏 cout<<"玩家一:"<<endl; money=rand()%100+200; player1->GetMoney(money); player1->Show(); while(1) //为了能退到上一级,即选择攻击或买武器等,需要这个循环 { cout<<"请选择操作:"<<"\n1.攻击\n2.买武器\n3.买盔甲\n4.治疗术(回复200生命值,冷却时间为四个回合)"<<endl; while(1) { cin>>flag; if(!cin) //输入类型错误,即int型的flag却输入了字母 { cin.clear(); //防止输入字母后程序崩溃,将之前的输入错误标识改回为0,即输入无错误 cin.sync(); //清除之前错误的数据流,以便重新输入 cout<<"输入错误请重新输入!\n"<<endl; continue; } if(flag!=1&&flag!=2&&flag!=3&&flag!=4) cout<<"输入错误,请重新输入"<<endl; else break; } switch(flag) { case 1: //攻击 player2->TakeAttack(player1->GetATK());break; case 2: //买武器 player1weaponStore->Show(); cout<<"0.返回上一级"<<endl; while(1) { cout<<"请选择操作"<<endl; cin>>flag; if(!cin) //输入类型错误,即int型的flag却输入了字母 { cin.clear(); //防止输入字母后程序崩溃,将之前的输入错误标识改回为0,即输入无错误 cin.sync(); //清除之前错误的数据流,以便重新输入 cout<<"输入错误请重新输入!\n"<<endl; continue; } if(flag!=0&&flag!=1&&flag!=2&&flag!=3&&flag!=4) cout<<"输入错误,请重新输入"<<endl; else if(flag==0) break; else { Weapon* tempWeapon=player1weaponStore->CreatWeapon(flag); if(player1->GetMoney()<tempWeapon->GetPrice()-player1->GetWeapon()->GetPrice()) { cout<<"你的金币不够,请重新选择或输入0返回上一级"<<endl; delete tempWeapon; } else { delete tempWeapon; break; } } } if(flag==0) break; player1Weapon=player1weaponStore->CreatWeapon(flag); player1->GetWeapon(player1Weapon); break; case 3: //买盔甲 player1armorStore->Show(); cout<<"0.返回上一级"<<endl; while(1) { cout<<"请选择盔甲"<<endl; cin>>flag; if(!cin) //输入类型错误,即int型的flag却输入了字母 { cin.clear(); //防止输入字母后程序崩溃,将之前的输入错误标识改回为0,即输入无错误 cin.sync(); //清除之前错误的数据流,以便重新输入 cout<<"输入错误请重新输入!\n"<<endl; continue; } if(flag!=0&&flag!=1&&flag!=2&&flag!=3&&flag!=4) cout<<"输入错误,请重新输入"<<endl; else if(flag==0) break; else { Armor* tempArmor=player1armorStore->CreatArmor(flag); if(player1->GetMoney()<tempArmor->GetPrice()-player1->GetArmor()->GetPrice()) { cout<<"你的金币不够,请重新选择或输入0返回上一级"<<endl; delete tempArmor; } else { delete tempArmor; break; } } } if(flag==0) break; player1Armor=player1armorStore->CreatArmor(flag); player1->GetArmor(player1Armor); break; case 4: //补血 if(count>=player1NextTreat) { player1->Treatment(); player1NextTreat+=treatCD; } else { cout<<"治疗术正在冷却中,还剩"<<(player1NextTreat-count)<<"个回合"<<endl; while(1) { cout<<"按0退回上一级"<<endl; cin>>flag; if(flag==0) break; } } break; } if(flag!=0) break; } //判断输赢 if(player2->GetHealth()<=0) { cout<<"玩家二生命值下降为0,玩家一胜利"<<endl; break; }   //玩家二进行游戏 cout<<"玩家二:"<<endl; money=rand()%100+200; player2->GetMoney(money); player2->Show(); while(1) //为了能退到上一级,即选择攻击或买武器等,需要这个循环 { cout<<"请选择操作:"<<"\n1.攻击\n2.买武器\n3.买盔甲\n4.治疗术(回复200生命值,冷却时间为四个回合)"<<endl; while(1) { cin>>flag; if(!cin) //输入类型错误,即int型的flag却输入了字母 { cin.clear(); //防止输入字母后程序崩溃,将之前的输入错误标识改回为0,即输入无错误 cin.sync(); //清除之前错误的数据流,以便重新输入 cout<<"输入错误请重新输入!\n"<<endl; continue; } if(flag!=1&&flag!=2&&flag!=3&&flag!=4) cout<<"输入错误,请重新输入"<<endl; else break; } switch(flag) { case 1: //攻击 player1->TakeAttack(player2->GetATK());break; case 2: //买武器 player2weaponStore->Show(); cout<<"0.返回上一级"<<endl; while(1) { cout<<"请选择操作"<<endl; cin>>flag; if(!cin) //输入类型错误,即int型的flag却输入了字母 { cin.clear(); //防止输入字母后程序崩溃,将之前的输入错误标识改回为0,即输入无错误 cin.sync(); //清除之前错误的数据流,以便重新输入 cout<<"输入错误请重新输入!\n"<<endl; continue; } if(flag!=0&&flag!=1&&flag!=2&&flag!=3&&flag!=4) cout<<"输入错误,请重新输入"<<endl; else if(flag==0) break; else { Weapon* tempWeapon=player2weaponStore->CreatWeapon(flag); if(player2->GetMoney()<tempWeapon->GetPrice()-player2->GetWeapon()->GetPrice()) { cout<<"你的金币不够,请重新选择或输入0返回上一级"<<endl; delete tempWeapon; } else { delete tempWeapon; break; } } } if(flag==0) break; player2Weapon=player2weaponStore->CreatWeapon(flag); player2->GetWeapon(player2Weapon); break; case 3: //买盔甲 player2armorStore->Show(); cout<<"0.返回上一级"<<endl; while(1) { cout<<"请选择盔甲"<<endl; cin>>flag; if(!cin) //输入类型错误,即int型的flag却输入了字母 { cin.clear(); //防止输入字母后程序崩溃,将之前的输入错误标识改回为0,即输入无错误 cin.sync(); //清除之前错误的数据流,以便重新输入 cout<<"输入错误请重新输入!\n"<<endl; continue; } if(flag!=0&&flag!=1&&flag!=2&&flag!=3&&flag!=4) cout<<"输入错误,请重新输入"<<endl; else if(flag==0) break; else { Armor* tempArmor=player2armorStore->CreatArmor(flag); if(player2->GetMoney()<tempArmor->GetPrice()-player2->GetArmor()->GetPrice()) { cout<<"你的金币不够,请重新选择或输入0返回上一级"<<endl; delete tempArmor; } else { delete tempArmor; break; } } } if(flag==0) break; player2Armor=player2armorStore->CreatArmor(flag); player2->GetArmor(player2Armor); break; case 4: //补血 if(count>=player2NextTreat) { player2->Treatment(); player2NextTreat+=treatCD; } else { cout<<"治疗术正在冷却中,还剩"<<(player2NextTreat-count)<<"个回合"<<endl; while(1) { cout<<"按0退回上一级"<<endl; cin>>flag; if(flag==0) break; } } break; } if(flag!=0) break; } //判断输赢 if(player1->GetHealth()<=0) { cout<<"玩家一生命值下降为0,玩家二胜利"<<endl; break; } }   //销毁申请的空间 if(!player1) delete player1; if(!player2) delete player2; if(!player1weaponStore) delete player1weaponStore; if(!player1armorStore) delete player1armorStore; if(!player2weaponStore) delete player2weaponStore; if(!player2armorStore) delete player2armorStore; if(!player1Weapon) delete player1Weapon; if(!player2Weapon) delete player2Weapon; if(!player1Armor) delete player1Armor; if(!player2Armor) delete player2Armor;   system("pause"); return 0; }
文章评论,共0条
游客请输入验证码
文章分类
文章归档
最新评论