用JAVA写一个勇者斗恶龙的回合制游戏,需要拥有4个技能,以及可以进行闪避防御操作,代码要写注释
时间: 2024-03-25 12:37:24 浏览: 182
好的,下面是基于 Java 的勇者斗恶龙回合制游戏的代码,包括四个技能和闪避防御操作:
```
import java.util.Random;
import java.util.Scanner;
public class DragonQuestGame {
// 定义勇者的属性
private static int heroHP = 100; // 勇者的生命值
private static int heroAttack = 20; // 勇者的攻击力
private static int heroDefense = 10; // 勇者的防御力
private static int heroSpeed = 15; // 勇者的速度
// 定义恶龙的属性
private static int dragonHP = 150; // 恶龙的生命值
private static int dragonAttack = 25; // 恶龙的攻击力
private static int dragonDefense = 15; // 恶龙的防御力
private static int dragonSpeed = 10; // 恶龙的速度
// 定义技能
private static int[] skillDamage = {0, 30, 40, 50}; // 技能的伤害值
private static String[] skillName = {"", "火球术", "闪电术", "风刃术"}; // 技能的名称
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Random random = new Random();
int round = 1; // 回合数
System.out.println("游戏开始!勇者面对一只凶猛的恶龙!");
// 游戏循环,直到勇者或恶龙的生命值归零
while (heroHP > 0 && dragonHP > 0) {
System.out.println("第 " + round + " 回合开始!");
// 判断谁先攻击
if (heroSpeed >= dragonSpeed) {
// 勇者先攻击
System.out.println("勇者先攻击!请选择技能:");
System.out.println("1. " + skillName[1] + " (消耗 10 点魔法,造成 " + skillDamage[1] + " 点伤害)");
System.out.println("2. " + skillName[2] + " (消耗 20 点魔法,造成 " + skillDamage[2] + " 点伤害)");
System.out.println("3. " + skillName[3] + " (消耗 30 点魔法,造成 " + skillDamage[3] + " 点伤害)");
System.out.println("4. 闪避防御 (消耗 0 点魔法,提高下一回合的闪避率)");
int skill = scanner.nextInt();
int damage = 0; // 伤害值
// 根据技能选择进行攻击或闪避防御
switch (skill) {
case 1:
if (heroHP >= 10) {
// 消耗 10 点魔法值
heroHP -= 10;
damage = skillDamage[1];
System.out.println("勇者使用 " + skillName[1] + " 对恶龙造成了 " + damage + " 点伤害!");
} else {
System.out.println("魔法值不足,无法使用 " + skillName[1] + " 技能!");
}
break;
case 2:
if (heroHP >= 20) {
// 消耗 20 点魔法值
heroHP -= 20;
damage = skillDamage[2];
System.out.println("勇者使用 " + skillName[2] + " 对恶龙造成了 " + damage + " 点伤害!");
} else {
System.out.println("魔法值不足,无法使用 " + skillName[2] + " 技能!");
}
break;
case 3:
if (heroHP >= 30) {
// 消耗 30 点魔法值
heroHP -= 30;
damage = skillDamage[3];
System.out.println("勇者使用 " + skillName[3] + " 对恶龙造成了 " + damage + " 点伤害!");
} else {
System.out.println("魔法值不足,无法使用 " + skillName[3] + " 技能!");
}
break;
case 4:
heroSpeed *= 2; // 提高闪避率
System.out.println("勇者使用闪避防御,下一回合将提高闪避率!");
break;
default:
System.out.println("无效的技能选择!");
break;
}
// 如果勇者使用了攻击技能,则计算恶龙的受伤情况
if (damage > 0) {
int realDamage = damage - dragonDefense; // 实际伤害值
if (realDamage <= 0) {
System.out.println("恶龙防御力太高,勇者的攻击被完全防御了!");
} else {
dragonHP -= realDamage;
System.out.println("恶龙生命值减少了 " + realDamage + " 点,剩余生命值为 " + dragonHP + " 点。");
}
}
} else {
// 恶龙先攻击
System.out.println("恶龙先攻击!");
int damage = dragonAttack - heroDefense; // 实际伤害值
if (damage <= 0) {
System.out.println("勇者防御力太高,恶龙的攻击被完全防御了!");
} else {
heroHP -= damage;
System.out.println("勇者生命值减少了 " + damage + " 点,剩余生命值为 " + heroHP + " 点。");
}
}
// 重置闪避率
heroSpeed = 15;
// 回合结束
System.out.println("第 " + round + " 回合结束!\n");
round++;
}
// 游戏结束,判断胜负
if (heroHP <= 0) {
System.out.println("游戏结束!勇者被恶龙击败了!");
} else {
System.out.println("游戏结束!勇者打败了恶龙!");
}
}
}
```
以上代码中,我们定义了勇者和恶龙的属性(生命值、攻击力、防御力、速度),以及四个技能和技能的伤害值和名称。游戏循环进行,每回合交替进行勇者和恶龙的攻击,勇者可以选择不同的技能进行攻击或闪避防御,而恶龙只能进行普通攻击。最终判断勇者或恶龙的生命值归零时,游戏结束并输出胜负结果。
阅读全文