首页 > 代码库 > 奥尔曼打小怪兽
奥尔曼打小怪兽
怪兽类
1 package com.lovo; 2 3 public class Monster { 4 private String name; 5 private int hp; //血量 6 private int aggressivity; //攻击力 7 private int defense; //防御力 8 9 10 public Monster() {11 }12 13 public Monster(String name, int hp, int aggressivity, int defense) {14 this.name = name;15 this.hp = hp;16 this.aggressivity = aggressivity;17 this.defense = defense;18 }19 /**20 * 攻击 21 * @param ultraman22 */23 public void attack(Ultraman ultraman) {24 int currentAggressivity = (int) ((Math.random() * 20 + 81) / 100 * aggressivity);25 int currentDefense = (int) ((Math.random() * 35 + 65) / 100 * ultraman.getDefense());26 if (currentAggressivity <= currentDefense) {27 ultraman.setHp(ultraman.getHp() - 1);28 }else {29 ultraman.setHp(ultraman.getHp() - (currentAggressivity - currentDefense));30 }31 }32 /**33 * 逃跑 34 * @return35 */36 public String run() {37 return "你丫的小心走夜路,奥特曼!!!";38 }39 40 @Override41 public String toString() {42 return "name=" + name + "\nhp=" + hp + "\naggressivity="43 + aggressivity + "\ndefense=" + defense;44 }45 46 public String getName() {47 return name;48 }49 public void setName(String name) {50 this.name = name;51 }52 public int getHp() {53 return hp;54 }55 public void setHp(int hp) {56 if (hp < 0) {57 this.hp = 0;58 }else {59 this.hp = hp;60 }61 }62 public int getAggressivity() {63 return aggressivity;64 }65 public void setAggressivity(int aggressivity) {66 this.aggressivity = aggressivity;67 }68 public int getDefense() {69 return defense;70 }71 public void setDefense(int defense) {72 this.defense = defense;73 }74 75 76 }
奥特曼类
1 package com.lovo; 2 3 public class Ultraman { 4 private String name; 5 private int hp; 6 private int aggressivity; 7 private int defense; 8 private int energy; //能量,放技能 9 private boolean isShapeShift = false; 10 11 12 public Ultraman() { 13 } 14 15 16 public Ultraman(String name, int hp, int aggressivity, int defense, 17 int energy) { 18 this.name = name; 19 this.hp = hp; 20 this.aggressivity = aggressivity; 21 this.defense = defense; 22 this.energy = energy; 23 } 24 25 26 /** 27 * 奥特曼攻击 28 * @param monster 29 */ 30 public void attack(Monster monster) { 31 int currentAggressivity = (int) ((Math.random() * 20 + 81) / 100 * aggressivity); 32 int currentDefense = (int) ((Math.random() * 35 + 65) / 100 * monster.getDefense()); 33 if (currentAggressivity <= currentDefense) { 34 monster.setHp(monster.getHp() - 1); 35 }else { 36 monster.setHp(monster.getHp() - (currentAggressivity - currentDefense)); 37 } 38 } 39 /** 40 * 变身前的大招 41 * @param monster 42 * @return 43 */ 44 public boolean radiateUlti(Monster monster) { 45 if (!isShapeShift) { 46 if (energy > 0) { 47 monster.setHp(monster.getHp() - energy * 3); 48 energy = 0; 49 return true; 50 } 51 } 52 return false; 53 54 } 55 /** 56 * 变身后的大招 57 * @param monsters 58 * @return 59 */ 60 public boolean radiateUlti(Monster[] monsters) { 61 if (isShapeShift) { 62 if (energy > 0) { 63 for (Monster monster : monsters) { 64 monster.setHp(monster.getHp() - energy * 3); 65 } 66 energy = 0; 67 return true; 68 } 69 } 70 return false; 71 } 72 /** 73 * 逃跑 74 * @return 75 */ 76 public String run() { 77 return "我还会回来的!!!"; 78 } 79 80 81 @Override 82 public String toString() { 83 return "name=" + name + "\nhp=" + hp + "\naggressivity=" 84 + aggressivity + "\ndefense=" + defense + "\nenergy=" + energy 85 + "\nisShapeShift=" + isShapeShift; 86 } 87 88 public String getName() { 89 return name; 90 } 91 92 public void setName(String name) { 93 this.name = name; 94 } 95 96 public int getHp() { 97 return hp; 98 } 99 100 public void setHp(int hp) {101 if (hp < 0) {102 this.hp = 0;103 }else {104 this.hp = hp;105 }106 }107 108 public int getAggressivity() {109 return aggressivity;110 }111 112 public void setAggressivity(int aggressivity) {113 this.aggressivity = aggressivity;114 }115 116 public int getDefense() {117 return defense;118 }119 120 public void setDefense(int defense) {121 this.defense = defense;122 }123 124 public int getEnergy() {125 return energy;126 }127 128 public void setEnergy(int energy) {129 this.energy = energy;130 }131 132 public boolean isShapeShift() {133 return isShapeShift;134 }135 136 public void setShapeShift(boolean isShapeShift) {137 this.isShapeShift = isShapeShift;138 }139 140 }
测试类
奥特曼打一只怪兽
1 public static void main(String[] args) { 2 //一只怪兽 3 Ultraman u1 = new Ultraman("泰罗", 700, 100, 80, 150); 4 Monster m1 = new Monster("佐利姆", 600, 130, 100); 5 System.out.println("奥特曼初始状态:\n" + u1); 6 System.out.println("怪兽初始状态:\n" + m1); 7 for (int i=1;u1.getHp() > 0 && m1.getHp() > 0; i++) { 8 System.out.println("第"+i+"回合"); 9 int beforeMHp = m1.getHp();10 if (u1.getHp() >= m1.getAggressivity() - u1.getDefense() * 0.65) {11 u1.attack(m1);12 }else {13 u1.radiateUlti(m1);14 }15 System.out.println("怪兽受到"+ (beforeMHp - m1.getHp()) +"点伤害。");16 if (m1.getHp() > 0) {17 int beforeUHp = u1.getHp();18 m1.attack(u1);19 System.out.println("奥特曼受到"+ (beforeUHp - u1.getHp()) +"点伤害。");20 }21 }22 System.out.println("奥特曼最后状态:\n" + u1);23 System.out.println("怪兽最后状态:\n" + m1);24 if (u1.getHp() > 0 && m1.getHp() <= 0) {25 System.out.println(u1.getName() + "胜利!");26 }27 else if (m1.getHp() > 0 && u1.getHp() <= 0) {28 System.out.println(m1.getName() + "胜利!");29 }
30 }
奥特曼打多只小怪兽
1 public static void main(String[] args) { 2 Ultraman u1 = new Ultraman("泰罗", 900, 140, 80, 150); 3 Monster m1 = new Monster("佐利姆", 750, 130, 100); 4 Monster m2 = new Monster("伊特", 550, 90, 80); 5 Monster m3 = new Monster("卡丹", 400, 140, 130); 6 Monster[] ms = {m1,m2,m3}; 7 int monsterNum = ms.length; 8 boolean goon = true; 9 System.out.println("奥特曼初始状态:\n" + u1);10 System.out.println("怪兽初始状态:\n" + m1 +"\n------------------" +"\n" + m2 +"\n------------------" +"\n" + m3);11 for (int i=1;u1.getHp() > 0 && monsterNum > 0 && goon; i++) {12 System.out.println("第"+i+"回合");13 if (u1.getHp() > (m1.getAggressivity() + m2.getAggressivity() + m3.getAggressivity()-u1.getDefense() * 0.65 * 3) || u1.getEnergy() == 0) {14 int beforeMHp = 0;15 for (int j = 0; j < ms.length; j++) {16 beforeMHp = ms[j].getHp();17 if (beforeMHp > 0) {18 u1.attack(ms[j]);19 System.out.println(ms[j].getName() + "怪兽受到"+ (beforeMHp - ms[j].getHp()) +"点伤害。");20 if (ms[j].getHp() <= 0) {21 monsterNum--;22 System.out.println(ms[j].getName() + "怪兽死亡!");23 }24 }25 }26 if (u1.getHp() < 100 && u1.getEnergy() == 0 && monsterNum != 0) {27 System.out.println(u1.run());28 goon = false;29 System.out.println("怪兽胜利!");30 }31 }else {32 int[] beforeMHp = new int[ms.length];33 for (int j = 0; j < beforeMHp.length; j++) {34 beforeMHp[j] = ms[j].getHp();35 }36 u1.setShapeShift(true);37 u1.radiateUlti(ms);38 for (int j = 0; j < ms.length; j++) {39 if (beforeMHp[j] > 0) {40 System.out.println(ms[j].getName() + "怪兽受到"+ (beforeMHp[j] - ms[j].getHp()) +"点伤害。");41 if (ms[j].getHp() <= 0) {42 monsterNum--;43 System.out.println(ms[j].getName() + "怪兽死亡!");44 }45 }46 }47 }48 for (int j = 0; j < ms.length && goon; j++) {49 if (ms[j].getHp() > 0) {50 int beforeUHp = u1.getHp();51 m1.attack(u1);52 System.out.println("奥特曼受到来至"+ ms[j].getName() + "的" + (beforeUHp - u1.getHp()) +"点伤害。");53 if (monsterNum == 1 && ms[j].getHp() < 100 && u1.getHp() > 0) {54 System.out.println(ms[j].run());55 goon =false;56 System.out.println(u1.getName() + "胜利!");57 } 58 }59 }60 }61 System.out.println("奥特曼最后状态:\n" + u1);62 System.out.println("怪兽最后状态:\n" + m1 +"\n------------------" +"\n" + m2 +"\n------------------" +"\n" + m3);63 if (u1.getHp() > 0 && m1.getHp() <= 0 && m2.getHp() <= 0 && m3.getHp() <= 0) {64 System.out.println(u1.getName() + "胜利!");65 }66 else if ((m1.getHp() > 0 || m2.getHp() > 0 || m3.getHp() > 0) && u1.getHp() <= 0) {67 System.out.println("怪兽胜利!");68 }69 }
奥尔曼打小怪兽
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。