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; } }
- Java小小RPG游戏第六版(基于第五版优化)
- Java小小RPG游戏第五版(基于第四版优化)
- Java小小RPG游戏第二版 (基于第一版优化)
- Java小小RPG游戏第三版(基于第二版优化)
- Java小小RPG游戏第四版(基于第三版优化)
- 用Java时写的第一个小小RPG游戏程序(第一版)
- 学习HTML5开发RPG游戏第五步>游戏界面设计<二>(结束)
- 学习HTML5开发RPG游戏第五步>游戏界面设计<一>
- C++ primer plus(第六版)第五章练习题
- C++primer(第五版)第六章函数学习笔记
- c++primer第五版课后练习答案(第六章)
- C++ Primer Plus(第六版)--学习杂记(第五章)
- 学习c++(c+primer第五版第六章)
- C++Primer Plus(第六版) 第十四章 第五题
- (转)AS3 RPG游戏引擎:理解分析RPG游戏
- RPG游戏(C++)代码
- RPG游戏制作(CSV)
- RPG游戏(地图传送)
- .net开发人员经常浏览的8个网站
- 数据库简单代码建表
- android属性系统--应用程序get和set
- Java实现事件监听器的四种方式
- SpringMVC—配置XXX-servlet.xml
- Java小小RPG游戏第六版(基于第五版优化)
- 设计模式——依赖倒转原则
- 正义是什么?
- java编程规范 + 十大低级错误
- 希尔排序(Shell Sort)
- SpringMVC—ParameterizableViewController控制器实现跳转页面
- 解析器文件--Interpreter File
- SpringMVC—UrlFilenameViewController控制器实现跳转页面
- 实验室框架个人总结过程