Java小小RPG游戏第六版(基于第五版优化)

来源:互联网 发布:mac显示硬盘隐藏文件 编辑:程序博客网 时间:2024/06/07 01:17

功能一览:

实现自由打怪,自动打怪,自动升级,支持升级后的属性增加。

package com.game.huntervsmonster05;  public class TestGme { static int i;  public static void main(String[] args) {/*  * Hunter hunter = new Hunter(1); for (i = 1; i < 10; i++) { Monster monster  * = new Monster(i); System.out.println(hunter.name + "VS" + monster.type);  * hunter.fight(monster); System.out.println("战斗结束"); // monster.show();  * hunter.show(); if (!hunter.isLive) { return; } }  */ new Game().start(new Hunter(3)); } } 
package com.game.huntervsmonster05;  public class Monster { String type; int maxLife; int actualLife; boolean isLive; int attack; int defend; int experience; int nimble;  public Monster(int i) { switch (i) { case 1: { this.type = "小僵尸"; this.attack = 80; this.defend = 20; this.isLive = true; this.maxLife = 200; this.actualLife = maxLife; this.experience = 100; this.nimble = 5; } break; case 2: { this.type = "大僵尸"; this.attack = 130; this.defend = 50; this.isLive = true; this.maxLife = 500; this.actualLife = maxLife; this.experience = 200; this.nimble = 10; } break; case 3: { this.type = "僵尸老大"; this.attack = 200; this.defend = 90; this.isLive = true; this.maxLife = 1000; this.actualLife = maxLife; this.experience = 300; this.nimble = 13; } break; case 4: { this.type = "小鬼"; this.attack = 210; this.defend = 100; this.isLive = true; this.maxLife = 1200; this.actualLife = maxLife; this.experience = 320; this.nimble = 20; } break; case 5: { this.type = "老鬼"; this.attack = 350; this.defend = 150; this.isLive = true; this.maxLife = 2000; this.actualLife = maxLife; this.experience = 400; this.nimble = 25; } break; case 6: { this.type = "火鬼王"; this.attack = 500; this.defend = 200; this.isLive = true; this.maxLife = 5000; this.actualLife = maxLife; this.experience = 500; this.nimble = 30; } break; case 7: { this.type = "黑无常"; this.attack = 600; this.defend = 250; this.isLive = true; this.maxLife = 8000; this.actualLife = maxLife; this.experience = 800; this.nimble = 35; } break; case 8: { this.type = "白无常"; this.attack = 600; this.defend = 250; this.isLive = true; this.maxLife = 8000; this.actualLife = maxLife; this.experience = 800; this.nimble = 40; } break; case 9: { this.type = "阎王"; this.attack = 900; this.defend = 300; this.isLive = true; this.maxLife = 10000; this.actualLife = maxLife; this.experience = 1000; this.nimble = 50; } break; } }  public void fight(Hunter hunter) { if (!isLive) { return; } hunter.injured(this); }  public void injured(Hunter hunter) { int randomNimble = 0; randomNimble = randomNumber(); if (randomNimble >this.nimble) { if (hunter.attack >= this.defend) this.actualLife = this.actualLife - (hunter.attack - this.defend); } else System.out.println(this.type + "躲避成功"); if (this.actualLife <= 0) { this.dead(hunter); return; } this.show(); this.fight(hunter); }  void dead(Hunter hunter) { this.isLive = false; hunter.changeExperience(this); }  int randomNumber() { int number = 0; number = (int) (Math.random() * 100); return number; }  void show() { if (this.isLive) System.out.println(this.type + "还有" + this.actualLife + "点血"); else System.out.println(this.type + "被杀死了!"); } } 

package com.game.huntervsmonster05;  public class GameUtil { public static int retrunRandom(int start, int end) { while (true) { int number = 0; number = (int) (Math.random() * 10); if (number >= start && number <= end) return number; } }  public static int retrunBigRandom(int start, int end) { while (true) { int number = 0; number = (int) (Math.random() * 100); if (number >= start && number <=end) return number; } }  public static int retrunLongRandom(int start, int end) { while (true) { int number = 0; number = (int) (Math.random() * 100); if (number >= start && number <=end) return number; } } } 

