永发信息网

java 问题 QuickHit项目

答案:1  悬赏:40  手机版
解决时间 2021-03-16 22:46
java 问题 QuickHit项目
最佳答案
import java.util.Date;
import java.util.Random;
import java.util.Scanner;

//QuickHit输出字符串,根据玩家的输入和所用时间来判断是否继续游戏

class Game{
    private int count;    //游戏玩家的级别        
    public void setCount(int count){
        this.count = count;
    }
    public int getCount(){
        return count;
    }
    public void myPrint(int countinteg, int count, int temptime){
        System.out.println("输入正确!继续努力:积分" + countinteg
                        + "级别:" + count + " 用时:" + temptime + "秒");
    }
    public void myPrint(int temptime){
        System.out.println("输入正确,但是超时结束。用时:" 
                            + temptime + "秒");
    }
    public void myPrint(){
        System.out.println("输入错误,游戏结束!");
    }
    
}
class MyString{    //与字符串有关类,随机字符串
    private String allstring;
    public MyString(){
        allstring = 
            "helloeveryone,thisisatestprogram,nicetomeetyoueveryone" ;
    }
    public String randomString(int number){
        Random rand = new Random();
        int tmp = rand.nextInt(allstring.length() - number);    //产生一个随机整数
        String out = allstring.substring(tmp,  tmp + number);  //从allstring里截取一段
        return out;
    }    
}
class LevelParam{    //与级别和字符串长度有关类,每个级别需要输入的字符串长度            
     public int getStrLength(int count){
        int back = 0;
        switch(count){
            case 1:
                back = 6;   break;
            case 2:
                back = 9;   break;
            case 3:
                back = 12;  break;
            case 4:
                back = 17;  break;
            case 5:
                back = 22;  break;
            case 6:
                back = 28;  break;
            default:
                break;
        }
        return back;
    }
}

public class Test{
    public static void main(String[] args){
        Game player = new Game();
        player.setCount(1);            //初始级别设置为1
        Scanner sc = new Scanner(System.in);
        int number = 0;                //设置测试的字符数目
        int countinteg = 0;            //countinteg是积分累计
        int limittime = 5;             //设置初始限制时间是5秒
        
        while( player.getCount() < 7 ){      //最高级别是6

                number = new LevelParam().
                    getStrLength( player.getCount() );   //根据玩家的级别确定长度
                String target = new MyString().randomString(number);
                System.out.println( target
                            + "  :请输入与上面相同的字符串!");
                long time1 = new Date().getTime();
                String input = sc.nextLine();
                long time2 = new Date().getTime();
                long temptime = (time2 - time1) / 1000;  //得到输入时耗费的时间总量
                if( input.equals(target) && temptime <= limittime){
                    countinteg += 50;
                    player.myPrint(countinteg, player.getCount(), limittime);
                }else if( input.equals(target) ){
                    player.myPrint(limittime);
                    break;
                }else{
                    player.myPrint();
                    break;
                }   
            if(countinteg >= 200){    //积分累计大于200分重新计算
                countinteg = 0;
                player.setCount(player.getCount() + 1);
                limittime += 1;
            }  
        }    
    }
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
双汇冷鲜肉豫P03-074我想知道这个在什么地方
乘法符号是用*表示吗
Java中使用基于字符的缓冲流读文件、写文件需
昆山51BPO是骗人的吗?
冒充解释为假冒和充当违反了罪刑法定原则吗?
为什么会出现windows update当前无法检查更新
西兰花炒虾仁怎么做 西兰花虾仁的做法
夏商周,春秋战国秦两汉!后面君何以接之?
以下哪一种色彩是冷色调 a,紫色 b,橙色 c,
他神色是什么地在烈士碑前献了一束花?可埴庄
缝制产品采购会哪里有
归阳镇的简介
在亚一金店买的铂金项链想换款,可发票丢了,怎
巢湖离安庆明堂山多远
华根汽车修理行这个地址在什么地方,我要处理
推荐资讯
大同大药房这个地址在什么地方,我要处理点事
有没有朋友试过交往不到一个月发现不合适
什么是恒星?恒星是固定不动的吗
正己烷和水能不能用分液漏斗分离
伦那路在哪里啊,我有事要去这个地方
EXO的边伯贤是下垂眼还是三角眼?
无线路由器二次路由怎么设置
求山东做大脚骨手术的权威医院
那些石材含二氧化硅超过百分之七十以上
我初中没上完,去读中专了,现在马上毕业,想
起亚kx5是韩国技术中国造吗:
油性皮肤用什么气垫bb好一点?用哪个牌子的可
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?