package multiplethread;
public class TestThread {
public static void main(String[] args){
Hero gareen = new Hero();
gareen.name = "盖伦";
gareen.hp = 616;
gareen.damage = 50;
Hero teemo = new Hero();
teemo.name = "提莫";
teemo.hp = 300;
teemo.damage = 30;
Hero bh = new Hero();
bh.name = "赏金猎人";
bh.hp = 500;
bh.damage = 65;
Hero leesin = new Hero();
leesin.name = "盲僧";
leesin.hp = 455;
leesin.damage = 80;
Thread t1 = new Thread(){
public void run(){
while(!teemo.isDead()){
gareen.attackHero(teemo);
}
}
};
t1.start();
Thread t2 = new Thread(){
public void run(){
while(!leesin.isDead()){
bh.attackHero(leesin);
}
}
};
t2.start();
}
}
package multiplethread;
public class Hero {
public String name;
public float hp;
public int damage;
public void attackHero(Hero h){
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
h.hp -= damage;
System.out.printf("%s正在攻击%s,%s的血变成了%f%n",this.name,h.name,h.name,h.hp);
if(h.isDead()){
System.out.println(h.name+"死了!");
}
}
public boolean isDead(){
return 0>=hp?true:false;
}
}
package multiplethread;
public class Battle implements Runnable{
private Hero h1;
private Hero h2;
public Battle(Hero h1,Hero h2){
this.h1 = h1;
this.h2 = h2;
}
@Override
public void run() {
while(!h2.isDead()){
h1.attackHero(h2);
}
}
}