李毅吧 关注:34,045,138贴子:993,674,537

求助帖,在线等救,求大神相助#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:13回复
    我写了一段原代码,求大神在此基础上改成实验要求的


    3楼2013-05-06 16:14
    回复
      2025-06-02 03:01:20
      广告
      求助,求关注


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


        5楼2013-05-06 16:22
        回复
          人工置顶


          6楼2013-05-06 16:33
          回复
            人工置顶


            7楼2013-05-06 16:35
            回复
              帝吧来个技术宅拯救我吧


              8楼2013-05-06 16:38
              回复
                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);
                } }
                }


                9楼2013-05-06 16:44
                回复
                  2025-06-02 02:55:20
                  广告
                  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();
                  };


                  12楼2013-05-06 16:45
                  回复
                    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(){}
                    };


                    13楼2013-05-06 16:46
                    回复
                      略屌
                         ——恭喜你获得本吧50点经验!请用指甲或小刀用力刮开黑条获得兑换码!██████████
                         


                      IP属地:浙江来自Android客户端14楼2013-05-06 16:46
                      回复
                        怎么修改?


                        15楼2013-05-06 16:47
                        回复
                          帝吧的大神、技术宅呢?


                          16楼2013-05-06 16:49
                          回复
                            看起来好厉害的赶脚、不懂帮顶~


                            17楼2013-05-06 16:51
                            回复
                              2025-06-02 02:49:20
                              广告
                              新人求罩


                              18楼2013-05-06 16:51
                              回复