xdm这个C++火影文字类代码修改啊?

这是一个C++编程的火影忍者主题小游戏示例,包含忍者类、场景类、剧情类和任务类等设计,玩家可以控制角色探索、完成任务,有战斗系统和任务选择。游戏中的角色有属性如生命值、攻击力和防御力,可以通过执行不同的操作影响游戏状态。
摘要由CSDN通过智能技术生成

新手小白,这是我写的半成品作业,实在是写不动了,也不知道该怎么改,有没有大佬帮我改改啊
      

#include <iostream>
#include <string>

using namespace std;

// 忍者类
class Ninja {
public:
    string name;
    int health;
    int attack;
    int defense;
    Ninja(string n, int h, int a, int d) : name(n), health(h), attack(a), defense(d) {}
    void useSkill() {
        // 使用忍术
    }
};

// 场景类
class Scene {
public:
    string description;
    Scene(string d) : description(d) {}
    virtual void explore(Ninja& ninja) {
        // 探索场景,可能会遇到事件或任务
    }
};

// 剧情类
class Story {
public:
    string description;
    Story(string d) : description(d) {}
    virtual void play(Ninja& ninja) {
        // 播放剧情,可能会改变游戏状态或解锁新场景
    }
};

// 任务类
class Task {
public:
    string description;
    bool completed;
    Task(string d) : description(d), completed(false) {}
    virtual void complete(Ninja& ninja) {
        // 完成任务,可能会获得奖励或解锁新任务
    }
};

