package demo5;
import java.util.Random;
public class Player {
//封装:吧属性设为pri,vate,提供公共的get/set方法间接访问
private String name;
private String type;
private int life;
private int defense;
private int attack;
public void say(){
System.out.println("我叫"+name+",是一个"+type);
System.out.println(",生命力高达"+life+",防御力"+defense+",攻击力"+attack);
}
// 我方开启的战斗
// @param p 敌对玩家
Random r = new Random();
int i = r.nextInt(10);
int o = r.nextInt(10);
public void pk(Player p){
int flag = 0;//默认我方先攻击
//回合制,直到一方死亡停止
while (true){
//显示一下当前战斗人的信息
this.say();
p.say();
//定义一个标记,0我方攻击 1敌方共计
if (flag==0){
if (i>=5){
int harm = this.attack*2-p.defense;
p.life-=harm;
System.out.println(p.name+"掉血"+harm);
}else {
int harm = this.attack-p.defense;
System.out.println(p.name+"掉血"+harm);
p.life-=harm;//让敌方生命值-伤害值
}
//战斗 我方攻击力-敌方防御力=伤害值
flag=1;//改变标记,转换攻击角色
}else{
if (i<=5){
int harm = p.attack*2-this.defense;
System.out.println(this.name+"掉血"+harm);
this.life-=harm;
}else {
int harm = p.attack-this.defense;
System.out.println(this.name+"掉血"+harm);
this.life-=harm;
}
//战斗 敌方攻击力-我方防御力=伤害值
//让我方生命值-伤害值
flag=0;//攻击标记,转换攻击角色
}
//有血量<=0,战斗结束
if (this.life<=0){
System.out.println(p.name+"打败了"+this.name);
if (o>=5){
System.out.println("装备碎了");
}
break;
}
if (p.life<=0){
System.out.println(this.name+"打败了"+p.name);
if (o>=5){
System.out.println("装备飞了");
}
break;
}
//线程休眠
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
//构造器
public Player() {
}
public Player(String name, String type, int life, int defense, int attack) {
this.name = name;
this.type = type;
this.life = life;
this.defense = defense;
this.attack = attack;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public int getLife() {
return life;
}
public void setLife(int life) {
this.life = life;
}
public int getDefense() {
return defense;
}
public void setDefense(int defense) {
this.defense = defense;
}
public int getAttack() {
return attack;
}
public void setAttack(int attack) {
this.attack = attack;
}
}
package demo5;
public class PlayerTest {
public static void main(String[] args) {
Player p1 = new Player("龙傲天","战士",100,20,30);
Player p2 = new Player("牧尘","法师",70,12,45);
p1.pk(p2);
}
}