Java实现蓝桥杯勇者斗恶龙

勇者斗恶龙

你的王国里有一条n个头的恶龙,你希望雇一些骑士把它杀死(即砍掉所有头)。
村里有m个骑士可以雇佣,一个能力值为x的骑士可以砍掉恶龙一个直径不超过x的头,
且需要支付x个金币。如何雇佣骑士才能砍掉恶龙的所有头,且需要支付的金币最少?
注意,一个骑士只能砍一个头(且不能被雇佣两次)。

[输入]
输入包含多组数据。每组数据的第一行为正整数n和m(1≤n,m≤20 000);
以下n行每行为一个整数,即恶龙每个头的直径;
以下m行每行为一个整数,即每个骑士的能力。输入结束标志为n=m=0。

[输出]
对于每组数据,输出最少花费。如果无解,输出“Loowater is doomed!”。

[样例输入]
2 3
5
4
7
8
4
2 1
5
5
10
0 0

[样例输出]
11
Loowater is doomed!

package 第六次模拟;

import java.util.Arrays;
import java.util.Scanner;

public class Demo4勇者斗恶龙 {
	public static void main(String arg[]) {
		final int maxn = 20000 + 5;
		int[] A = new int[maxn];
		int[] B = new int[maxn];
		Scanner sc = new Scanner(System.in);
		while (sc.hasNext()) {
		
  • 20
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 23
    评论
好的,我可以提供一个简单的勇者恶龙回合制游戏JAVA代码,但是由于篇幅限制,我无法提供完整的代码。 首先,你需要创建一个Hero类和一个Monster类,分别代表勇者恶龙,他们都有名字、生命值、攻击力、防御力等属性。 ```java // Hero类 public class Hero { private String name; private int hp; private int attack; private int defense; // 构造函数 public Hero(String name, int hp, int attack, int defense) { this.name = name; this.hp = hp; this.attack = attack; this.defense = defense; } // getter和setter方法 // ... // 攻击方法 public int attack(Monster monster) { int damage = this.attack - monster.getDefense(); if (damage <= 0) { damage = 1; } monster.setHp(monster.getHp() - damage); return damage; } } // Monster类 public class Monster { private String name; private int hp; private int attack; private int defense; // 构造函数 public Monster(String name, int hp, int attack, int defense) { this.name = name; this.hp = hp; this.attack = attack; this.defense = defense; } // getter和setter方法 // ... // 攻击方法 public int attack(Hero hero) { int damage = this.attack - hero.getDefense(); if (damage <= 0) { damage = 1; } hero.setHp(hero.getHp() - damage); return damage; } } ``` 然后,你需要创建一个战类Battle,实现勇者恶龙的对战逻辑。 ```java public class Battle { private Hero hero; private Monster monster; // 构造函数 public Battle(Hero hero, Monster monster) { this.hero = hero; this.monster = monster; } // 战方法 public void start() { System.out.println("勇者" + hero.getName() + "挑战" + monster.getName() + "开始了!"); while (hero.getHp() > 0 && monster.getHp() > 0) { // 勇者攻击 int heroDamage = hero.attack(monster); System.out.println(hero.getName() + "攻击了" + monster.getName() + ",造成了" + heroDamage + "点伤害。"); if (monster.getHp() <= 0) { System.out.println(monster.getName() + "被打败了!"); break; } // 恶龙攻击 int monsterDamage = monster.attack(hero); System.out.println(monster.getName() + "攻击了" + hero.getName() + ",造成了" + monsterDamage + "点伤害。"); if (hero.getHp() <= 0) { System.out.println(hero.getName() + "被打败了!"); break; } } System.out.println("战结束!"); } } ``` 最后,你可以在主函数中创建勇者恶龙,然后开始战。 ```java public static void main(String[] args) { Hero hero = new Hero("勇者", 100, 20, 10); Monster monster = new Monster("恶龙", 200, 30, 5); Battle battle = new Battle(hero, monster); battle.start(); } ``` 以上就是一个简单的勇者恶龙回合制游戏JAVA代码。当然,这只是一个简单的示例,你可以根据自己的需求进行扩展和修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值