首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java多读HiLo游戏

Java多读HiLo游戏
EN

Stack Overflow用户
提问于 2014-09-27 16:52:32
回答 1查看 178关注 0票数 0

对于我的CS类,我必须使用多线程编写一个HiLo游戏。我是全新的多线程,不知道如何最好地实现它。下面的程序可以工作,但我想知道是否有更好的方法来做它。当它运行时,用户将输入一个int,这是他们必须猜出正确数字的时间。如果计时器用完了,游戏就会结束。我不应该使用Timer对象,而是使用System.currentTimeMillis()。

代码语言:javascript
复制
import java.util.Random;
import java.util.Scanner;

class Game implements Runnable {
    private static long time;
    private long timer;
    private static long gameTime;

    public Game(int n){
        gameTime=n;
    }

    public void run() {
        time=System.currentTimeMillis();
        while(true){
            timer=(System.currentTimeMillis()-time)/1000;
            if(timer>=gameTime){
                System.out.println("Oops! Time is up - try again.");
                break;
            }
        }
    }
}

public class Hilo {

    public static void main(String[] args) {
        if (args.length!=1){
            System.err.println("Must enter time");
        }
        Random rand = new Random();
        int max=100;
        int min=1;
        int number=rand.nextInt((max-min)+1)+min;
        int gameTime=Integer.parseInt(args[0]);
        System.out.println("Welcome to HiLo!");
        System.out.println("You have "+gameTime+" seconds to guess a number between 1 and 100.");
        Thread clock1 = new Thread(new Game(gameTime));
        clock1.start();

        while(clock1.isAlive()==true){
            System.out.println(">");
            Scanner sc = new Scanner(System.in);
            int input = sc.nextInt();

            if(clock1.isAlive()==true&&input==number){
                System.out.println("You Win!");
                break;
            }else if(clock1.isAlive()==true&&input<number){
                System.out.println("Higher!");
            }else if(clock1.isAlive()==true&&input>number){
                System.out.println("Lower!");
            }   
        }
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-27 21:23:17

您可以使用一个线程,该线程休眠T秒,然后退出调用System.exit()。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26076981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档