超好玩C++打怪(打作业)游戏,把各种作业设置成怪

以下是一个使用C++编写的打怪游戏的简单示例,把各种作业设置成怪物。在游戏中,玩家需要完成作业,打败怪物。

#include <iostream>
#include <vector>
#include <string>

class Monster {
    
    
private:
    std::string name;
    int health;
    int damage;

public:
    Monster(const std::string& _name, int _health, int _damage)
        : name(_name), health(_health), damage(_damage) {
    
    }

    bool isDead() const {
    
    
        return health <= 0;
    }

    void takeDamage(int damage) {
    
    
        health -= damage;
    }

    int getDamage() const {
    
    
        return damage;
    }

    void displayInfo() const {
    
    
        std::cout << "Monster: " << name << std::endl;
        std::cout << "Health: " << health << std::endl;
    }
};

class Player {
    
    
private:
    std::string name;
    int health;
    int damage;

public:
    Player(const std::string& _name, int _health, int _damage)
        : name(_name), health(_health), damage(_damage) {
    
    }

    bool isDead() const {
    
    
        return health <= 0;
    }

    void takeDamage(int damage) {
    
    
        health -= damage;
    }

    int getDamage() const {
    
    
        return damage;
    }

    void displayInfo() const {
    
    
        std::cout << "Player: " << name << std::endl;
        std::cout << "Health: " << health << std::endl;
    }
};

class Game {
    
    
private:
    Player player;
    std::vector<Monster> monsters;
    int currentMonsterIndex;

public:
    Game(const Player& _player, const std::vector<Monster>& _monsters)
        : player(_player), monsters(_monsters), currentMonsterIndex(0) {
    
    }

    void attackMonster() {
    
    
        Monster& currentMonster = monsters[currentMonsterIndex];
        int playerDamage = player.getDamage();
        currentMonster.takeDamage(playerDamage);

        std::cout << "You attacked " << currentMonster.name << " and dealt " << playerDamage << " damage." << std::endl;

        if (currentMonster.isDead()) {
    
    
            std::cout << currentMonster.name << " has been defeated!" << std::endl;
            currentMonsterIndex++;
        }
    }

    void attackPlayer() {
    
    
        Monster& currentMonster = monsters[currentMonsterIndex];
        int monsterDamage = currentMonster.getDamage();
        player.takeDamage(monsterDamage);

        std::cout << currentMonster.name << " attacked you and dealt " << monsterDamage << " damage." << std::endl;
    }

    bool isGameOver() const {
    
    
        return player.isDead() || currentMonsterIndex >= monsters.size();
    }

    void play() {
    
    
        std::cout << "======= Welcome to the Homework Monster Game! =======\n" << std::endl;

        while (!isGameOver()) {
    
    
            player.displayInfo();
            monsters[currentMonsterIndex].displayInfo();

            std::cout << "Choose an action:" << std::endl;
            std::cout << "1. Attack the monster" << std::endl;
            std::cout << "2. Skip a turn" << std::endl;
            std::cout << "Enter your choice: ";

            int choice;
            std::cin >> choice;
            std::cout << std::endl;

            switch (choice) {
    
    
                case 1:
                    attackMonster();
                    if (!monsters[currentMonsterIndex].isDead()) {
    
    
                        attackPlayer();
                    }
                    break;
                case 2:
                    attackPlayer();
                    break;
                default:
                    std::cout << "Invalid choice. Try again." << std::endl;
                    break;
            }

            std::cout << std::endl;
        }

        if (player.isDead()) {
    
    
            std::cout << "Game Over! You have been defeated by the Homework Monster." << std::endl;
        } else {
    
    
            std::cout << "Congratulations! You have defeated all the Homework Monsters!" << std::endl;
        }
    }
};

int main() {
    
    
    Player player("Player 1", 100, 20);

    std::vector<Monster> monsters;
    monsters.push_back(Monster("Math Monster", 50, 10));
    monsters.push_back(Monster("Science Monster", 60, 15));
    monsters.push_back(Monster("English Monster", 40, 12));
    monsters.push_back(Monster("History Monster", 55, 14));

    Game game(player, monsters);
    game.play();

    return 0;
}

在这个示例中,玩家需要与各种作业怪物战斗。玩家和怪物都有血量和攻击力属性。游戏将循环进行,直到玩家死亡或击败所有怪物。

在游戏中,玩家可以选择攻击怪物或者跳过回合。当玩家选择攻击怪物时,玩家会对当前怪物造成伤害,并减少怪物的血量。如果怪物被打败,游戏将继续下一个怪物。如果怪物没有被打败,怪物将反击玩家,减少玩家的血量。

游戏将循环进行,直到玩家死亡或者击败所有的作业怪物。最终,游戏会显示相关的胜利或失败信息。

这个简单的打怪游戏示例展示了使用C++编程创建互动游戏的基本概念。玩家通过与怪物进行战斗来完成游戏目标,同时需要关注自己的血量和伤害输出,以便取得胜利。

猜你喜欢

转载自blog.csdn.net/yaosichengalpha/article/details/131633919
今日推荐