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

Java-如何添加+;在不停止程序的情况下,每x秒1到变量?,java,Java,我是一名新程序员,正在用java制作一个控制台/文本策略游戏 我的程序就像你在while(true)switch case中一样工作,如果你按1你收集木材,2你收集石头,我想让你的木材、石头、食物自动收集,我不知道如何制作,欢迎任何帮助 简化代码如下所示 while (true) { Scanner in = new Scanner(System.in); String volbačlověk = in.nextLine(); switch

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

我的程序就像你在while(true)switch case中一样工作,如果你按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;
         }
     }
基本上我想做的是让案例1,2,3每x秒自动完成一次,所以它的工作原理就像你自动收集那些材料,在切换案例中有建筑选项

另外,由于我是一名编程新手,请具体说明,我不会为我必须以某种方式学习而感到羞愧。

您可以使用该课程自动增加您的资源:

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

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

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

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

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

好的,所以您希望每隔x秒从交换机运行一些随机代码,而不提供输入,对吗

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

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

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

好的,所以你想每x秒从开关运行一些随机代码,而不提供输入,对吗

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

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

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

你不需要先进的东西来做这件事。 如果您有:

  • 一个时间点t0的资源量(木材、石头等)
  • 每种资源的生长因子,即每单位时间内的木材数量
  • 到t0的实际时差

  • 然后,您就可以在该时间点计算资源。

    您不需要高级的东西来完成这项工作。 如果您有:

  • 一个时间点t0的资源量(木材、石头等)
  • 每种资源的生长因子,即每单位时间内的木材数量
  • 到t0的实际时差


  • 然后您可以计算该时间点的资源。

    它将自动收集什么?顺便说一句,
    wood=wood+1
    通常写为
    wood++
    。由于这将每秒执行一次,您打算如何停止无限循环???我建议使用变量来存储玩家收集的每种商品的数量;然后编写方法,根据“自动收集”开始以来经过的时间量计算商品的总数量,并添加“手动收集”的数量。实际上,我使用了比wood++更难的公式,但对其进行了简化,以明确我的代码是什么样的。它将自动收集什么?顺便说一句,
    wood=wood+1
    通常写为
    wood++
    。由于这将每秒执行一次,您打算如何停止无限循环???我建议使用变量来存储玩家收集的每种商品的数量;然后编写基于“自动收集”开始以来经过的时间量计算商品总量的方法,并添加“手动收集”实际上,我使用了比wood++更难的公式,但对其进行了简化,以明确我的代码是什么样的。
    Timer
    不再是真正值得推荐的方法-已经不是很长时间了。使用
    ScheduleExecutorService
    。我尝试了这个,在论坛上的某个地方找到了它,但我的问题是我不能在这个区域放置我的变量,比如木头、石头,或者可能我把这个计时器放在了代码的不好的部分?
    timer
    不再是被推荐的方法了-已经不是很长时间了。使用
    ScheduleExecutorService
    。我试过这个,在论坛的某个地方找到了它,但我的问题是我不能把我的变量,比如木头、石头放在这个区域,或者我可能把这个计时器放在了代码的不好的部分?事实上,因为他是一个新程序员,如果我谈论工人或更多线程,可能会对他很苛刻。谢谢,我已经知道如何使用睡眠,但这不是我想要的解决方案。事实上,由于他是一名新程序员,如果我谈论工人或更多线程,可能会对他造成伤害。谢谢,我已经知道如何使用睡眠,但这不是我想要的解决方案。你能告诉我更多关于这一点吗?因为我没有真正的编程经验,包括time@V假设木材每单位生长2个单位。假设某个时间有3个单位的木材。5个时间单位之后是多少个单位?当然是13。你不需要每隔一秒增加“wood”变量就可以知道这一点。你能告诉我更多关于这一点吗?因为我没有真正的编程经验,包括time@V假设木材每单位生长2个单位。假设某个时间有3个单位的木材。5个时间单位之后是多少个单位?当然是13。您不需要每隔一秒增加“wood”变量就知道这一点。