Java-模拟洛克王国游戏程序
以下是一个简单的Java程序,模拟了《洛克王国》游戏的基本宠物对战功能。程序包含宠物选择、技能攻击和战斗逻辑:
import java.util.Scanner;
class Pet {
private String name;
private int hp;
private int attack;
private int speed;
private String[] skills;
public Pet(String name, int hp, int attack, int speed, String[] skills) {
this.name = name;
this.hp = hp;
this.attack = attack;
this.speed = speed;
this.skills = skills;
}
public String getName() { return name; }
public int getHp() { return hp; }
public int getAttack() { return attack; }
public int getSpeed() { return speed; }
public String[] getSkills() { return skills; }
public void takeDamage(int damage) {
hp -= damage;
if (hp < 0) hp = 0;
}
public boolean isFainted() {
return hp <= 0;
}
}
public class RockKingdomGame {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 创建宠物库
Pet[] pets = {
new Pet("火花", 100, 30, 40, new String[]{"火焰喷发", "热力爆弹", "龙之爪牙", "暴击枪"}),
new Pet("水灵", 120, 25, 35, new String[]{"高压喷射", "水之波纹", "治愈之泉", "漩涡术"}),
new Pet("喵喵", 90, 35, 50, new String[]{"藤鞭打击", "种子机枪", "阳光烈焰", "寄生种子"})
};
System.out.println("欢迎来到洛克王国!");
System.out.println("请选择你的宠物:");
// 显示宠物选项
for (int i = 0; i < pets.length; i++) {
System.out.printf("%d. %s (HP: %d, 攻击: %d, 速度: %d)\n",
i + 1, pets[i].getName(), pets[i].getHp(), pets[i].getAttack(), pets[i].getSpeed());
}
// 玩家选择宠物
int choice;
do {
System.out.print("输入选择 (1-" + pets.length + "): ");
choice = scanner.nextInt();
} while (choice < 1 || choice > pets.length);
Pet playerPet = pets[choice - 1];
System.out.println("你选择了: " + playerPet.getName());
// 随机选择对手
Pet opponent = pets[(int)(Math.random() * pets.length)];
while (opponent == playerPet) {
opponent = pets[(int)(Math.random() * pets.length)];
}
System.out.println("\n你的对手是: " + opponent.getName());
// 战斗开始
System.out.println("\n===== 战斗开始! =====");
while (!playerPet.isFainted() && !opponent.isFainted()) {
// 显示状态
System.out.println("\n" + playerPet.getName() + " HP: " + playerPet.getHp());
System.out.println(opponent.getName() + " HP: " + opponent.getHp());
// 玩家回合
System.out.println("\n你的回合!选择技能:");
String[] skills = playerPet.getSkills();
for (int i = 0; i < skills.length; i++) {
System.out.println((i + 1) + ". " + skills[i]);
}
int skillChoice;
do {
System.out.print("选择技能 (1-" + skills.length + "): ");
skillChoice = scanner.nextInt();
} while (skillChoice < 1 || skillChoice > skills.length);
String chosenSkill = skills[skillChoice - 1];
int damage = (int)(playerPet.getAttack() * (0.8 + Math.random() * 0.4));
// 应用伤害
opponent.takeDamage(damage);
System.out.printf("%s 使用了 %s! 造成 %d 点伤害!\n",
playerPet.getName(), chosenSkill, damage);
if (opponent.isFainted()) {
System.out.println(opponent.getName() + " 失去战斗能力!");
break;
}
// 对手回合
String opponentSkill = opponent.getSkills()[(int)(Math.random() * opponent.getSkills().length)];
int opponentDamage = (int)(opponent.getAttack() * (0.7 + Math.random() * 0.4));
playerPet.takeDamage(opponentDamage);
System.out.printf("%s 使用了 %s! 造成 %d 点伤害!\n",
opponent.getName(), opponentSkill, opponentDamage);
if (playerPet.isFainted()) {
System.out.println(playerPet.getName() + " 失去战斗能力!");
}
}
// 战斗结果
System.out.println("\n===== 战斗结束! =====");
if (playerPet.isFainted()) {
System.out.println("很遗憾,你输了...");
} else {
System.out.println("恭喜你获胜了!");
}
}
}
要运行此程序,只需将代码复制到名为RockKingdomGame.java的文件中,然后使用Java编译器编译运行即可。
更多推荐



所有评论(0)