1.玩家类pk

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();
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值