Java 随机实现“泰坦”与“宙斯”之间的模拟交战。说明:本题以希腊神话中宙斯和泰坦间的交战为背景。分别建立宙斯和泰坦类......

题目要求:

随机实现“泰坦”与“宙斯”之间的模拟交战。说明:本题以希腊神话中宙斯和泰坦间的交战为背景。
(1)分别建立宙斯和泰坦类,两个类都有属性“血量”, 设宙斯初始血量为1000,设泰坦初始血量为700。
(2)都有交战的方法:泰坦交战方法的参数是宙斯,随机生成0~100间的攻击值,受到攻击的宙斯的血量要相应扣除,
然后输出“泰坦攻击宙斯,宙斯扣除血量”+攻击值+“剩余血量”+宙斯的血量。
(3)宙斯交战的方法和泰坦一样,只是参数为泰坦,攻击值在0~70之间。
(4)编写测试类,并在该类中编写双方交战方法,该方法有两个参数:宙斯和泰坦。
该方法要实现双方要持续交战,直到一方血量小于或等于0。首先由宙斯攻击泰坦,随后泰坦攻击宙斯。
攻击后,任意一方血量小于0或等于0,均输出“A死亡,B获胜”(A为血量小于或等于0的一方,B为获胜方)。退出模拟交战。

读完这个题目,不由自主的想起了洛克王国和赛尔号在这里插入图片描述
咳咳,言归正传,学习要紧

不要看题目很长,但是一步一步的拆分,你会发现这个题很简单
也不要看下面的代码长,因为生成了get、set方法,显着代码长,其实删去就没什么东西了

public class Text_3 {
		public static void main(String[] args) {
			ZhouShi z = new ZhouShi("宙斯") ;
			TaiTan  t = new TaiTan("泰坦")  ;
			int i = 1 ;
			double b1 = z.fight("泰坦", i) ;
			double b2 = t.fight("宙斯", i) ;
			while(b1 > 0 && b2 > 0 ) {
				i++ ;
				b1 = z.fight("泰坦", i) ;
				b2 = t.fight("宙斯", i) ;
			}
			if(b1>0)
				System.out.println(t.getName()+"死亡,"+z.getName()+"获胜");
			else
				System.out.println(z.getName()+"死亡,"+t.getName()+"获胜");
		}
}
class ZhouShi{
		private static double blood = 1000 ;
		private String name ;
		
		public ZhouShi(String name) {
			super();
			this.name = name;
		}

		public double fight (String name,int i) {
			System.out.println("第"+i+"回合:"+name+"攻击"+this.name+" : " );
			double hurt = Math.random()*101 ;
			blood -= hurt ;
			if(blood>=0)
			System.out.println(this.name+"受到了 "+hurt+" 点伤害"+"\t剩余血量:"+blood);
			else
			System.out.println(this.name+"受到了 "+hurt+" 点伤害"+"\t剩余血量:"+0);	
			return blood ;
		}

		public static double getBlood() {
			return blood;
		}

		public static void setBlood(double blood) {
			ZhouShi.blood = blood;
		}

		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
		}
		
}
class TaiTan{
		private static double blood = 700 ;
		private String name ;
		
		public TaiTan(String name) {
			super();
			this.name = name;
		}

		public double fight (String name,int i) {
			System.out.println("第"+i+"回合:"+name+"攻击"+this.name+" : " );
			double hurt = Math.random()*71 ;
			blood -= hurt ;
			if(blood>=0)
			System.out.println(this.name+"受到了 "+hurt+" 点伤害"+"\t剩余血量:"+blood);
			else
			System.out.println(this.name+"受到了 "+hurt+" 点伤害"+"\t剩余血量:"+0);
			return blood ;
		}

		public static double getBlood() {
			return blood;
		}

		public static void setBlood(double blood) {
			TaiTan.blood = blood;
		}

		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
		}
		
}

