QuickHit游戏【JAVA版】

代码块----

public class xxl {//信息类
    //级别,次数,时间,字符长度,分数
    private int jb;//级别
    private int cs;//次数
    private int sj;//时间
    private int zfcd;//字符长度
    private int fs;//分数

    public xxl(int jb, int cs, int sj, int zfcd, int fs) {
        this.jb = jb;
        this.cs = cs;
        this.sj = sj;
        this.zfcd = zfcd;
        this.fs = fs;
    }

    public int getJb() {
        return jb;
    }

    public void setJb(int jb) {
        this.jb = jb;
    }

    public int getCs() {
        return cs;
    }

    public void setCs(int cs) {
        this.cs = cs;
    }

    public int getSj() {
        return sj;
    }

    public void setSj(int sj) {
        this.sj = sj;
    }

    public int getZfcd() {
        return zfcd;
    }

    public void setZfcd(int zfcd) {
        this.zfcd = zfcd;
    }

    public int getFs() {
        return fs;
    }

    public void setFs(int fs) {
        this.fs = fs;
    }
}

public class xxxxl {//信息详细类
    public static final xxl hw[]=new xxl[6]; //创建公共静态信息类对象列表
    //级别,次数,时间,字符长度,分数
    static {//列表初始化
        hw[0]=new xxl(1,5,30,2,1);
        hw[1]=new xxl(2,5,25,2,1);
        hw[2]=new xxl(3,5,20,3,1);
        hw[3]=new xxl(4,5,15,4,1);
        hw[4]=new xxl(5,5,10,5,1);
        hw[5]=new xxl(6,5,10,6,1);
    }
}
import java.util.Scanner;

public class wj {//玩家类
    //玩家等级,玩家积分,开始时间,已用时间
    private int wjdj;//玩家等级
    private int wjjf;//玩家积分
    private long kssj;//开始时间
    private int yysj;//已用时间

    public int getWjdj() {
        return wjdj;
    }

    public void setWjdj(int wjdj) {
        this.wjdj = wjdj;
    }

    public int getWjjf() {
        return wjjf;
    }

    public void setWjjf(int wjjf) {
        this.wjjf = wjjf;
    }

    public long getKssj() {
        return kssj;
    }

    public void setKssj(long kssj) {
        this.kssj = kssj;
    }

    public int getYysj() {
        return yysj;
    }

    public void setYysj(int yysj) {
        this.yysj = yysj;
    }

    public void wyx(){//玩游戏
        System.out.println("-------小黄QuickHit游戏【JAVA版】--------");
        game g=new game(this);//创建游戏对象
        Scanner s=new Scanner(System.in);
        for(int x=0 ; x<6 ;x++){//外部循环游戏等级次数
            //晋级
            this.wjdj++;
            //积分清零
            this.wjjf=0;
            //计时清零
            this.kssj=System.currentTimeMillis()/1000;
            for (int y=0;y<xxxxl.hw[wjdj-1].getCs();y++){//循环每一级需要游戏的次数
                String on=g.zhf();//游戏对象输出随机字符串
                String in=s.next();//外部输入
                g.pdzfc(on,in);
            }
        }
    }
}
import java.util.Random;

public class game { //游戏类
    private wj wjname;//玩家对象做变量

    public game(wj wjname) {
        this.wjname = wjname;
    }

    public wj getWjname() {
        return wjname;
    }

    public void setWjname(wj wjname) {
        this.wjname = wjname;
    }
    public String zhf(){//电脑随机输出字符串
        StringBuilder str=new StringBuilder();//创建可变化字符串
        Random random=new Random();//创建随机数
        int zfccd=xxxxl.hw[wjname.getWjdj()-1].getZfcd();//根据等级定义定义字符长度
        for(int x=0;x<zfccd;x++){
            int num=random.nextInt(zfccd);
            switch (num){
                case 0:
                    str.append(">");
                    break;
                case 1:
                    str.append("<");
                    break;
                case 2:
                    str.append("+");
                    break;
                case 3:
                    str.append("-");
                    break;
                case 4:
                    str.append("!");
                    break;
                case 5:
                    str.append("*");
                    break;
            }
        }
        System.out.println(str);
        return str.toString();
    }

    public void pdzfc(String wj,String dn){//判断zhf与玩家的输入的字符串是否一致,并且输出内容

        //3、如果输入正确,则会有两种情况:
        //3.1 如果超时,则会输出玩家超时信息并退出程序
        //3.2 如果没有超时,则会执行一下操作:计算玩家当前分数,计算玩家已用时间,输出玩家当前级别、当前积分与已用时间,判断用户是否已经闯过最后一关并处理
        if(wj.equals(dn)){//1、确定玩家的输入是否正确
            if(System.currentTimeMillis()/1000-wjname.getKssj()>xxxxl.hw[wjname.getWjdj()-1].getSj()){//输入超时
                System.out.println("你输入的太慢了,已经超时,程序退出");
                System.exit(1);
            }else {//输入没有超时
                //计算玩家当前分数
                wjname.setWjjf(wjname.getWjjf()+xxxxl.hw[wjname.getWjdj()-1].getFs());
                //计算玩家已用时间
                wjname.setYysj((int) (wjname.getYysj()+(System.currentTimeMillis()-wjname.getKssj()/1000)));
                //输出玩家当前级别、当前积分与已用时间
                System.out.println("输入正确,您的级别为:"+wjname.getWjdj()+"\t您的积分为:"+wjname.getWjjf()+"\t已用时间为:"+wjname.getWjjf()+"秒");
                //判断用户是否已经闯过最后一关并处理
                if(wjname.getWjdj()==6){//玩家等级为6级
                    //计算6级全部通关的分数总和
                    int sum=xxxxl.hw[wjname.getWjdj()-1].getCs() * xxxxl.hw[wjname.getWjdj()-1].getFs();
                    if(wjname.getWjjf()==sum){
                        System.out.println("你已闯关成功,成为绝世高手,恭喜你!!");
                        System.exit(1);
                    }

                }
            }

        }else {//2、如果输入不正确,则直接输出错误信息并退出程序
            System.out.println("输出错误,退出!");
            System.exit(1);
        }
    }

}

public class test {//测试类
    public static void main(String[] args) {
        wj w=new wj();
        w.wyx();
    }
}

运行结果———————

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值