1.玩家类pk
增加暴击
增加物品掉落(击杀敌人后随机掉落物品)
package cn.hp.demo;
import java.sql.SQLOutput;
import java.util.Random;
/*
玩家类
属性:名字、类型、生命值、防御值、攻击力
方法:自我介绍、PK
*/
public class Player {
private String name;//姓名
private String type;//类型:战士、射手
private int sm;//生命值
private int fy;//防御值
private int gj;//攻击值
/*
描述自我的属性
*/
public void say(){
System.out.println("我是"+name+"是一个"+type);
System.out.println("生命值"+sm+"防御值"+fy+"攻击值"+gj);
}
/*
PK
敌对Player p玩家
*/
public void pk(Player p) throws InterruptedException {
int flag=0;
while (true){
//显示pk当前人
Random r=new Random();
int bj=r.nextInt(3);
int dl=r.nextInt(5);
this.say();
p.say();
//定一个flag 0我方 1对方
if (flag==0){
//PK 我方攻击值-对方攻击值 伤害值
if (bj>=1){
System.out.println(p.name+"暴击率为"+bj);
double sh=this.gj*1.5-p.fy;
System.out.println(p.name+"掉血"+sh);
p.sm-=sh;//敌方生命值-伤害值
flag=1;
}else{
System.out.println(p.name+"暴击率为"+bj);
double sh=this.gj-p.fy;
System.out.println(p.name+"掉血"+sh);
p.sm-=sh;//敌方生命值-伤害值
flag=1;
}
} else{
//pk 敌方攻击值-我方防御值=伤害值
if (bj>=1){
System.out.println(this.name+"暴击率为"+bj);
double sh=p.gj*1.5-this.sm;
System.out.println(this.name+"掉血"+sh);
this.sm-=sh;
flag=0;
}else{
System.out.println(this.name+"暴击率为"+bj);
double sh=p.gj-this.sm;
System.out.println(this.name+"掉血"+sh);
this.sm-=sh;
flag=0;
}
}
//血量<=0,战斗结束
if (this.sm<=0){
if (dl<=2){
System.out.println(p.name+"打败了"+this.name+"奖励史迪奇");
break;
}
}
if (p.sm<=0){
if (dl>=2){
System.out.println(this.name+"打败了"+p.name+"奖励史迪奇");
break;
}
}
//线程休眠
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
//构造器
//无参
public Player() {
}
//有参
public Player(String name, String type, int sm, int fy, int gj) {
this.name = name;
this.type = type;
this.sm = sm;
this.fy = fy;
this.gj = gj;
}
//set、get方法
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 getSm() {
return sm;
}
public void setSm(int sm) {
this.sm = sm;
}
public int getFy() {
return fy;
}
public void setFy(int fy) {
this.fy = fy;
}
public int getGj() {
return gj;
}
public void setGj(int gj) {
this.gj = gj;
}
}
package cn.hp.demo;
/*
测试玩家类
创建玩家pk
*/
public class PlayerTest {
public static void main(String[] args) {
Player p1 =new Player("艾琳","射手",100,50,30);
Player p2 =new Player("后羿","射手",100,12,20);
//try catch ctrl+alt+t
try {
p1.pk(p2);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}