package com.game.huntervsmonster05;  public class Game { Monster m1; Monster m2; Monster m3; Monster m4; Monster m5; Monster m6; Monster m7; Monster m8; Monster m9;  public Game() { /*  * Hunter hunter=new Hunter(1); Monster monster1=new Monster(1); Monster  * monster2=new Monster(2); Monster monster3=new Monster(3); Monster  * monster4=new Monster(4); Monster monster5=new Monster(5); Monster  * monster6=new Monster(6); Monster monster7=new Monster(7); Monster  * monster8=new Monster(8); Monster monster9=new Monster(9);  */ m1 = new Monster(1); m2 = new Monster(2); m3 = new Monster(3); m4 = new Monster(4); m5 = new Monster(5); m6 = new Monster(6); m7 = new Monster(7); m8 = new Monster(8); m9 = new Monster(9); }  void start(Hunter hunter) { while (m1.isLive || m2.isLive || m3.isLive || m4.isLive || m5.isLive || m6.isLive || m7.isLive || m8.isLive || m9.isLive) { if (hunter.isLive) { int number = GameUtil.retrunRandom(1, 9); switch (number) { case 1: hunter.fight(m1); break; case 2: hunter.fight(m2); break; case 3: hunter.fight(m3); break; case 4: hunter.fight(m4); break; case 5: hunter.fight(m5); break; case 6: hunter.fight(m6); break; case 7: hunter.fight(m7); break; case 8: hunter.fight(m8); break; case 9: hunter.fight(m9); break; } } else break; } end(hunter); }  void end(Hunter hunter) { if (hunter.isLive) { System.out.println(hunter.name + "宇内无敌!"); } else System.out.println("呜呼,天妒英才!"); } } 

package com.game.huntervsmonster05;  public class Hunter { String name; int maxLife; int actualLife; int level; int attack; int defend; int experience; String weapon; boolean isLive; int nimble;  public Hunter(int i) { switch (i) { case 1: { this.name = "李逍遥"; this.attack = 100; this.defend = 40; this.isLive = true; this.maxLife = 200; this.weapon = "无尘剑"; this.actualLife = maxLife; this.experience = 0; this.level = 1; this.nimble = 90; } break; case 2: { this.name = "景天"; this.attack = 500; this.defend = 200; this.isLive = true; this.maxLife = 1000; this.weapon = "魔剑"; this.actualLife = maxLife; this.experience = 0; this.level = 1; this.nimble = 45; } break; case 3: { this.name = "孙悟空"; this.attack = 1000; this.defend = 400; this.isLive = true; this.maxLife = 3000; this.weapon = "金箍棒"; this.actualLife = maxLife; this.experience = 0; this.level = 1; this.nimble = 50; } break; } }  void fight(Monster monster) { if (!isLive) { return; } monster.injured(this); }  void injured(Monster monster) { int randomNimble = 0; randomNimble = randomNumber(); if (randomNimble >this.nimble) { if (monster.attack >= this.defend) this.actualLife = this.actualLife - (monster.attack - this.defend); } else System.out.println(this.name + "躲避成功"); if (this.actualLife <= 0) { this.dead(); return; } this.show(); this.fight(monster); }  void dead() { this.isLive = false; }  void changeExperience(Monster moster) { this.experience += moster.experience; while (this.experience >= (this.level * 200)) { upgrade(); } }  void upgrade() { this.level += 1; this.attack *= 1.5; this.defend *= 1.25; this.actualLife = (int) (this.maxLife * 1.5); this.maxLife *= 1.5; this.nimble += 2; System.out.println(this.name + ":" + this.level); }  void show() { if (this.isLive) System.out.println(this.name + "还有" + this.actualLife + "点血"); else { System.out.println(this.name + "壮烈牺牲了!"); return; } }  int randomNumber() { int number = 0; number = (int) (Math.random() * 100); return number; } }