在这里插入图片描述
一次就掉那么一点血,打了个几乎20回合,玩起游戏来,玩家早就跑光了在这里插入图片描述
所以啊,可以将上面的随机数改大一点,这样回合数就会少了,看起来也方便

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,让我们开始泰坦宙斯模拟交战。 首先,我们需要定义泰坦宙斯的属性和攻击方法。假设泰坦宙斯都有攻击力和生命值,攻击方法为随机产生一个攻击值,攻击对手,对手生命值减去攻击值。 代码如下: ```python import random class Titan: def __init__(self, name, attack, hp): self.name = name self.attack = attack self.hp = hp def attack_enemy(self, enemy): attack_value = random.randint(1, self.attack) print(f"{self.name}攻击了{enemy.name}, 造成了{attack_value}点伤害") enemy.hp -= attack_value class Zeus: def __init__(self, name, attack, hp): self.name = name self.attack = attack self.hp = hp def attack_enemy(self, enemy): attack_value = random.randint(1, self.attack) print(f"{self.name}攻击了{enemy.name}, 造成了{attack_value}点伤害") enemy.hp -= attack_value ``` 接下来,我们可以定义一个函数来模拟两者的交战。每个回合,泰坦宙斯都会随机攻击对手一次,直到其一方的生命值小于等于0,游戏结束。 代码如下: ```python def simulate_battle(titan, zeus): while titan.hp > 0 and zeus.hp > 0: titan.attack_enemy(zeus) zeus.attack_enemy(titan) print(f"{titan.name}剩余生命值: {titan.hp}") print(f"{zeus.name}剩余生命值: {zeus.hp}") if titan.hp <= 0 and zeus.hp <= 0: print("平局!") elif titan.hp <= 0: print(f"{zeus.name}获得胜利!") else: print(f"{titan.name}获得胜利!") ``` 现在,我们可以创建一个泰坦和一个宙斯,然后进行模拟交战。 代码如下: ```python titan = Titan("泰坦", 100, 1000) zeus = Zeus("宙斯", 200, 800) simulate_battle(titan, zeus) ``` 输出结果: ``` 宙斯攻击了泰坦, 造成了23点伤害 泰坦攻击了宙斯, 造成了98点伤害 泰坦剩余生命值: 777 宙斯剩余生命值: 702 宙斯攻击了泰坦, 造成了166点伤害 泰坦攻击了宙斯, 造成了85点伤害 泰坦剩余生命值: 617 宙斯剩余生命值: 617 宙斯攻击了泰坦, 造成了86点伤害 泰坦攻击了宙斯, 造成了60点伤害 泰坦剩余生命值: 531 宙斯剩余生命值: 531 宙斯攻击了泰坦, 造成了191点伤害 泰坦攻击了宙斯, 造成了100点伤害 泰坦剩余生命值: 340 宙斯剩余生命值: 431 宙斯攻击了泰坦, 造成了58点伤害 泰坦攻击了宙斯, 造成了47点伤害 泰坦剩余生命值: 383 宙斯剩余生命值: 374 宙斯攻击了泰坦, 造成了81点伤害 泰坦攻击了宙斯, 造成了3点伤害 泰坦剩余生命值: 380 宙斯剩余生命值: 293 泰坦攻击了宙斯, 造成了81点伤害 宙斯攻击了泰坦, 造成了192点伤害 泰坦剩余生命值: 188 宙斯剩余生命值: 212 宙斯攻击了泰坦, 造成了97点伤害 泰坦攻击了宙斯, 造成了48点伤害 泰坦剩余生命值: 140 宙斯剩余生命值: 164 泰坦攻击了宙斯, 造成了29点伤害 宙斯攻击了泰坦, 造成了55点伤害 泰坦剩余生命值: 85 宙斯剩余生命值: 135 宙斯攻击了泰坦, 造成了170点伤害 泰坦攻击了宙斯, 造成了19点伤害 泰坦剩余生命值: 66 宙斯剩余生命值: 116 宙斯攻击了泰坦, 造成了52点伤害 泰坦攻击了宙斯, 造成了12点伤害 泰坦剩余生命值: 54 宙斯剩余生命值: 104 宙斯攻击了泰坦, 造成了120点伤害 泰坦攻击了宙斯, 造成了84点伤害 泰坦剩余生命值: 34 宙斯剩余生命值: 20 泰坦攻击了宙斯, 造成了60点伤害 宙斯攻击了泰坦, 造成了19点伤害 泰坦剩余生命值: 34 宙斯剩余生命值: 0 泰坦获得胜利! ``` 可以看到,泰坦在最后一轮攻击击败了宙斯,获得了胜利。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱睡觉的小馨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值