遮天吧 关注:4,486,306贴子:86,299,758
  • 14回复贴,共1

求大神相助,在线等,好人一生平安啊#C++程序设计"类的继承"#

取消只看楼主收藏回复


奥特曼在与多个小怪兽过招的过程中,不断提升自己的等级。在一切就绪的时候,就可以挑战小怪兽的头Boss了。打败Boss就可以获得最终的胜利。
1. 在怪兽类的基础上,定义和实现一个Boss类。如有必要,请对奥特曼和怪兽类做出相应的修改。
Boss类对怪兽类进行了扩充和修改:
l Boss属性的初始值与一般怪兽不同,其等级为100,生命值为500,经验值是100,攻击力是100,钱数是10001。
l Boss有一个新的方法,即绝招(XP)。该方法将连续攻击奥特曼3次。
l Boss的反击方法(fightback)也与一般怪兽不同,一般情况下受到奥特曼的攻击就会反击一次,但每当受到奥特曼攻击的次数(count)累计5次,就会使用绝招(XP)。
修改游戏框架,在最后加入奥特曼打Boss的环节,从而形成一个较为完整的游戏。


1楼2013-05-06 16:04回复
    求助啊,我写了一个代码,求大神在此基础上改成实验要求的


    6楼2013-05-06 16:05
    回复
      求助啊


      7楼2013-05-06 16:08
      回复
        人工置顶


        11楼2013-05-06 16:21
        回复
          人工置顶


          12楼2013-05-06 16:32
          回复
            八十万大帝们,求拯救啊


            13楼2013-05-06 16:39
            回复
              main.cpp
              #include <iostream>
              #include <string>
              using namespace std;#include "Ultraman.h"
              #include "Monster.h"int main(){
              cout<<"欢迎来到奥特曼的世界!在奥特曼的世界,打怪兽就是全部!"<<endl;
              cout<<"现在人人都有机会成为奥特曼,加入到与怪兽无止境的战斗中。"<<endl;
              cout<<"可惜,并非人人生来就是英雄,革命尚未成功,同志仍需努力啊。"<<endl;
              cout<<"每一个奥特曼都要从零开始,辛勤劳动,打怪升级,最终才能成为举世瞩目的大英雄。"<<endl<<endl;
              char ch1=' ',ch2=' ',ch3=' ';
              Ultraman u(1,0,10,1,0); //生成奥特曼对象并初始化
              while(ch1!='Y'&&ch1!='y'&&ch1!='N'&&ch1!='n'){
              cout<<"输入Y,打怪升级!"<<endl;
              cout<<"输入N,退出游戏!"<<endl;
              cin>>ch1;
              cout<<endl;
              }
              if(ch1=='N'||ch1=='n')
              {
              cout<<"游戏结束!"<<endl;
              exit(0);
              } Monster m; //生成怪兽对象
              while(ch1=='y'||ch1=='Y'){
              ch1=' ';
              ch2=' ';
              ch3=' ';
              m.get(0,0,0,0,0); //怪兽对象属性初始化
              while(ch2!='u'&&ch2!='U'&&ch2!='m'&&ch2!='M'&&ch2!='f'&&ch2!='F'&&ch2!='e'&&ch2!='E'){
              cout<<"请选择:"<<endl;
              cout<<"u:查看自身状态;";
              cout<<"m:查看对手状态;";
              cout<<"f:打怪兽;";
              cout<<"e:逃跑(将损失一定的生命值)。"<<endl;
              cin>>ch2;
              cout<<endl;
              if(ch2=='u'||ch2=='U') {
              u.display(); //成员函数调用
              ch2=' ';
              }
              else if(ch2=='m'||ch2=='M') {
              m.display(); // 成员函数调用
              ch2=' ';
              }
              else if(ch2=='e'||ch2=='E') {
              u.escape(); // 成员函数调用
              if(u.getu_hp()<=0){ //成员函数调用,注意调用形式
              cout<<"您英雄的一生结束了!"<<endl;
              exit(0);
              }
              }
              else if(ch2=='f'||ch2=='F') {
              u.u_attack(&m);
              u.upgrade(); //奥特曼升级,成员函数调用
              int z=rand()%3+1;
              switch(z){ //做个小改变,打得不那么单调无聊
              case 1:
              cout<<"ultraman say: go to die!"<<endl;
              cout<<"monster say: oh,shit!"<<endl;
              break;
              case 2:
              cout<<"奥特曼说: 妖怪受死!"<<endl;
              cout<<"怪兽说: 放屁!"<<endl;
              break;
              default:
              cout<<"12345啊,上山打老虎啊!"<<endl;
              cout<<"大圣饶命!"<<endl;
              }
              cout<<"乒 乒 乓 乓。。。"<<endl;
              m.m_fightback(&u); //成员函数调用,怪兽和奥特曼均受到攻击
              u.display();
              m.display();
              if(u.getu_hp()<=0) { //成员函数调用,注意调用形式
              cout<<"您英雄的一生结束了!"<<endl;
              exit(0);
              }
              if(m.getm_hp()<=0) { // 成员函数调用,注意调用形式
              cout<<"可...恶...,我还会再来的......"<<endl<<endl;
              cout<<"恭喜你,打败了怪兽!"<<endl;
              u.win(&m); //奥特曼获胜,成员函数调用
              }
              else ch2=' ';
              }
              }
              while(ch3!='u'&&ch3!='U'&&ch3!='y'&&ch3!='Y'&&ch3!='n'&&ch3!='N'){
              cout<<"是否用钱补血?查看自身状态请输入U,补血请输入Y,否则请输入N。"<<endl;
              cin>>ch3;
              cout<<endl;
              if(ch3=='u'||ch3=='U'){
              u.display(); //成员函数调用
              ch3=' ';
              }
              if(ch3=='y'||ch3=='Y'){
              if(u.getu_money()<2)
              cout<<"对不起,您钱不够,无法补血!"<<endl;
              else
              u.restore(); //成员函数调用;
              break;
              }
              if(ch3=='n'||ch3=='N') break;
              }
              while(ch1!='y'&&ch1!='Y'&&ch1!='n'&&ch1!='N'){
              cout<<"继续打怪升级请输入Y,退出游戏请输入N。"<<endl;
              cin>>ch1;
              cout<<endl;
              }
              if(ch1=='N'||ch1=='n') {
              cout<<"游戏结束!"<<endl;
              exit(0);
              } }
              }


              14楼2013-05-06 16:40
              回复
                monster.cpp
                #include <iostream.h>
                #include <stdlib.h>#include "Monster.h"
                #include "Ultraman.h"
                class Ultraman;//用另一种设置初值的方法设置monster的初值
                void Monster::get(int m_rank,int m_hp,int m_damage,int m_exp,int m_money)
                {
                rank=m_rank=rand()%10+1;
                hp=m_hp=(rand()%rank+1)*5;
                exp=m_exp=rand()%rank+1;
                damage=m_damage=rand()%rank+1;
                money=m_money=rand()%rank+10;
                } //显示monster的各个属性
                void Monster::display(){
                cout<<endl;
                cout<<" Monster's rank: "<<rank<<endl;
                cout<<" Monster's exp: "<<exp<<endl;
                cout<<" Monster's hp: "<<hp<<endl;
                cout<<" Monster's damage: "<<damage<<endl;
                cout<<" Monster's money: "<<money<<endl;
                }//monster被攻击
                void Monster::m_attacked(Ultraman *u){
                hp-=u->getu_damage(); //调用Ultraman类中的攻击函数
                if(money!=0)
                money--;
                }//怪兽反击
                void Monster::m_fightback(Ultraman *u){
                u -> u_attacked(this);
                }int Monster::getm_damage(){
                return damage;
                }int Monster::getm_hp(){
                return hp;
                }int Monster::getm_money(){
                return money;
                }int Monster::getm_exp(){
                return exp;
                }


                15楼2013-05-06 16:40
                回复
                  ultraman.cpp
                  #include <iostream.h>
                  #include <stdlib.h>#include "Monster.h"
                  #include "Ultraman.h"
                  class Ultraman;//用另一种设置初值的方法设置monster的初值
                  void Monster::get(int m_rank,int m_hp,int m_damage,int m_exp,int m_money)
                  {
                  rank=m_rank=rand()%10+1;
                  hp=m_hp=(rand()%rank+1)*5;
                  exp=m_exp=rand()%rank+1;
                  damage=m_damage=rand()%rank+1;
                  money=m_money=rand()%rank+10;
                  } //显示monster的各个属性
                  void Monster::display(){
                  cout<<endl;
                  cout<<" Monster's rank: "<<rank<<endl;
                  cout<<" Monster's exp: "<<exp<<endl;
                  cout<<" Monster's hp: "<<hp<<endl;
                  cout<<" Monster's damage: "<<damage<<endl;
                  cout<<" Monster's money: "<<money<<endl;
                  }//monster被攻击
                  void Monster::m_attacked(Ultraman *u){
                  hp-=u->getu_damage(); //调用Ultraman类中的攻击函数
                  if(money!=0)
                  money--;
                  }//怪兽反击
                  void Monster::m_fightback(Ultraman *u){
                  u -> u_attacked(this);
                  }int Monster::getm_damage(){
                  return damage;
                  }int Monster::getm_hp(){
                  return hp;
                  }int Monster::getm_money(){
                  return money;
                  }int Monster::getm_exp(){
                  return exp;
                  }


                  16楼2013-05-06 16:41
                  回复
                    monster.h
                    class Ultraman;class Monster{
                    private:
                    int rank,exp,hp,damage,money;
                    public:
                    void get(int m_rank,int m_hp,int m_damage,int m_exp,int m_money); //初始化怪兽属性
                    void display(); //显示怪兽的属性
                    void m_attacked(Ultraman *u);
                    void m_fightback(Ultraman *u); //怪兽反击
                    int getm_rank();
                    int getm_exp();
                    int getm_hp();
                    int getm_damage();
                    int getm_money();
                    };


                    17楼2013-05-06 16:42
                    回复
                      ultraman.h
                      class Monster;class Ultraman{
                      private:
                      int rank,exp,hp,damage,money;
                      public:
                      Ultraman(int a,int b,int c,int d,int e);
                      void display(); //显示奥特曼的属性
                      int escape(); //奥特曼逃跑
                      void u_attack(Monster *m); //奥特曼攻击怪兽
                      void u_attacked(Monster *m);
                      void restore(); //奥特曼回血
                      void upgrade(); //奥特曼升级
                      void win(Monster *m);
                      int getu_rank();
                      int getu_exp(); //奥特曼战斗获得经验
                      int getu_hp();
                      int getu_damage();
                      int getu_money();
                      ~Ultraman(){}
                      };


                      18楼2013-05-06 16:43
                      回复
                        怎么修改?


                        19楼2013-05-06 16:43
                        回复
                          等大帝关注


                          20楼2013-05-06 16:51
                          回复
                            人工置顶


                            21楼2013-05-06 16:56
                            回复
                              求罩


                              22楼2013-05-06 17:24
                              回复