Java - 如何在不停止程序的情况下每隔x秒向变量添加+ 1?

时间:2016-05-07 09:59:44

标签: java

我是一名新程序员,我正在用java制作一个控制台/文本策略游戏。

我的程序就像你在同时(真正的)开关盒一样工作,你有选择如果你按1收集木材,2用于石头和那样的,我想让你的木头,石头,食物自动聚集我不知道如何让它欢迎任何帮助,

简化代码看起来像这样

  while (true) {
        Scanner in = new Scanner(System.in);
        String volbačlověk = in.nextLine();

        switch (volbačlověk) {
            case "1":
                wood = wood + 1;
                break;
            case "2":
                stone = stone + 1;
                break;
            case "3":
                food = food + 1;
                break;
         }
     }

基本上我想做的是每隔x秒自动完成情况1,2,3,所以它就像你自动收集这些材料一样,在交换机情况下有建筑选项。

因为我是编程的新手,所以请具体我不会感到羞耻我必须以某种方式学习它。

3 个答案:

答案 0 :(得分:2)

您可以使用Timer类来自动增加资源:

    Timer timer = new Timer();
    timer.schedule(new TimerTask() {

        @Override
        public void run() {
            // Increase value here...
        }
    }, 0, 1000); // 1000 = 1 Sek.

另见: How to use Timer class to call a method, do something, reset timer, repeat?

答案 1 :(得分:1)

你不需要高级的东西来做这件事。 如果你有这个就足够了:

  1. 某个时间点的资源(木材,石头等)数量
  2. 每个资源的增长因素,即每个时间单位的木材数量。
  3. 到t0的实际时差
  4. 然后您可以计算该时间点的资源。

答案 2 :(得分:0)

好的,所以你想每隔x秒从交换机运行一些随机代码而不给出输入,对吗?

好吧,因为你是一名新程序员,所以在你的代码中, 你可以通过生成一些随机数直到你的开关范围来做到这一点,

然后让你的程序的线程休眠一段时间,比如:

while(true){
   Random random = new Random();
   switch(random.nextInt(3)){
     case 1:
          ////////blah blah
     break;
     ......... more alike
   }
   Thread.sleep(x seconds here);
}