gpt4 book ai didi

java - parking 模拟无限循环危机

转载 作者:行者123 更新时间:2023-11-30 04:23:15 26 4
gpt4 key购买 nike

我是一名计算机科学专业的初学者,我们被要求完成一个项目,该项目将随机生成的汽车对象移动到城市 map 网格上随机生成的 parking 位。我为按钮、文本字段和文本区域开发了一个 GUI。一切都按要求进行,除了在动画结束时,当所有汽车都到达 parking 位时,我需要在 JTextArea 中显示分析。我的按钮设置正确,我将向您展示代码在下面发生的位置:

    else if (e.getSource() == start) {

setAnimate(true);

if(simulator.simulationFinished()) {
createAnalytics();
}

}

所以在这里我在开始动画的按钮“开始”上实现了一个 Action 监听器。目前:

  1. 目前,动画开始播放,所有车辆均按预期行驶至 parking 位。
  2. 它显示动画开始之前的分析结果(分析结果包括:汽车 ID、移动次数、尝试的平均点数、平均行驶距离)
  3. 然后动画就会结束。
  4. 如果我再次按下开始按钮,它将显示正确的分析。

我知道,为了让程序在程序完成时显示正确的分析,我很可能需要一个 while 循环,但是我无法想象出任何不会创建无限循环并需要我的东西通过控制台手动终止程序。

    while(!simulator.simulationFinished()) {
if(simulator.simulationFinished() == true)break; {
createAnalytics();
}
}

我还在现有的所有循环的数百个其他变体中尝试过这一点。按照我的逻辑,我需要 while 循环,以便它不断检查模拟是否完成,以便我可以执行生成分析的方法,但如果不给 while 循环做一些事情,它就会继续永远和崩溃。我很茫然,任何帮助将不胜感激。谢谢。

最佳答案

首先:不,你不一定需要 while 循环。您可以使用 observer pattern相反(例如),一旦模拟完成,您的对象就会收到通知。至于你的问题: while 内的 if 显然是多余的(== true 也是如此)。真正的问题似乎是 simulator.simulationFinished() never 返回 true。您能否发布该函数的代码和代码(以及直接影响其返回值的任何代码)?

关于java - parking 模拟无限循环危机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16481540/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com