用JAVA抽象类实现:
战士打怪,战士分1级2级3级,怪也分1级2级3级,不同级别的战士打怪会有不同效果,比如1级战士打1级怪,打掉1点HP(生命值),1级战士打2级怪打掉0。5HP,1级战士打3级怪,MISS,
打不掉HP,2级战士打1级怪,打掉2点HP,打2级怪打掉1点HP,打3级怪,打0。5点HP,3级战士打1级怪,打掉3点HP,打2级怪,打掉2点HP,打3级怪,打掉1点HP;战士打怪,怪还击,1级怪打1级战士打掉1点HP,以次类推,和战士打怪一样。直到有一方HP减为O为止。不用画面。只写这个过程的算法,谢谢
哪位大虾帮着给做一下,感激!
战士打怪,战士分1级2级3级,怪也分1级2级3级,不同级别的战士打怪会有不同效果,比如1级战士打1级怪,打掉1点HP(生命值),1级战士打2级怪打掉0。5HP,1级战士打3级怪,MISS,
打不掉HP,2级战士打1级怪,打掉2点HP,打2级怪打掉1点HP,打3级怪,打0。5点HP,3级战士打1级怪,打掉3点HP,打2级怪,打掉2点HP,打3级怪,打掉1点HP;战士打怪,怪还击,1级怪打1级战士打掉1点HP,以次类推,和战士打怪一样。直到有一方HP减为O为止。不用画面。只写这个过程的算法,谢谢
哪位大虾帮着给做一下,感激!
摘抄部分如下,不过这是一个spring的一个例子,不过 LZ可以思想还是可以借用的5.2.6一个简单的回合格斗小游戏示例
下面,我们使用一个简单的回合格斗的小游戏,来演示AspectJ的应用。这个示例主要设计了一个战士Soldier类,这个类包括发动攻击、治疗、躲避、移动等功能。另外有一个充当客户端的主程序MainTest,里面的功能就是让两个战士回合制互相攻击,直到一个被倒下。核心类Soldier的源码如下:publicclass Soldier {private String name;privateinthealth=100;privateintdamage=10;privateintx=10;privateinty=10;//攻击其它角色publicboolean attack(Soldier target){ boolean ret=false; if(!target.dodge())//目标是否躲闪成功 { target.setHealth(target.getHealth()-this.damage); ret=true; } move(); //移动一下 treat();//冶我疗伤 return ret;}publicvoid move(){ this.x+=getRandom(5); this.y+=getRandom(5);}//躲避x及y随机变动,成功率为50%publicboolean dodge(){ return getRandom(10)%2==0;}//治疗,具有一定成功的机会,可以提高生命值0-20点publicvoid treat(){ if(canTreat()) this.health+=getRandom(20);}publicboolean canTreat(){ return getRandom(10)/2==0;} privateint getRandom(int seed){ return RandomUtil.getRandomValue(seed);} //getter及setter方法publicint getHealth() { returnhealth;}publicvoid setHealth(int health) { this.health = health;}public String getName() { returnname;}publicvoid setName(String name) { this.name = name;}publicint getX() { returnx;}publicvoid setX(int x) { this.x = x;}publicint getY() { returny;}publicvoid setY(int y) { this.y = y;}publicint getDamage() { returndamage;}publicvoid setDamage(int damage) { this.damage = damage;}}Soldier引用了一个随机数生成工具类RandomUtil,用于模拟一定的发生概率,代码如下:publicclass RandomUtil {privatestatic java.util.Random random=new java.util.Random();publicstaticint getRandomValue(int seed){ returnrandom.nextInt(seed);}}然后就是使用Soldier的客户端程序MainTest,这里是一个简单的控制台程序,代码如下:publicclass MainTest { publicstaticvoid main(String[] args) { Soldier p1=new Soldier(); p1.setName("角色1"); Soldier p2=new Soldier(); p2.setName("角色2"); int i=0; while(p1.getHealth()>0 && p2.getHealth()>0) { p2.attack(p1); p1.attack(p2); i+=2; } System.out.println("战斗次数:"+i); if(p1.getHealth()>0)System.out.println("角色1战胜!"); else System.out.println("角色2战胜!"); }}这三个类组成了一个完成的应用程序,执行MainTest,你会发现经过一会儿的战斗以后,在控制台会输出战斗的结果。