int main() {
    // 初始化忍者
    Ninja naruto("鸣人", 100, 10, 5);
    Ninja sasuke("佐助", 80, 15, 3);

    // 初始化场景、剧情、任务
    Scene forest("一片森林");
    Story nineTails("九尾妖狐袭击木叶");
    Task becomeHokage("成为火影");

    // 开始游戏
    cout << "欢迎来到火影忍者世界!" << endl;
    while (true) {
        // 输出当前场景的描述
        cout << "你现在在" << forest.description << ",这里有很多树木和野兽。" << endl;

        // 输出可选操作
        cout << "你可以:\n1. 探索此地\n2. 查看任务列表\n3. 查看角色属性\n4. 退出游戏" << endl;
        int choice;
        cin >> choice;

        switch (choice) {
        case 1:
            // 探索场景,可能会遇到事件或任务
            forest.explore(naruto);
            break;
        case 2:
            // 查看任务列表,可以选择任务进行完成
            cout << "你当前正在进行的任务是:" << becomeHokage.description << endl;
            if (!becomeHokage.completed) {
                cout << "你可以:\n1. 完成任务\n2. 放弃任务" << endl;
                int taskChoice;
                cin >> taskChoice;
                switch (taskChoice) {
                case 1:
                    becomeHokage.complete(naruto);
                    break;
                case 2:
                    cout << "你放弃了成为火影的梦想。" << endl;
                    break;
                default:
                    cout << "无效操作。" << endl;
                    break;
                }
            }
            else {
                cout << "你已经完成了所有任务。" << endl;
            }
            break;
        case 3:
            // 查看角色属性
            cout << "你的角色属性是:" << endl;
            cout << "名称:" << naruto.name << endl;
            cout << "生命值:" << naruto.health << endl;
            cout << "攻击力:" << naruto.attack << endl;
            cout << "防御力:" << naruto.defense << endl;
            break;
        case 4:
            // 退出游戏
            cout << "感谢游玩火影忍者世界!" << endl;
            return 0;
        default:
            cout << "无效操作。" << endl;
            break;
        }
    }// 千鸟忍术类
    class Chidori {
    public:
        int damage;
        Chidori() : damage(50) {}
    };

    // 螺旋丸忍术类
    class Rasengan {
    public:
        int damage;
        Rasengan() : damage(40) {}
    };

    // 增加任务类
    class Task2 : public Task {
    public:
        Task2(string d) : Task(d) {}
        void complete(Ninja& ninja) {
            cout << "你正在进行的任务是:" << description << endl;
            cout << "你进入了森林,偶遇一名敌人!" << endl;

            // 初始化敌人
            Ninja enemy("敌人", 70, 12, 8);

            // 和敌人战斗
            while (true) {
                // 输出战斗信息
                cout << "你与" << enemy.name << "的战斗开始了!" << endl;
                cout << ninja.name << "的生命值:" << ninja.health << endl;
                cout << enemy.name << "的生命值:" << enemy.health << endl;

                // 玩家选择行动
                cout << "你可以:\n1. 攻击\n2. 逃跑" << endl;
                int choice;
                cin >> choice;

                switch (choice) {
                case 1:
                    // 玩家进行攻击
                    cout << "你选择了攻击!" << endl;
                    cout << "请选择忍术或体术:\n1. 忍术\n2. 体术" << endl;
                    int attackChoice;
                    cin >> attackChoice;
                    if (attackChoice == 1) {
                        // 玩家使用忍术
                        if (ninja.attack >= enemy.defense) {
                            // 忍者的攻击力超过敌人的防御力,造成伤害
                            Chidori chidori;
                            enemy.health -= (ninja.attack - enemy.defense + chidori.damage);
                            cout << "你使用了千鸟忍术,对敌人造成了" << (ninja.attack - enemy.defense + chidori.damage) << "点伤害!" << endl;
                        }
                        else {
                            // 忍者的攻击力不足以突破敌人的防御力,未造成伤害
                            cout << "你使用了千鸟忍术,但是没有对敌人造成伤害!" << endl;
                        }
                    }
                    else if (attackChoice == 2) {
                        // 玩家使用体术
                        ninja.health += 100;
                        ninja.defense += 25;
                        cout << "你使用了体术,生命值增加100,防御力增加25!" << endl;
                    }
                    // 敌人进行攻击
                    if (enemy.attack >= ninja.defense) {
                        // 敌人的攻击力超过忍者的防御力,造成伤害
                        ninja.health -= (enemy.attack - ninja.defense);
                        cout << "敌人对你造成了" << (enemy.attack - ninja.defense) << "点伤害!" << endl;
                    }
                    else {
                        // 敌人的攻击力不足以突破忍者的防御力,未造成伤害
                        cout << "敌人没有对你造成伤害!" << endl;
                    }
                    // 判断战斗结果
                    if (enemy.health <= 0) {
                        // 敌人被打败了
                        cout << "你战胜了敌人,任务完成!" << endl;
                        completed = true;
                        ninja.attack += 20;
                        ninja.defense += 20;
                        break;
                    }
                    else if (ninja.health <= 0) {
                        // 忍者被打败了,游戏结束
                        cout << "你被敌人打败了,游戏结束!" << endl;
                        exit(0);
                    }
                    break;
                case 2:
                    // 玩家选择逃跑
                    cout << "你选择了逃跑!" << endl;
                    if (ninja.attack >= enemy.attack) {
                        // 忍者的攻击力高于敌人,并成功逃脱
                        cout << "你成功逃脱!" << endl;
                        break;
                    }
                    else {
                        // 忍者的攻击力低于敌人,未能逃脱
                        cout << "你没能逃脱,被敌人追上了!" << endl;
                        // 初始化一乐拉面馆
                        Scene ichiraku("一乐拉面馆");
                        while (true) {
                            // 输出当前场景的描述
                            cout << "你现在在" << ichiraku.description << ",这里有很多美味的拉面。" << endl;
                            cout << "你可以:\n1. 进入店内躲避\n2. 离开拉面馆" << endl;
                            int shopChoice;
                            cin >> shopChoice;
                            switch (shopChoice) {
                            case 1:
                                // 进入店内躲避,成功逃脱并增加防御力
                                cout << "你进入了一乐拉面馆,躲过了追杀,成功逃脱!" << endl;
                                ninja.defense += 10;
                                break;
                            case 2:
                                // 离开拉面馆,被追上并胖揍一顿,增加防御力
                                cout << "你离开了拉面馆,被敌人追上并胖揍一顿,但是成功逃脱!" << endl;
                                ninja.health += 50;
                                ninja.defense += 10;
                                break;
                            default:
                                cout << "无效操作。" << endl;
                                break;
                            }
                            break;
                        }
                        // 进入下
                    }
                default:
                    cout << "无效操作。" << endl;
                    break;
                }
            }
        }
    
        }
    };

    int main()
        // 初始化忍者
    {
        int characterChoice;
        cout << "请选择角色:\n1. 鸣人\n2. 佐助" << endl;
        cin >> characterChoice;
        if (characterChoice == 1) {
            Ninja naruto("鸣人", 100, 10, 5);
            Ninja sasuke("佐助", 80, 15, 3);
        }
        else if (characterChoice == 2) {
            Ninja naruto("佐助", 80, 15, 3);
            Ninja sasuke("鸣人", 100, 10, 5);
        }
        else {
            cout << "无效选择,退出游戏。" << endl;
            return 0;
        }

        // 初始化场景、剧情、任务
        Scene konoha("木叶村");
        Story nineTails("九尾妖狐袭击木叶");
        Task becomeHokage("成为火影");
        Task2 confess("被小樱表白");

        // 开始游戏
        cout << "欢迎来到火影忍者世界!" << endl;
        while (true) {
            // 输出当前场景的描述
            cout << "你现在在" << konoha.description << ",这里是火影忍者的故乡。" << endl;

            // 输出可选操作
            cout << "你可以:\n1. 探索此地\n2. 查看任务列表\n3. 查看角色属性\n4. 退出游戏" << endl;
            int choice;
            cin >> choice;

            switch (choice) {
            case 1:
                // 探索场景,可能会遇到事件或任务
                konoha.explore(naruto);
                break;
            case 2:
                // 查看任务列表,可以选择任务进行完成
                cout << "你当前正在进行的任务是:" << becomeHokage.description << endl;
                if (!becomeHokage.completed) {
                    cout << "你可以:\n1. 完成任务\n2. 放弃任务" << endl;
                    int taskChoice;
                    cin >> taskChoice;
                    switch (taskChoice) {
                    case 1:
                        becomeHokage.complete(naruto);
                        break;
                    case 2:
                        cout << "你放弃了成为火影的梦想。" << endl;
                        break;
                    default:
                        cout << "无效操作。" << endl;
                        break;
                    }
                }
                else {
                    cout << "你已经完成了所有任务。" << endl;
                }
                if (becomeHokage.completed && !confess.completed) {
                    cout << "你是否接受小樱的表白?\n1. 接受\n2. 拒绝" << endl;
                    int confessChoice;
                    cin >> confessChoice;
                    switch (confessChoice) {
                    case 1:
                        cout << "你接受了小樱的表白!无论是鸣人还是佐助,你都会被小樱追杀!" << endl;
                        Scene ichiraku("一乐拉面馆");
                        while (true) {
                            // 输出当前场景的描述
                            cout << "你现在在" << ichiraku.description << ",这里有很多美味的拉面。" << endl;
                            cout << "你可以:\n1. 进入店内躲避\n2. 离开拉面馆" << endl;
                            int shopChoice;
                            cin >> shopChoice;
                            switch (shopChoice) {
                            case 1:
                                // 进入店内躲避,成功逃脱并增加防御力
                                cout << "你进入了一乐拉面馆,躲过了追杀,成功逃脱!" << endl;
                                naruto.defense += 10;
                                sasuke.defense += 10;
                            

                                    return 0;
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值