gpt4 book ai didi

java - 如何让 for 循环并排运行?

转载 作者:搜寻专家 更新时间:2023-11-01 01:01:00 25 4
gpt4 key购买 nike

我一直在做一个幼稚的小程序:屏幕上有一堆不同颜色和大小的小圆圈。当一个较大的圆遇到一个较小的圆时,它会吃掉较小的圆,当一个圆吃掉足够多的其他圆时,它会繁殖。这有点整洁!

但是,我实现它的方式是,检测附近的圆圈并检查它们是否可食用的过程是通过一个 for 循环完成的,循环遍历整个活生生的圆圈……随着人口趋向,这需要越来越长的时间在它开始下降之前飙升至 3000。这个过程不会减慢我的电脑速度,我可以去玩 war 黎明或其他任何东西并且没有任何减速:它只是检查每个圆圈以查看它是否与其他每个圆圈发生碰撞的过程.. .

所以我想到的是,我可以尝试将应用程序窗口分成四个象限,并让象限中的圆圈同时进行检查,因为它们几乎没有机会相互干扰:或者其他什么达到这个效果!

那么我的问题是:如何创建并排运行的 for 循环?例如,在 Java 中。

最佳答案

你这里的问题其实不用线程也能解决。

您需要的是空间数据结构。四叉树是最好的,或者如果球体移动的领域是固定的(我假设是)你可以使用一个简单的网格。继承人的想法。

将显示区域划分为正方形网格,其中每个单元格至少与最大圆圈一样大。对于每个单元格,保留其中心位于该单元格中的所有圆的列表(最好是链表)。然后在碰撞检测步骤中遍历每个单元格并检查该单元格中的每个圆圈与该单元格和周围单元格中的所有其他圆圈。

从技术上讲,您不必检查每个单元格周围的所有单元格,因为其中一些单元格可能已经被检查过。

您可以将此技术与多线程技术相结合以获得更好的性能。

关于java - 如何让 for 循环并排运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/274462/

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