类似于王者的简易1v1格斗游戏



#include <iostream>
#include <string>
#include <cstdlib>
#include <ctime>

using namespace std;

struct Character {
    string name;
    int hp;
    int attack;
};

// 初始化角色
void initCharacter(Character& character, const string& name, int hp, int attack) {
    character.name = name;
    character.hp = hp;
    character.attack = attack;
}

// 角色攻击
void attack(Character& attacker, Character& target) {
    int damage = attacker.attack;
    target.hp -= damage;
    cout << attacker.name << "对" << target.name << "造成了" << damage << "点伤害!" << endl;
}

int main() {
    srand(static_cast<unsigned>(time(nullptr)));

    // 初始化玩家角色
    Character player1, player2;
    initCharacter(player1, "玩家1", 100, 20);
    initCharacter(player2, "玩家2", 100, 20);

    cout << "欢迎来到1v1格斗游戏!" << endl;
    cout << "玩家1:" << player1.name << ",HP:" << player1.hp << ",攻击力:" << player1.attack << endl;
    cout << "玩家2:" << player2.name << ",HP:" << player2.hp << ",攻击力:" << player2.attack << endl;

    // 游戏循环
    while (player1.hp > 0 && player2.hp > 0) {
        // 玩家1攻击玩家2
        attack(player1, player2);

        if (player2.hp <= 0) { // 玩家2死亡
            cout << player2.name << "被击败了!" << endl;
            break;
        }

        // 玩家2攻击玩家1
        attack(player2, player1);

        if (player1.hp <= 0) { // 玩家1死亡
            cout << player1.name << "被击败了!" << endl;
            break;
        }

        cout << "当前状态:" << endl;
        cout << "玩家1:" << player1.name << ",HP:" << player1.hp << endl;
        cout << "玩家2:" << player2.name << ",HP:" << player2.hp << endl;
        cout << endl;
    }

    cout << "游戏结束!" << endl;

    return 0;
}

这段代码是一个1v1格斗游戏的示例,通过控制台显示玩家的属性和攻击结果。代码逻辑比较简单。

首先,我们定义了一个结构体Character,用于表示角色的属性,包括名称(name)、生命值(hp)和攻击力(attack)。

接着,我们实现了两个函数initCharacterattackinitCharacter用于初始化角色的属性,attack用于进行攻击操作。attack函数中,攻击者造成的伤害直接减少目标角色的生命值,并在控制台输出攻击信息。

在主函数中,我们使用initCharacter函数初始化了两个玩家角色player1player2的属性。然后,进入游戏循环,每轮循环中玩家1先攻击玩家2,然后玩家2进行反击。如果其中一方生命值降至0或以下,游戏结束。

最后,在游戏循环中,我们通过控制台输出当前的角色状态,即各自的名称、生命值和攻击力。

希望对您有所帮助!如果有任何其他问题,请随时提问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值