龙腾4.0~4.4
2026-08-07 14:26:18
发布于:浙江
//4.0
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <iomanip>
using namespace std;
//角色结构体:龙腾宇宙人物
struct Hero
{
string name;
int hp; //生命值
int maxHp;
int attack; //攻击力
int defense; //防御
bool shield; //护盾标记
int shieldValue;//护盾值
bool isStun; //眩晕
double critRate;//暴击概率
};
//创建角色
Hero createHero(int id)
{
Hero h;
if(id == 0)
{
h.name = "鲤逍遥";
h.maxHp = 1300;
h.hp = 1300;
h.attack = 220;
h.defense = 60;
h.shield = false;
h.shieldValue = 0;
h.isStun = false;
h.critRate = 0.25;
}
else if(id == 1)
{
h.name = "鹊瑶";
h.maxHp = 1100;
h.hp = 1100;
h.attack = 260;
h.defense = 40;
h.shield = false;
h.shieldValue = 0;
h.isStun = false;
h.critRate = 0.30;
}
else if(id == 2)
{
h.name = "鹰乘风";
h.maxHp = 1200;
h.hp = 1200;
h.attack = 245;
h.defense = 50;
h.shield = false;
h.shieldValue = 0;
h.isStun = false;
h.critRate = 0.22;
}
else if(id == 3)
{
h.name = "熊莫开";
h.maxHp = 1800;
h.hp = 1800;
h.attack = 170;
h.defense = 100;
h.shield = false;
h.shieldValue = 0;
h.isStun = false;
h.critRate = 0.12;
}
else
{
h.name = "蛮神爪牙";
h.maxHp = 1450;
h.hp = 1450;
h.attack = 230;
h.defense = 45;
h.shield = false;
h.shieldValue = 0;
h.isStun = false;
h.critRate = 0.18;
}
return h;
}
//打印角色状态
void showStatus(Hero a, Hero b)
{
cout << "----------------------------------------" << endl;
cout << left << setw(12) << a.name << " HP:" << setw(5) << a.hp << "/" << a.maxHp;
if(a.shield) cout << " 护盾:" << a.shieldValue;
if(a.isStun) cout << " [眩晕]";
cout << endl;
cout << left << setw(12) << b.name << " HP:" << setw(5) << b.hp << "/" << b.maxHp;
if(b.shield) cout << " 护盾:" << b.shieldValue;
if(b.isStun) cout << " [眩晕]";
cout << endl;
cout << "----------------------------------------" << endl;
}
//攻击逻辑,返回是否暴击
bool attackTarget(Hero &attacker, Hero &defender)
{
bool crit = false;
int damage = attacker.attack;
//暴击判定
double randCrit = (rand() % 1000) / 1000.0;
if(randCrit < attacker.critRate)
{
damage *= 2;
crit = true;
}
//减去防御
damage = damage - defender.defense;
if(damage < 10) damage = 10;
//护盾吸收伤害
if(defender.shield && defender.shieldValue > 0)
{
if(defender.shieldValue >= damage)
{
defender.shieldValue -= damage;
damage = 0;
}
else
{
damage -= defender.shieldValue;
defender.shieldValue = 0;
defender.shield = false;
}
}
defender.hp -= damage;
if(defender.hp < 0) defender.hp = 0;
cout << attacker.name;
if(crit) cout << " 触发暴击!";
cout << " 发动攻击,造成 " << damage << " 点伤害" << endl;
return crit;
}
//释放技能,随机技能
void useSkill(Hero &attacker, Hero &defender)
{
int skillId = rand() % 3;
if(attacker.name == "鲤逍遥")
{
if(skillId == 0)
{
cout << attacker.name << " 使用【逍遥剑决】" << endl;
attacker.critRate += 0.1;
attackTarget(attacker, defender);
attacker.critRate -= 0.1;
}
else if(skillId == 1)
{
cout << attacker.name << " 使用【万剑归宗】" << endl;
int dmg = attacker.attack * 1.4 - defender.defense;
if(dmg <15) dmg =15;
if(defender.shield && defender.shieldValue>0)
{
if(defender.shieldValue >= dmg){ defender.shieldValue -=dmg; dmg=0; }
else {dmg -= defender.shieldValue; defender.shieldValue=0; defender.shield=false;}
}
defender.hp -= dmg;
if(defender.hp<0) defender.hp=0;
cout << "万剑轰击造成 " << dmg << " 伤害" << endl;
}
else
{
cout << attacker.name << " 凝聚剑意获得护盾" << endl;
attacker.shield = true;
attacker.shieldValue +=280;
}
}
else if(attacker.name == "鹊瑶")
{
if(skillId ==0)
{
cout << attacker.name << " 使用【灵羽穿刺】" << endl;
attackTarget(attacker, defender);
}
else if(skillId ==1)
{
cout << attacker.name << " 使用【鹊影疗愈】,恢复自身生命" << endl;
int heal = 220;
attacker.hp += heal;
if(attacker.hp>attacker.maxHp) attacker.hp = attacker.maxHp;
cout << attacker.name << " 恢复 " << heal << " HP" << endl;
}
else
{
cout << attacker.name << "释放风缚,尝试眩晕敌人" << endl;
if(rand()%100 <40){
defender.isStun = true;
cout << defender.name << " 被眩晕!" << endl;
}else{
cout << "眩晕被抵抗" << endl;
}
}
}
else if(attacker.name == "鹰乘风")
{
if(skillId ==0){
cout << attacker.name << " 使用【疾风斩】" << endl;
attackTarget(attacker, defender);
}else if(skillId ==1){
cout << attacker.name << "【凌空突袭】" << endl;
int dmg = attacker.attack*1.3 - defender.defense;
if(dmg<12)dmg=12;
defender.hp -=dmg;
if(defender.hp<0) defender.hp=0;
cout << "突袭造成 "<<dmg<<"伤害"<<endl;
}else{
cout << attacker.name << "提升自身攻击"<<endl;
attacker.attack +=40;
}
}
else if(attacker.name == "熊莫开")
{
if(skillId ==0){
cout << attacker.name << "【巨力冲撞】" << endl;
attackTarget(attacker, defender);
}else if(skillId ==1){
cout << attacker.name << "开启坚甲护盾"<<endl;
attacker.shield = true;
attacker.shieldValue +=350;
}else{
cout << attacker.name << "怒吼强化自身防御"<<endl;
attacker.defense +=35;
}
}
else
{
cout << attacker.name << "释放蛮神之力"<<endl;
attackTarget(attacker, defender);
}
}
//单回合战斗
void battleRound(Hero &one, Hero &two)
{
//一号行动
cout << "\n>> " << one.name << " 的回合" << endl;
if(one.isStun)
{
cout << one.name << "处于眩晕状态,无法行动!解除眩晕" << endl;
one.isStun = false;
}
else
{
int choice = rand() % 100;
if(choice < 60)
{
attackTarget(one, two);
}
else
{
useSkill(one, two);
}
}
if(two.hp <= 0) return;
//二号行动
cout << "\n>> " << two.name << " 的回合" << endl;
if(two.isStun)
{
cout << two.name << "处于眩晕状态,无法行动!解除眩晕" << endl;
two.isStun = false;
}
else
{
int choice = rand() %100;
if(choice <60)
{
attackTarget(two, one);
}
else
{
useSkill(two, one);
}
}
}
int main()
{
srand((unsigned int)time(NULL));
cout << "龙腾宇宙全自动对战模拟器" << endl;
cout << "参赛选手:鲤逍遥 VS 蛮神爪牙" << endl;
Hero playerA = createHero(0);
Hero playerB = createHero(4);
int roundCount = 1;
while(true)
{
cout << "\n===== 第 " << roundCount << " 回合 =====" << endl;
showStatus(playerA, playerB);
battleRound(playerA, playerB);
if(playerA.hp <= 0 || playerB.hp <=0) break;
roundCount++;
}
cout << "\n============战斗结束============" << endl;
if(playerA.hp <= 0 && playerB.hp <=0)
{
cout << "双方全部倒下,平局!" << endl;
}
else if(playerA.hp > 0)
{
cout << playerA.name << " 获得胜利!" << endl;
}
else
{
cout << playerB.name << " 获得胜利!" << endl;
}
cout << "总回合数:" << roundCount << endl;
cout << "=================================" << endl;
system("pause");
return 0;
}
//4.1
//相比龙腾4.0,各处加入细微延时,观感更佳
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <iomanip>
#include <windows.h>
using namespace std;
//角色结构体:龙腾宇宙人物
struct Hero
{
string name;
int hp; //生命值
int maxHp;
int attack; //攻击力
int defense; //防御
bool shield; //护盾标记
int shieldValue;//护盾值
bool isStun; //眩晕
double critRate;//暴击概率
};
//创建角色
Hero createHero(int id)
{
Hero h;
if(id == 0)
{
h.name = "鲤逍遥";
h.maxHp = 1300;
h.hp = 1300;
h.attack = 220;
h.defense = 60;
h.shield = false;
h.shieldValue = 0;
h.isStun = false;
h.critRate = 0.25;
}
else if(id == 1)
{
h.name = "鹊瑶";
h.maxHp = 1100;
h.hp = 1100;
h.attack = 260;
h.defense = 40;
h.shield = false;
h.shieldValue = 0;
h.isStun = false;
h.critRate = 0.30;
}
else if(id == 2)
{
h.name = "鹰乘风";
h.maxHp = 1200;
h.hp = 1200;
h.attack = 245;
h.defense = 50;
h.shield = false;
h.shieldValue = 0;
h.isStun = false;
h.critRate = 0.22;
}
else if(id == 3)
{
h.name = "熊莫开";
h.maxHp = 1800;
h.hp = 1800;
h.attack = 170;
h.defense = 100;
h.shield = false;
h.shieldValue = 0;
h.isStun = false;
h.critRate = 0.12;
}
else
{
h.name = "蛮神爪牙";
h.maxHp = 1450;
h.hp = 1450;
h.attack = 230;
h.defense = 45;
h.shield = false;
h.shieldValue = 0;
h.isStun = false;
h.critRate = 0.18;
}
return h;
}
//打印角色状态
void showStatus(Hero a, Hero b)
{
cout << "----------------------------------------" << endl;
cout << left << setw(12) << a.name << " HP:" << setw(5) << a.hp << "/" << a.maxHp;
if(a.shield) cout << " 护盾:" << a.shieldValue;
if(a.isStun) cout << " [眩晕]";
cout << endl;
cout << left << setw(12) << b.name << " HP:" << setw(5) << b.hp << "/" << b.maxHp;
if(b.shield) cout << " 护盾:" << b.shieldValue;
if(b.isStun) cout << " [眩晕]";
cout << endl;
cout << "----------------------------------------" << endl;
}
//攻击逻辑,返回是否暴击
bool attackTarget(Hero &attacker, Hero &defender)
{
Sleep(600);
bool crit = false;
int damage = attacker.attack;
//暴击判定
double randCrit = (rand() % 1000) / 1000.0;
if(randCrit < attacker.critRate)
{
damage *= 2;
crit = true;
}
//减去防御
damage = damage - defender.defense;
if(damage < 10) damage = 10;
//护盾吸收伤害
if(defender.shield && defender.shieldValue > 0)
{
if(defender.shieldValue >= damage)
{
defender.shieldValue -= damage;
damage = 0;
}
else
{
damage -= defender.shieldValue;
defender.shieldValue = 0;
defender.shield = false;
}
}
defender.hp -= damage;
if(defender.hp < 0) defender.hp = 0;
cout << attacker.name;
if(crit) cout << " 触发暴击!";
cout << " 发动攻击,造成 " << damage << " 点伤害" << endl;
return crit;
}
//释放技能,随机技能
void useSkill(Hero &attacker, Hero &defender)
{
Sleep(700);
int skillId = rand() % 3;
if(attacker.name == "鲤逍遥")
{
if(skillId == 0)
{
cout << attacker.name << " 使用【逍遥剑决】" << endl;
attacker.critRate += 0.1;
attackTarget(attacker, defender);
attacker.critRate -= 0.1;
}
else if(skillId == 1)
{
cout << attacker.name << " 使用【万剑归宗】" << endl;
int dmg = attacker.attack * 1.4 - defender.defense;
if(dmg <15) dmg =15;
if(defender.shield && defender.shieldValue>0)
{
if(defender.shieldValue >= dmg){ defender.shieldValue -=dmg; dmg=0; }
else {dmg -= defender.shieldValue; defender.shieldValue=0; defender.shield=false;}
}
defender.hp -= dmg;
if(defender.hp<0) defender.hp=0;
cout << "万剑轰击造成 " << dmg << " 伤害" << endl;
}
else
{
cout << attacker.name << " 凝聚剑意获得护盾" << endl;
attacker.shield = true;
attacker.shieldValue +=280;
}
}
else if(attacker.name == "鹊瑶")
{
if(skillId ==0)
{
cout << attacker.name << " 使用【灵羽穿刺】" << endl;
attackTarget(attacker, defender);
}
else if(skillId ==1)
{
cout << attacker.name << " 使用【鹊影疗愈】,恢复自身生命" << endl;
int heal = 220;
attacker.hp += heal;
if(attacker.hp>attacker.maxHp) attacker.hp = attacker.maxHp;
cout << attacker.name << " 恢复 " << heal << " HP" << endl;
}
else
{
cout << attacker.name << "释放风缚,尝试眩晕敌人" << endl;
if(rand()%100 <40){
defender.isStun = true;
cout << defender.name << " 被眩晕!" << endl;
}else{
cout << "眩晕被抵抗" << endl;
}
}
}
else if(attacker.name == "鹰乘风")
{
if(skillId ==0){
cout << attacker.name << " 使用【疾风斩】" << endl;
attackTarget(attacker, defender);
}else if(skillId ==1){
cout << attacker.name << "【凌空突袭】" << endl;
int dmg = attacker.attack*1.3 - defender.defense;
if(dmg<12)dmg=12;
defender.hp -=dmg;
if(defender.hp<0) defender.hp=0;
cout << "突袭造成 "<<dmg<<"伤害"<<endl;
}else{
cout << attacker.name << "提升自身攻击"<<endl;
attacker.attack +=40;
}
}
else if(attacker.name == "熊莫开")
{
if(skillId ==0){
cout << attacker.name << "【巨力冲撞】" << endl;
attackTarget(attacker, defender);
}else if(skillId ==1){
cout << attacker.name << "开启坚甲护盾"<<endl;
attacker.shield = true;
attacker.shieldValue +=350;
}else{
cout << attacker.name << "怒吼强化自身防御"<<endl;
attacker.defense +=35;
}
}
else
{
cout << attacker.name << "释放蛮神之力"<<endl;
attackTarget(attacker, defender);
}
}
//单回合战斗
void battleRound(Hero &one, Hero &two)
{
//一号行动
cout << "\n>> " << one.name << " 的回合" << endl;
Sleep(800);
if(one.isStun)
{
cout << one.name << "处于眩晕状态,无法行动!解除眩晕" << endl;
Sleep(700);
one.isStun = false;
}
else
{
int choice = rand() % 100;
if(choice < 60)
{
attackTarget(one, two);
}
else
{
useSkill(one, two);
}
}
if(two.hp <= 0) return;
//二号行动
cout << "\n>> " << two.name << " 的回合" << endl;
Sleep(800);
if(two.isStun)
{
cout << two.name << "处于眩晕状态,无法行动!解除眩晕" << endl;
Sleep(700);
two.isStun = false;
}
else
{
int choice = rand() %100;
if(choice <60)
{
attackTarget(two, one);
}
else
{
useSkill(two, one);
}
}
}
int main()
{
srand((unsigned int)time(NULL));
cout << "龙腾宇宙全自动对战模拟器" << endl;
cout << "参赛选手:鲤逍遥 VS 蛮神爪牙" << endl;
Sleep(1200);
Hero playerA = createHero(0);
Hero playerB = createHero(4);
int roundCount = 1;
while(true)
{
cout << "\n===== 第 " << roundCount << " 回合 =====" << endl;
showStatus(playerA, playerB);
Sleep(1000);
battleRound(playerA, playerB);
if(playerA.hp <= 0 || playerB.hp <=0) break;
roundCount++;
}
cout << "\n============战斗结束============" << endl;
Sleep(1000);
if(playerA.hp <= 0 && playerB.hp <=0)
{
cout << "双方全部倒下,平局!" << endl;
}
else if(playerA.hp > 0)
{
cout << playerA.name << " 获得胜利!" << endl;
}
else
{
cout << playerB.name << " 获得胜利!" << endl;
}
cout << "总回合数:" << roundCount << endl;
cout << "=================================" << endl;
system("pause");
return 0;
}
//4.2
//增加了选则人物的功能,使得对战任务更加丰富
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <iomanip>
#include <windows.h>
using namespace std;
//角色结构体:龙腾宇宙人物
struct Hero
{
string name;
int hp; //生命值
int maxHp;
int attack; //攻击力
int defense; //防御
bool shield; //护盾标记
int shieldValue;//护盾值
bool isStun; //眩晕
double critRate;//暴击概率
};
//创建角色
Hero createHero(int id)
{
Hero h;
if(id == 1)
{
h.name = "鲤逍遥";
h.maxHp = 1300;
h.hp = 1300;
h.attack = 220;
h.defense = 60;
h.shield = false;
h.shieldValue = 0;
h.isStun = false;
h.critRate = 0.25;
}
else if(id == 2)
{
h.name = "鹊瑶";
h.maxHp = 1100;
h.hp = 1100;
h.attack = 260;
h.defense = 40;
h.shield = false;
h.shieldValue = 0;
h.isStun = false;
h.critRate = 0.30;
}
else if(id == 3)
{
h.name = "鹰乘风";
h.maxHp = 1200;
h.hp = 1200;
h.attack = 245;
h.defense = 50;
h.shield = false;
h.shieldValue = 0;
h.isStun = false;
h.critRate = 0.22;
}
else if(id == 4)
{
h.name = "熊莫开";
h.maxHp = 1800;
h.hp = 1800;
h.attack = 170;
h.defense = 100;
h.shield = false;
h.shieldValue = 0;
h.isStun = false;
h.critRate = 0.12;
}
else
{
h.name = "蛮神爪牙";
h.maxHp = 1450;
h.hp = 1450;
h.attack = 230;
h.defense = 45;
h.shield = false;
h.shieldValue = 0;
h.isStun = false;
h.critRate = 0.18;
}
return h;
}
//打印角色状态
void showStatus(Hero a, Hero b)
{
cout << "----------------------------------------" << endl;
cout << left << setw(12) << a.name << " HP:" << setw(5) << a.hp << "/" << a.maxHp;
if(a.shield) cout << " 护盾:" << a.shieldValue;
if(a.isStun) cout << " [眩晕]";
cout << endl;
cout << left << setw(12) << b.name << " HP:" << setw(5) << b.hp << "/" << b.maxHp;
if(b.shield) cout << " 护盾:" << b.shieldValue;
if(b.isStun) cout << " [眩晕]";
cout << endl;
cout << "----------------------------------------" << endl;
}
//攻击逻辑,返回是否暴击
bool attackTarget(Hero &attacker, Hero &defender)
{
Sleep(600);
bool crit = false;
int damage = attacker.attack;
//暴击判定
double randCrit = (rand() % 1000) / 1000.0;
if(randCrit < attacker.critRate)
{
damage *= 2;
crit = true;
}
//减去防御
damage = damage - defender.defense;
if(damage < 10) damage = 10;
//护盾吸收伤害
if(defender.shield && defender.shieldValue > 0)
{
if(defender.shieldValue >= damage)
{
defender.shieldValue -= damage;
damage = 0;
}
else
{
damage -= defender.shieldValue;
defender.shieldValue = 0;
defender.shield = false;
}
}
defender.hp -= damage;
if(defender.hp < 0) defender.hp = 0;
cout << attacker.name;
if(crit) cout << " 触发暴击!";
cout << " 发动攻击,造成 " << damage << " 点伤害" << endl;
return crit;
}
//释放技能,随机技能
void useSkill(Hero &attacker, Hero &defender)
{
Sleep(700);
int skillId = rand() % 3;
if(attacker.name == "鲤逍遥")
{
if(skillId == 0)
{
cout << attacker.name << " 使用【逍遥剑决】" << endl;
attacker.critRate += 0.1;
attackTarget(attacker, defender);
attacker.critRate -= 0.1;
}
else if(skillId == 1)
{
cout << attacker.name << " 使用【万剑归宗】" << endl;
int dmg = attacker.attack * 1.4 - defender.defense;
if(dmg <15) dmg =15;
if(defender.shield && defender.shieldValue>0)
{
if(defender.shieldValue >= dmg){ defender.shieldValue -=dmg; dmg=0; }
else {dmg -= defender.shieldValue; defender.shieldValue=0; defender.shield=false;}
}
defender.hp -= dmg;
if(defender.hp<0) defender.hp=0;
cout << "万剑轰击造成 " << dmg << " 伤害" << endl;
}
else
{
cout << attacker.name << " 凝聚剑意获得护盾" << endl;
attacker.shield = true;
attacker.shieldValue +=280;
}
}
else if(attacker.name == "鹊瑶")
{
if(skillId ==0)
{
cout << attacker.name << " 使用【灵羽穿刺】" << endl;
attackTarget(attacker, defender);
}
else if(skillId ==1)
{
cout << attacker.name << " 使用【鹊影疗愈】,恢复自身生命" << endl;
int heal = 220;
attacker.hp += heal;
if(attacker.hp>attacker.maxHp) attacker.hp = attacker.maxHp;
cout << attacker.name << " 恢复 " << heal << " HP" << endl;
}
else
{
cout << attacker.name << "释放风缚,尝试眩晕敌人" << endl;
if(rand()%100 <40){
defender.isStun = true;
cout << defender.name << " 被眩晕!" << endl;
}else{
cout << "眩晕被抵抗" << endl;
}
}
}
else if(attacker.name == "鹰乘风")
{
if(skillId ==0){
cout << attacker.name << " 使用【疾风斩】" << endl;
attackTarget(attacker, defender);
}else if(skillId ==1){
cout << attacker.name << "【凌空突袭】" << endl;
int dmg = attacker.attack*1.3 - defender.defense;
if(dmg<12)dmg=12;
defender.hp -=dmg;
if(defender.hp<0) defender.hp=0;
cout << "突袭造成 "<<dmg<<"伤害"<<endl;
}else{
cout << attacker.name << "提升自身攻击"<<endl;
attacker.attack +=40;
}
}
else if(attacker.name == "熊莫开")
{
if(skillId ==0){
cout << attacker.name << "【巨力冲撞】" << endl;
attackTarget(attacker, defender);
}else if(skillId ==1){
cout << attacker.name << "开启坚甲护盾"<<endl;
attacker.shield = true;
attacker.shieldValue +=350;
}else{
cout << attacker.name << "怒吼强化自身防御"<<endl;
attacker.defense +=35;
}
}
else
{
cout << attacker.name << "释放蛮神之力"<<endl;
attackTarget(attacker, defender);
}
}
//单回合战斗
void battleRound(Hero &one, Hero &two)
{
//一号行动
cout << "\n>> " << one.name << " 的回合" << endl;
Sleep(800);
if(one.isStun)
{
cout << one.name << "处于眩晕状态,无法行动!解除眩晕" << endl;
Sleep(700);
one.isStun = false;
}
else
{
int choice = rand() % 100;
if(choice < 60)
{
attackTarget(one, two);
}
else
{
useSkill(one, two);
}
}
if(two.hp <= 0) return;
//二号行动
cout << "\n>> " << two.name << " 的回合" << endl;
Sleep(800);
if(two.isStun)
{
cout << two.name << "处于眩晕状态,无法行动!解除眩晕" << endl;
Sleep(700);
two.isStun = false;
}
else
{
int choice = rand() %100;
if(choice <60)
{
attackTarget(two, one);
}
else
{
useSkill(two, one);
}
}
}
int main()
{
srand((unsigned int)time(NULL));
cout << "龙腾宇宙全自动对战模拟器" << endl;
cout << "可选角色:" << endl;
cout << "1 鲤逍遥" << endl;
cout << "2 鹊瑶" << endl;
cout << "3 鹰乘风" << endl;
cout << "4 熊莫开" << endl;
cout << "5 蛮神爪牙" << endl;
int idA,idB;
cout << "\n请输入第一个角色编号:";
cin >> idA;
cout << "请输入第二个角色编号:";
cin >> idB;
//输入容错,超出范围强制设置为5
if(idA <1 || idA>5) idA =5;
if(idB <1 || idB>5) idB =5;
Hero playerA = createHero(idA);
Hero playerB = createHero(idB);
cout << "\n对战开启:" << playerA.name << " VS " << playerB.name << endl;
Sleep(1200);
int roundCount = 1;
while(true)
{
cout << "\n===== 第 " << roundCount << " 回合 =====" << endl;
showStatus(playerA, playerB);
Sleep(1000);
battleRound(playerA, playerB);
if(playerA.hp <= 0 || playerB.hp <=0) break;
roundCount++;
}
cout << "\n============战斗结束============" << endl;
Sleep(1000);
if(playerA.hp <= 0 && playerB.hp <=0)
{
cout << "双方全部倒下,平局!" << endl;
}
else if(playerA.hp > 0)
{
cout << playerA.name << " 获得胜利!" << endl;
}
else
{
cout << playerB.name << " 获得胜利!" << endl;
}
cout << "总回合数:" << roundCount << endl;
cout << "=================================" << endl;
system("pause");
return 0;
}
//4.3
//增加了跟多人物,包括(客串角色:鲤余欢)
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <iomanip>
#include <windows.h>
using namespace std;
//角色结构体
struct Hero
{
string name;
int hp;
int maxHp;
int attack;
int defense;
bool shield;
int shieldValue;
bool isStun;
double critRate;
};
//创建角色(扩充至10名)
Hero createHero(int id)
{
Hero h;
switch(id)
{
case 1: //鲤逍遥
h.name = "鲤逍遥"; h.maxHp=1400; h.hp=1400; h.attack=230; h.defense=65;
h.shield=0; h.shieldValue=0; h.isStun=0; h.critRate=0.25; break;
case 2: //鹊瑶
h.name = "鹊瑶"; h.maxHp=1150; h.hp=1150; h.attack=270; h.defense=45;
h.shield=0; h.shieldValue=0; h.isStun=0; h.critRate=0.30; break;
case 3: //鹰乘风
h.name = "鹰乘风"; h.maxHp=1250; h.hp=1250; h.attack=250; h.defense=55;
h.shield=0; h.shieldValue=0; h.isStun=0; h.critRate=0.22; break;
case 4: //熊莫开
h.name = "熊莫开"; h.maxHp=1900; h.hp=1900; h.attack=180; h.defense=110;
h.shield=0; h.shieldValue=0; h.isStun=0; h.critRate=0.12; break;
case 5: //蛮神爪牙
h.name = "蛮神爪牙"; h.maxHp=1500; h.hp=1500; h.attack=240; h.defense=50;
h.shield=0; h.shieldValue=0; h.isStun=0; h.critRate=0.18; break;
case 6: //梅寒衣
h.name = "梅寒衣"; h.maxHp=1300; h.hp=1300; h.attack=260; h.defense=60;
h.shield=0; h.shieldValue=0; h.isStun=0; h.critRate=0.24; break;
case 7: //兔暗香
h.name = "兔暗香"; h.maxHp=1050; h.hp=1050; h.attack=280; h.defense=40;
h.shield=0; h.shieldValue=0; h.isStun=0; h.critRate=0.32; break;
case 8: //鲤余欢
h.name = "鲤余欢"; h.maxHp=1350; h.hp=1350; h.attack=240; h.defense=70;
h.shield=0; h.shieldValue=0; h.isStun=0; h.critRate=0.23; break;
case 9: //剑无忌
h.name = "剑无忌"; h.maxHp=1200; h.hp=1200; h.attack=270; h.defense=55;
h.shield=0; h.shieldValue=0; h.isStun=0; h.critRate=0.26; break;
case 10: //蛮神使者
h.name = "蛮神使者"; h.maxHp=1600; h.hp=1600; h.attack=250; h.defense=60;
h.shield=0; h.shieldValue=0; h.isStun=0; h.critRate=0.20; break;
default: //默认
h.name = "蛮神爪牙"; h.maxHp=1500; h.hp=1500; h.attack=240; h.defense=50;
h.shield=0; h.shieldValue=0; h.isStun=0; h.critRate=0.18; break;
}
return h;
}
//状态展示
void showStatus(Hero a, Hero b)
{
cout << "----------------------------------------" << endl;
cout << left << setw(12) << a.name << " HP:" << setw(5) << a.hp << "/" << a.maxHp;
if(a.shield) cout << " 护盾:" << a.shieldValue; if(a.isStun) cout << " [眩晕]"; cout << endl;
cout << left << setw(12) << b.name << " HP:" << setw(5) << b.hp << "/" << b.maxHp;
if(b.shield) cout << " 护盾:" << b.shieldValue; if(b.isStun) cout << " [眩晕]"; cout << endl;
cout << "----------------------------------------" << endl;
}
//普攻
bool attackTarget(Hero &attacker, Hero &defender)
{
Sleep(600);
bool crit = false;
int damage = attacker.attack;
if((rand()%1000)/1000.0 < attacker.critRate) { damage*=2; crit=1; }
damage -= defender.defense; if(damage<10) damage=10;
if(defender.shield && defender.shieldValue>0)
{
if(defender.shieldValue>=damage) { defender.shieldValue-=damage; damage=0; }
else { damage-=defender.shieldValue; defender.shieldValue=0; defender.shield=0; }
}
defender.hp -= damage; if(defender.hp<0) defender.hp=0;
cout << attacker.name << (crit?" 暴击!":"") << " 造成" << damage << "点伤害" << endl;
return crit;
}
//技能(适配全部角色)
void useSkill(Hero &attacker, Hero &defender)
{
Sleep(700);
int sk = rand()%3;
//鲤逍遥
if(attacker.name=="鲤逍遥"){
if(sk0){cout<<"鲤逍遥【逍遥剑决】\n"; attacker.critRate+=0.1; attackTarget(attacker,defender); attacker.critRate-=0.1;}
else if(sk1){cout<<"鲤逍遥【万剑归宗】\n"; int d=attacker.attack1.4-defender.defense; if(d<15)d=15; defender.hp-=d; if(defender.hp<0)defender.hp=0; cout<<"造成"<<d<<"伤害\n";}
else {cout<<"鲤逍遥【剑意护盾】\n"; attacker.shield=1; attacker.shieldValue+=280;}
}
//鹊瑶
else if(attacker.name=="鹊瑶"){
if(sk0){cout<<"鹊瑶【灵羽穿刺】\n"; attackTarget(attacker,defender);}
else if(sk1){cout<<"鹊瑶【鹊影疗愈】\n"; attacker.hp+=220; if(attacker.hp>attacker.maxHp)attacker.hp=attacker.maxHp; cout<<"恢复220HP\n";}
else {cout<<"鹊瑶【风缚】\n"; if(rand()%100<40){defender.isStun=1; cout<<defender.name<<"眩晕!\n";}else cout<<"抵抗\n";}
}
//鹰乘风
else if(attacker.name=="鹰乘风"){
if(sk0){cout<<"鹰乘风【疾风斩】\n"; attackTarget(attacker,defender);}
else if(sk1){cout<<"鹰乘风【凌空突袭】\n"; int d=attacker.attack1.3-defender.defense; if(d<12)d=12; defender.hp-=d; if(defender.hp<0)defender.hp=0; cout<<"造成"<<d<<"伤害\n";}
else {cout<<"鹰乘风【锐攻】\n"; attacker.attack+=40;}
}
//熊莫开
else if(attacker.name=="熊莫开"){
if(sk0){cout<<"熊莫开【巨力冲撞】\n"; attackTarget(attacker,defender);}
else if(sk1){cout<<"熊莫开【坚甲】\n"; attacker.shield=1; attacker.shieldValue+=350;}
else {cout<<"熊莫开【怒吼】\n"; attacker.defense+=35;}
}
//梅寒衣
else if(attacker.name=="梅寒衣"){
if(sk0){cout<<"梅寒衣【寒梅剑】\n"; attackTarget(attacker,defender);}
else if(sk1){cout<<"梅寒衣【冰封】\n"; if(rand()%100<35){defender.isStun=1; cout<<"冻结!\n";}else cout<<"抵抗\n";}
else {cout<<"梅寒衣【冰心】\n"; attacker.defense+=30;}
}
//兔暗香
else if(attacker.name=="兔暗香"){
if(sk0){cout<<"兔暗香【影袭】\n"; attackTarget(attacker,defender);}
else if(sk1){cout<<"兔暗香【速攻】\n"; attacker.attack+=35;}
else {cout<<"兔暗香【迷踪】\n"; attacker.critRate+=0.08;}
}
//鲤余欢
else if(attacker.name=="鲤余欢"){
if(sk0){cout<<"鲤余欢【鱼龙闪】\n"; attackTarget(attacker,defender);}
else if(sk1){cout<<"鲤余欢【龙息】\n"; int d=attacker.attack*1.35-defender.defense; if(d<15)d=15; defender.hp-=d; if(defender.hp<0)defender.hp=0; cout<<"造成"<<d<<"伤害\n";}
else {cout<<"鲤余欢【御水盾】\n"; attacker.shield=1; attacker.shieldValue+=260;}
}
//剑无忌
else if(attacker.name=="剑无忌"){
if(sk0){cout<<"剑无忌【快剑】\n"; attackTarget(attacker,defender);}
else if(sk1){cout<<"剑无忌【破甲】\n"; defender.defense-=25; if(defender.defense<20)defender.defense=20;}
else {cout<<"剑无忌【剑意】\n"; attacker.critRate+=0.09;}
}
//蛮神系
else {
cout<<attacker.name<<"【蛮神冲击】\n";
attackTarget(attacker,defender);
}
}
//修复后的回合战斗函数(核心改点)
void battleRound(Hero &a, Hero &b)
{
cout<<"\n>> "<<a.name<<"回合\n";
Sleep(800);
if(a.isStun)
{
cout<<"眩晕!解除\n";
Sleep(700);
a.isStun=0;
}
else
{
if(rand()%100 < 60)
{
attackTarget(a,b);
}
else
{
useSkill(a,b);
}
}
if(b.hp<=0)return;
cout<<"\n>> "<<b.name<<"回合\n";
Sleep(800);
if(b.isStun)
{
cout<<"眩晕!解除\n";
Sleep(700);
b.isStun=0;
}
else
{
if(rand()%100 < 60)
{
attackTarget(b,a);
}
else
{
useSkill(b,a);
}
}
}
int main()
{
srand(time(0));
cout<<"===== 龙腾宇宙·全自动对战 =\n";
cout<<"1鲤逍遥 2鹊瑶 3鹰乘风 4熊莫开 5蛮神爪牙\n6梅寒衣 7兔暗香 8鲤余欢 9剑无忌 10蛮神使者\n";
int x,y; cout<<"请选角色1:"; cin>>x; cout<<"请选角色2:"; cin>>y;
Hero p1=createHero(x), p2=createHero(y);
cout<<"\n开战:"<<p1.name<<" VS "<<p2.name<<"\n"; Sleep(1200);
int r=1;
while(1){
cout<<"\n=第"<<r<<"回合=====\n"; showStatus(p1,p2); Sleep(1000);
battleRound(p1,p2);
if(p1.hp<=0||p2.hp<=0)break; r++;
}
cout<<"\n战斗结束\n"; Sleep(1000);
if(p1.hp<=0&&p2.hp<=0)cout<<"平局\n";
else if(p1.hp>0)cout<<p1.name<<"胜\n"; else cout<<p2.name<<"胜\n";
cout<<"回合:"<<r<<"\n=========================\n";
system("pause");
return 0;
}
//4.4
/每个角色拥有3 个专属技能,释放技能会打印动作、神态描述,不再只有干巴巴的技能名字。
例:兔暗香身形飘忽,化作一道黑影!【影袭】!
蛮神爪牙、蛮神使者也补全了三套独立技能,有狂化、腐蚀、赐福等效果。
眩晕状态的提示文字更新,增加角色行为描述。
输入容错:输入超出 1?10 范围会自动设置为有效角色,不会乱生成角色。
所有原有机制完整保留:护盾、眩晕、暴击、手动编号选角色、Sleep 延时。/
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <iomanip>
#include <windows.h>
using namespace std;
struct Hero
{
string name;
int hp;
int maxHp;
int attack;
int defense;
bool shield;
int shieldValue;
bool isStun;
double critRate;
};
Hero createHero(int id)
{
Hero h;
switch(id)
{
case 1: //鲤逍遥
h.name = "鲤逍遥"; h.maxHp=1400; h.hp=1400; h.attack=230; h.defense=65;
h.shield=0; h.shieldValue=0; h.isStun=0; h.critRate=0.25; break;
case 2: //鹊瑶
h.name = "鹊瑶"; h.maxHp=1150; h.hp=1150; h.attack=270; h.defense=45;
h.shield=0; h.shieldValue=0; h.isStun=0; h.critRate=0.30; break;
case 3: //鹰乘风
h.name = "鹰乘风"; h.maxHp=1250; h.hp=1250; h.attack=250; h.defense=55;
h.shield=0; h.shieldValue=0; h.isStun=0; h.critRate=0.22; break;
case 4: //熊莫开
h.name = "熊莫开"; h.maxHp=1900; h.hp=1900; h.attack=180; h.defense=110;
h.shield=0; h.shieldValue=0; h.isStun=0; h.critRate=0.12; break;
case 5: //蛮神爪牙
h.name = "蛮神爪牙"; h.maxHp=1500; h.hp=1500; h.attack=240; h.defense=50;
h.shield=0; h.shieldValue=0; h.isStun=0; h.critRate=0.18; break;
case 6: //梅寒衣
h.name = "梅寒衣"; h.maxHp=1300; h.hp=1300; h.attack=260; h.defense=60;
h.shield=0; h.shieldValue=0; h.isStun=0; h.critRate=0.24; break;
case 7: //兔暗香
h.name = "兔暗香"; h.maxHp=1050; h.hp=1050; h.attack=280; h.defense=40;
h.shield=0; h.shieldValue=0; h.isStun=0; h.critRate=0.32; break;
case 8: //鲤余欢
h.name = "鲤余欢"; h.maxHp=1350; h.hp=1350; h.attack=240; h.defense=70;
h.shield=0; h.shieldValue=0; h.isStun=0; h.critRate=0.23; break;
case 9: //剑无忌
h.name = "剑无忌"; h.maxHp=1200; h.hp=1200; h.attack=270; h.defense=55;
h.shield=0; h.shieldValue=0; h.isStun=0; h.critRate=0.26; break;
case 10: //蛮神使者
h.name = "蛮神使者"; h.maxHp=1600; h.hp=1600; h.attack=250; h.defense=60;
h.shield=0; h.shieldValue=0; h.isStun=0; h.critRate=0.20; break;
default:
h.name = "蛮神爪牙"; h.maxHp=1500; h.hp=1500; h.attack=240; h.defense=50;
h.shield=0; h.shieldValue=0; h.isStun=0; h.critRate=0.18; break;
}
return h;
}
void showStatus(Hero a, Hero b)
{
cout << "----------------------------------------" << endl;
cout << left << setw(12) << a.name << " HP:" << setw(5) << a.hp << "/" << a.maxHp;
if(a.shield) cout << " 护盾:" << a.shieldValue;
if(a.isStun) cout << " [眩晕]";
cout << endl;
cout << left << setw(12) << b.name << " HP:" << setw(5) << b.hp << "/" << b.maxHp;
if(b.shield) cout << " 护盾:" << b.shieldValue;
if(b.isStun) cout << " [眩晕]";
cout << endl;
cout << "----------------------------------------" << endl;
}
bool attackTarget(Hero &attacker, Hero &defender)
{
Sleep(600);
bool crit = false;
int damage = attacker.attack;
double randCrit = (rand() % 1000) / 1000.0;
if(randCrit < attacker.critRate)
{
damage *= 2;
crit = true;
}
damage = damage - defender.defense;
if(damage < 10) damage = 10;
if(defender.shield && defender.shieldValue > 0)
{
if(defender.shieldValue >= damage)
{
defender.shieldValue -= damage;
damage = 0;
}
else
{
damage -= defender.shieldValue;
defender.shieldValue = 0;
defender.shield = false;
}
}
defender.hp -= damage;
if(defender.hp < 0) defender.hp = 0;
cout << attacker.name;
if(crit) cout << " 触发暴击!";
cout << " 挥出普通攻击,造成 " << damage << " 点伤害" << endl;
return crit;
}
// 技能:增加角色行为描述
void useSkill(Hero &attacker, Hero &defender)
{
Sleep(700);
int sk = rand() % 3;
// ========== 鲤逍遥 ==========
if(attacker.name == "鲤逍遥")
{
if(sk == 0)
{
cout << "鲤逍遥拔剑出鞘,剑气激荡,施展【逍遥剑决】!" << endl;
attacker.critRate += 0.12;
attackTarget(attacker, defender);
attacker.critRate -= 0.12;
}
else if(sk == 1)
{
cout << "鲤逍遥双手挽剑,万千剑光席卷而出!【万剑归宗】!" << endl;
int dmg = attacker.attack * 1.4 - defender.defense;
if(dmg <15) dmg =15;
if(defender.shield && defender.shieldValue>0)
{
if(defender.shieldValue >= dmg){ defender.shieldValue -=dmg; dmg=0; }
else {dmg -= defender.shieldValue; defender.shieldValue=0; defender.shield=false;}
}
defender.hp -= dmg;
if(defender.hp<0) defender.hp=0;
cout << "漫天剑雨轰击敌人,造成 " << dmg << " 点伤害!" << endl;
}
else
{
cout << "鲤逍遥凝神静气,剑意环绕周身!【剑意护盾】" << endl;
attacker.shield = true;
attacker.shieldValue +=300;
cout << "一层厚实的剑意护盾包裹自身!" << endl;
}
}
// ========== 鹊瑶 ==========
else if(attacker.name == "鹊瑶")
{
if(sk ==0)
{
cout << "鹊瑶羽刃出鞘,凌空飞掠!【灵羽穿刺】" << endl;
attackTarget(attacker, defender);
}
else if(sk ==1)
{
cout << "鹊瑶舒展羽翼,柔和白光洒落全身!【鹊影疗愈】" << endl;
int heal = 240;
attacker.hp += heal;
if(attacker.hp>attacker.maxHp) attacker.hp = attacker.maxHp;
cout << "羽翼的力量抚平伤势,恢复 " << heal << " 点生命!" << endl;
}
else
{
cout << "鹊瑶挥动翅膀卷起狂风,【风缚】!狂风缠绕对手!" << endl;
if(rand()%100 <42){
defender.isStun = true;
cout << defender.name << " 被狂风死死束缚,陷入眩晕!" << endl;
}else{
cout << defender.name << "奋力挣脱了狂风的束缚!" << endl;
}
}
}
// ========== 鹰乘风 ==========
else if(attacker.name == "鹰乘风")
{
if(sk==0){
cout << "鹰乘风双翼振起,如风一般冲杀向前!【疾风斩】" << endl;
attackTarget(attacker, defender);
}else if(sk==1){
cout << "鹰乘风直冲云霄,自高空俯冲而下!【凌空突袭】" << endl;
int dmg = attacker.attack*1.32 - defender.defense;
if(dmg<12)dmg=12;
defender.hp -=dmg;
if(defender.hp<0) defender.hp=0;
cout << "猛烈俯冲撞击对手,造成 "<<dmg<<"点伤害!"<<endl;
}else{
cout << "鹰乘风目光锐利,激发体内野性!【锐攻】!"<<endl;
attacker.attack +=45;
cout << "战意升腾,自身攻击力大幅提升!" << endl;
}
}
// ========== 熊莫开 ==========
else if(attacker.name == "熊莫开")
{
if(sk==0){
cout << "熊莫开沉重身躯猛冲,【巨力冲撞】!" << endl;
attackTarget(attacker, defender);
}else if(sk==1){
cout << "熊莫开绷紧浑身肌肉,硬甲覆盖全身!【坚甲】"<<endl;
attacker.shield = true;
attacker.shieldValue +=380;
cout << "厚重铠甲生成护盾保护自己!" << endl;
}else{
cout << "熊莫开仰天怒吼,震荡四方!【怒吼】"<<endl;
attacker.defense +=40;
cout << "怒吼激发肉身潜能,防御大幅提高!" << endl;
}
}
// ========== 梅寒衣 ==========
else if(attacker.name == "梅寒衣")
{
if(sk==0){
cout << "梅寒衣手中寒剑绽放冷光,【寒梅剑】!" << endl;
attackTarget(attacker, defender);
}else if(sk==1){
cout << "梅寒衣挥剑释放刺骨寒气!【冰封】!" << endl;
if(rand()%100<38){
defender.isStun = true;
cout << defender.name << "被寒冰冻结,动弹不得!" << endl;
}else{
cout << defender.name << "抵抗住冰冷寒气!" << endl;
}
}else{
cout << "梅寒衣心如止水,冰心护体!【冰心】" << endl;
attacker.defense +=32;
cout << "清冷心境强化自身防御!" << endl;
}
}
// ========== 兔暗香 ==========
else if(attacker.name == "兔暗香")
{
if(sk==0){
cout << "兔暗香身形飘忽,化作一道黑影!【影袭】!" << endl;
attackTarget(attacker, defender);
}else if(sk==1){
cout << "兔暗香脚步翻飞,身法全开!【速攻】" << endl;
attacker.attack +=40;
cout << "极速身法让攻击力得到提升!" << endl;
}else{
cout << "兔暗香消失在暗影之中,伺机寻找弱点!【迷踪】" << endl;
attacker.critRate +=0.10;
cout << "隐匿身形,暴击概率上升!" << endl;
}
}
// ========== 鲤余欢 ==========
else if(attacker.name == "鲤余欢")
{
if(sk==0){
cout << "鲤余欢身形灵动,水刃一闪而过!【鱼龙闪】" << endl;
attackTarget(attacker, defender);
}else if(sk==1){
cout << "鲤余欢张口喷出汹涌水浪!【龙息】!" << endl;
int dmg = attacker.attack*1.35-defender.defense;
if(dmg<15)dmg=15;
defender.hp -=dmg;
if(defender.hp<0) defender.hp=0;
cout << "汹涌龙息冲击敌人,造成 "<<dmg<<"点伤害!"<<endl;
}else{
cout << "鲤余欢调动水流环绕周身!【御水盾】" << endl;
attacker.shield = true;
attacker.shieldValue +=290;
cout << "流动水盾护住自身!" << endl;
}
}
// ========== 剑无忌 ==========
else if(attacker.name == "剑无忌")
{
if(sk==0){
cout << "剑无忌剑光快到肉眼难辨!【快剑】!" << endl;
attackTarget(attacker, defender);
}else if(sk==1){
cout << "剑无忌一剑斩向敌人铠甲弱点!【破甲】!" << endl;
defender.defense -=28;
if(defender.defense<20) defender.defense=20;
cout << "击破对手防具,敌人防御力下降!" << endl;
}else{
cout << "剑无忌全身心融入剑道,【剑意】升腾!" << endl;
attacker.critRate +=0.11;
cout << "剑意加持,暴击概率提高!" << endl;
}
}
// ========== 蛮神使者 ==========
else if(attacker.name == "蛮神使者")
{
if(sk==0){
cout << "蛮神使者高举巨斧,蛮力横扫!【蛮神战斧】" << endl;
attackTarget(attacker, defender);
}else if(sk==1){
cout << "蛮神使者呼唤蛮神之力,黑暗能量涌入体内!【蛮神赐福】" << endl;
int heal = 200;
attacker.hp += heal;
if(attacker.hp>attacker.maxHp) attacker.hp = attacker.maxHp;
cout << "蛮神力量修复伤势,恢复" << heal <<"点生命!"<<endl;
}else{
cout << "蛮神使者释放狂暴气场!【狂暴威压】" << endl;
attacker.attack +=35;
cout << "狂暴气息让自身攻击上升!" << endl;
}
}
// ========== 蛮神爪牙 ==========
else
{
if(sk==0){
cout << "蛮神爪牙利爪撕裂空气!【利爪撕裂】" << endl;
attackTarget(attacker, defender);
}else if(sk==1){
cout << "蛮神爪牙引动蛮神浊气侵蚀对手!【浊气腐蚀】" << endl;
defender.defense -=22;
if(defender.defense<20) defender.defense=20;
cout << "浊气腐蚀防具,敌人防御力降低!" << endl;
}else{
cout << "蛮神爪牙激发蛮神血脉!【狂化】!" << endl;
attacker.attack +=30;
cout << "狂化状态下攻击力提升!" << endl;
}
}
}
void battleRound(Hero &a, Hero &b)
{
cout<<"\n>> "<<a.name<<" 的回合"<<endl;
Sleep(800);
if(a.isStun)
{
cout << a.name << "被眩晕困住,浑身无法动弹!眩晕解除。" << endl;
Sleep(700);
a.isStun = false;
}
else
{
if(rand()%100 < 60)
{
attackTarget(a,b);
}
else
{
useSkill(a,b);
}
}
if(b.hp<=0)return;
cout<<"\n>> "<<b.name<<" 的回合"<<endl;
Sleep(800);
if(b.isStun)
{
cout << b.name << "被眩晕困住,浑身无法动弹!眩晕解除。" << endl;
Sleep(700);
b.isStun = false;
}
else
{
if(rand()%100 < 60)
{
attackTarget(b,a);
}
else
{
useSkill(b,a);
}
}
}
int main()
{
srand((unsigned int)time(NULL));
cout<<"===== 龙腾宇宙·全自动对战模拟器 =====\n";
cout<<"【可选角色编号】\n";
cout<<"1 鲤逍遥 2 鹊瑶 3 鹰乘风 4 熊莫开 5 蛮神爪牙\n";
cout<<"6 梅寒衣 7 兔暗香 8 鲤余欢 9 剑无忌 10 蛮神使者\n";
int x,y;
cout << "\n请输入第一个对战角色编号:";
cin >> x;
cout << "请输入第二个对战角色编号:";
cin >> y;
if(x<1||x>10) x=1;
if(y<1||y>10) y=2;
Hero p1=createHero(x), p2=createHero(y);
cout<<"\n==========战斗开启:"<<p1.name<<" VS "<<p2.name<<"=========="<<endl;
Sleep(1200);
int roundCount = 1;
while(true)
{
cout << "\n===== 第 " << roundCount << " 回合 =====" << endl;
showStatus(p1,p2);
Sleep(1000);
battleRound(p1,p2);
if(p1.hp <= 0 || p2.hp <=0) break;
roundCount++;
}
cout << "\n================战斗结束================" << endl;
Sleep(1000);
if(p1.hp <= 0 && p2.hp <= 0)
{
cout << "双方全部倒下,战斗平局!" << endl;
}
else if(p1.hp > 0)
{
cout << "【胜利】"<< p1.name << "取得本次对战胜利!" << endl;
}
else
{
cout << "【胜利】"<< p2.name << "取得本次对战胜利!" << endl;
}
cout << "总共战斗回合数:" << roundCount << endl;
cout << "========================================" << endl;
system("pause");
return 0;
}
这里空空如也

















有帮助,赞一个