编辑代码

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

typedef struct {
    char name[50];
    int health;
    int attack;
    int defense;
} Fighter;

void attack(Fighter *attacker, Fighter *defender) {
    int damage = attacker->attack - defender->defense;
    if (damage < 0) damage = 0;
    defender->health -= damage;
    if (defender->health < 0) defender->health = 0;
    printf("%s 攻击 %s,造成 %d 点伤害。%s 剩余血量:%d\n", 
           attacker->name, defender->name, damage, defender->name, defender->health);
}

int main() {
    srand(time(NULL));

    Fighter linShiTong = {"林诗桐", 100, 20, 5};
    Fighter linYuXuan = {"林宇炫", 100, 18, 7};

    Fighter *attacker = &linShiTong;
    Fighter *defender = &linYuXuan;

    while (linShiTong.health > 0 && linYuXuan.health > 0) {
        attack(attacker, defender);
        
        // 交换攻守
        Fighter *temp = attacker;
        attacker = defender;
        defender = temp;

        // 随机延迟模拟真实战斗
        int delay = rand() % 3 + 1;
        printf("下一回合将在 %d 秒后开始...\n", delay);
        sleep(delay);
    }

    if (linShiTong.health > 0) {
        printf("%s 胜利了!\n", linShiTong.name);
    } else {
        printf("%s 胜利了!\n", linYuXuan.name);
    }

    return 0;
}