300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 奥特曼打小怪兽

奥特曼打小怪兽

时间:2019-03-01 00:58:22

相关推荐

奥特曼打小怪兽

1、设计奥特曼类,属性有【名字和血量】,行为有【普通攻击、必杀攻击和魔法攻击】

其中普通攻击和必杀攻击一次只能随机攻击一只活着的小怪兽

魔法攻击可以攻击所有的小怪兽

要求普通攻击伤害是20~29之间

必杀伤害如果血量剩余大于60就攻击血量3/4的伤害,如果不大于就直接攻击60伤害

魔法攻击要求固定伤害30

但是无论如何攻击最终小怪兽的血量要保持为0

奥特曼是几率性触发攻击 10%必杀 30%魔法 60%普通

2、设计小怪兽类,属性有【名字和血量】,行为有【普通攻击】

其中普通攻击可以攻击奥特曼

要求普通攻击伤害10~19之间

但是无论如何攻击最终奥特曼的血量要保持为0

3、执行类中操作:本游戏是回合制游戏 其中是【1只奥特曼大战4只小怪兽】,如何便捷的管理和存储4只小怪兽请自行分析

需要在控制台上输出下面的打印效果

需要打印了第几回合 奥特曼的名字和血量 使用了什么攻击

如果是魔法攻击即输出 使用魔法攻击攻击全体小怪兽

如果是普通或必杀攻击 需要写出攻击了那只小怪兽

打印每只小怪兽的名字和血量 并打印小怪兽使用普通攻击

输出:

======== 第X回合 ========

XXX凹凸曼 血量XXX

使用了 魔法攻击全体/普攻,XXX小怪兽/必杀,XXX小怪兽

XXX小怪兽 血量XXX

XXX小怪兽 血量XXX

XXX小怪兽 血量XXX

XXX小怪兽 血量XXX

小怪兽使用了普攻

4、游戏结束条件:凹凸曼血量为0,小怪兽胜利

所有的小怪兽都死了,凹凸曼胜利

5、特殊条件说明:

凹凸曼 普攻和必杀不能攻击死了小怪兽 要【随机攻击一只】活着的小怪兽

魔法无所谓攻击所有的小怪兽【死活不限】 小怪兽的血量不能出现负数 0

阵亡的小怪兽不允许参与到本轮攻击中

奥特曼和小怪兽的初始血量根据个人喜好设定【但是不要太过分】

700 ~1000 250~350

测试类

package com.djz.test;

/*** @author djz* @create -10-20-20:19*/public class Demo04 {public static boolean isAllAlive(Monster[] ms) {for (int i = 0; i < ms.length; i++) {if (ms[i].isAlive()) {return true;}}return false;}public static void main(String[] args) {Ultraman u = new Ultraman("迪迦"); //奥特曼名字Monster[] ms = { //一群怪兽的名字new Monster("怪兽1"),new Monster("怪兽2"),new Monster("怪兽3"),new Monster("怪兽4"),};int round = 1;do {System.out.println("**********第" + round + "回合***********");Monster m ;do {int index = (int) (Math.random()*ms.length);m = ms[index];} while (!m.isAlive());System.out.println(m.getName()+"小怪兽攻击奥特曼" + u.getName());m.attack(u);System.out.println(u);if (u.getHp() > 0) {double rout = Math.random();if (rout <=0.6) {System.out.println(u.getName()+"攻击小怪兽"+ m.getName());u.attack(m);}else if(rout<=0.9) {System.out.println(u.getName()+"使用必杀技攻击小怪兽" +m.getName());u.hugeAttack(m);}else if (rout<=30) {System.out.println( u.getName() + "使用魔法攻击小怪兽");u.magicAttack(ms);}for (int i = 0; i < ms.length; i++) {System.out.println(ms[i]);}}round++;} while (u.getHp() > 0 && isAllAlive(ms));if (u.getHp() > 0) {System.out.println(u.getName()+"胜利!!!!");}else {System.out.println("小怪兽胜利!!!");}}}

奥特曼类

public class Ultraman {private int hp; //生命private String name; //名字public Ultraman(String name) {this.name = name;hp = 700;}public void attack(Monster m) {int injury = (int) (Math.random() * 21 + 10);m.setHp(m.getHp() - injury);}public void magicAttack(Monster[] ms) {for (int i = 0; i < ms.length; i++) {if (ms[i].isAlive()) {ms[i].setHp(ms[i].getHp() - 30);}}}public void hugeAttack(Monster m) {if (m.getHp() > 60) {m.setHp((m.getHp() / 4));} else {m.setHp(m.getHp() - 60);}}public String getName() {return name;}public int getHp() {return hp;}public void setHp(int hp) {this.hp = hp > 0 ? hp : 0;}@Overridepublic String toString() {return name + "生命值:" + hp;}}

怪兽类

public class Monster {private int hp;private String name;public Monster(String name) {this.name = name;hp = 250;}public void attack(Ultraman m) {int injury = (int) (Math.random() * 11 + 10);m.setHp(m.getHp() - injury);}public String getName() {return name;}public int getHp() {return hp;}public void setHp(int hp) {this.hp = hp > 0? hp : 0;}@Overridepublic String toString() {return "小怪兽" + name +"生命值:" + hp;}public boolean isAlive() {return hp > 0;}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。