奥特曼-小怪兽
来源:互联网 发布:win32编程是干什么的 编辑:程序博客网 时间:2024/04/29 19:39
package com.lovo;/** * 奥特曼 * @author Even * */public class Ultraman { private String name; private int hp; private int mp; /** * 构造器 * @param name */ public Ultraman(String name) { this.name = name; this.hp = 300; this.mp = 100; } public int getHp() { return hp; } public void setHp(int hp) { this.hp = hp > 0? hp: 0; } public int getMp() { return mp; } public void setMp(int mp) { this.mp = mp; } /** * 攻击 * @param m */ public void attack(Monster m){ int injury = (int)(Math.random()*21+10); m.setHp(m.getHp()- injury); } /** * 究极必杀技 * @param m */ public void hugeAttack(Monster m){ m.setHp(m.getHp()-50); } /** * 魔法攻击 * @param m */ public void magicAttack(Monster[] ms){ for(int i = 0; i < ms.length;i++){ Monster m = ms[i]; if(m.isAlive()){ m.setHp(m.getHp()-20); }else{ m.setHp(0); } } } @Override public String toString() { return "Ultraman 的生命值为" + hp; }}
package com.lovo;/** * 小怪兽 */public class Monster { private String name; //名字 private int hp; public int getHp() { return hp; } public void setHp(int hp) { this.hp = hp > 0 ? hp : 0; } public Monster(String name) { this.name = name; this.hp = 100; } public void attack(Ultraman u){ int injury = (int)(Math.random()*11+5); u.setHp(u.getHp()-injury); } @Override public String toString() { return "Monster 的生命值为" + hp; } public boolean isAlive(){ return this.hp>0; } public String getName() { return name; } public void setName(String name) { this.name = name; }}
package com.lovo;public class PK { public static boolean hasAliveMonster(Monster[] ms){ boolean alive = false; 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("张三"), new Monster("李四"), new Monster("刘五"), new Monster("王六"), new Monster("张七"), }; int round = 1; do{ System.out.println("======第"+ round++ + "回合======");// System.out.println("小怪兽攻击奥特曼"); Monster m = null; do{ int mIndex = (int)(Math.random()*ms.length); m = ms[mIndex]; }while(!m.isAlive());// int mIndex = (int)(Math.random()*ms.length); System.out.println(u); System.out.println(m); m.attack(u); System.out.println(m.getName()+"小怪兽攻击奥特曼"); if(u.getHp()>0){ u.setMp(u.getMp()+5); double rate = Math.random(); if(rate <= 0.8){ System.out.println("奥特曼攻击小怪兽"); u.attack(m); } else if(rate <= 0.9){ System.out.println("奥特曼使用究极必杀技"); u.hugeAttack(m); } else{ if(u.getMp()>=30){ System.out.println("奥特曼使用魔法攻击"); u.magicAttack(ms); } else{ System.out.println("奥特曼使用魔法失败"); } } for(Monster tempMonster : ms){ System.out.println(tempMonster); } } }while(u.getHp()>0&&hasAliveMonster(ms)); if(u.getHp()>0){ System.out.println("奥特曼胜利"); } else{ System.out.println("小怪兽胜利"); } }}
0 0
- 奥特曼-小怪兽
- 奥特曼打小怪兽(小怪兽)
- 奥特曼和小怪兽的故事
- 小R打怪兽
- Goop:滚吧,小怪兽
- 小怪兽日记(一)
- 小怪兽日记(二)
- 小怪兽日记(三)
- 小怪兽日记(四)
- 小怪兽日记(五)
- 跳跃的小怪兽 Splay
- 奥特曼打小怪兽
- 【练习】面向对象系列(003)——奥特曼 PK 小怪兽
- 从奥特曼和小怪兽的决斗中分析java类和对象-初学者必须会的一个入门程序
- 小怪兽 Java反射技术 等你来打
- Java面向对象编程实例(奥特曼打一群小怪兽)
- 怎么制作小怪兽打凹凸曼的游戏~
- Java知识(009)--奥特曼打小怪兽
- 线性表算法-删除
- LeetCode 6 ZigZag Conversion (C,C++,Java,Python)
- 线性表算法-合并
- [算法] 关于排序
- PHP的学习之路第四页
- 奥特曼-小怪兽
- 杭电ACM1237——简单计算器
- 优秀开源项目
- 第三章 第十四题
- paxos算法之粗浅理解
- PHP的学习之路第五页
- wrapper | OpenSCManager failed - 拒绝访问。 (0x5)
- UVA 11077 Find the Permutations DP
- 对联系人进行增删改查