algorithm - 需要 block 破坏算法(类似于炸弹人)

标签 algorithm

目前,我只使用两个位向量,一个用于红色 block ,一个用于蓝色 block 。这些 block 以 10x10 的网格堆叠在另一个上面。当炸弹在垂直方向上只有红色方 block 发生爆炸时,我只做简单的数学运算并检查位向量是否命中,所以最糟糕的是我必须处理 10 次检查和快速查找。

现在,我想做一个炸弹可以摧毁从起始方 block 开始的所有相连的红色方 block (相连意味着垂直、水平或对角线彼此)。

解决这个问题的最佳途径是什么?分布是随机的,但通常是 40/60。正如我所说,我必须处理的事情是位向量、 block ID 以及它们基于接口(interface)的 block 类型。

是否最好在单独的线程上每帧检查 1 或 2 个 block 的外环以划分工作(因此每帧检查 20 次)还是有更优雅的方法来执行此操作?

最佳答案

Now, I want to make it so a bomb can destroy all connected red blocks from the start block

听起来像是 flood fill algorithm 的工作.

The distribution is random but usually something like 40/60.

老实说,我不明白你的意思。

至于实现细节,它们会因语言而异。

关于algorithm - 需要 block 破坏算法(类似于炸弹人),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6635248/

相关文章:

algorithm - 正确排列括号的方法数

javascript - 查找并验证二维矩阵的给定源节点的直接邻居?

algorithm - NP-Complete 和图上的一些决策问题?

c - 查找二叉树中最左边的节点

algorithm - 用并行算法计算海龟的最终位置

algorithm - 如何生成排列?

algorithm - 将给定数字表示为四个平方和

c++ - 给定一个单词,通过在它们之间添加空格来形成一个有意义的单词

c++ - 用于碰撞检测的 O(n^log n) 算法

algorithm - haskell 中帕斯卡三角形的变体 - 惰性评估问题