Questions tagged «algorithm»

算法用于计算,数据处理和自动推理。更准确地说,算法是一种有效方法,表示为用于计算函数的定义明确的指令的有限列表。

4
是否有一种算法可以检测2D地图上的“大陆”?
在此地图上,“大陆”是指可以在四个基本方向(北,南,东,西-而不是对角线)上连接到地图中心的所有土地。 我想发现大陆并填补其中的空白。我想到了三件事: 如果可以使用路径查找算法将每个非水(暗单元)单元连接到地图中心,则进行搜索。太贵了!但这可能适用于这些岛屿。 大陆上满是一桶绿色的油漆。每个孔都被油漆包围着...现在呢?如果我检查大陆内部的每个水位是否相邻,我将删除海岸线上显示的一些半岛和其他地理特征。 某种边缘检测可以弄清楚大陆。保留里面的东西,如果是水则填满,除去外面的东西。复杂? 也许一些有游戏经验的开发人员可以帮我解决这个问题,也许可以给我一些已知算法或技术的名称?
28 algorithm  maps 

2
有没有办法以程序方式产生一个世界的历史?
我发现这里的图表代表了一个人在一个虚构的世界中1800年的文化历史,对此我颇有兴趣。 就世界设计而言,这种东西似乎在游戏开发中具有强大的应用。 看起来他是手工绘制的。我感兴趣的是查看是否有一种以编程方式创建这种图表的方法。 如果您负责从随机值生成上述样式的图表,您将如何处理?您是否会考虑任何特定的数据结构或算法?

4
程序化河流或道路生成,可实现无限地形
我应该说的是道路,而不是道路,因为我认为这更像中世纪。另外,不要寻找现实主义。我正在寻找的答案将是适合我描述的模型,而不是现实。 我正在寻找一种以弯曲的方式生成程序性道路/河流的方法,但我想针对无限的地形类型系统来这样做。就像佩林噪声如何产生斑点一样,我想生成随机长度的线段(可能是无限长)。 我知道类似此处找到建议答案的策略,但是它依赖于指定的起点和终点才能工作,但我没有指定的起点和终点。我希望能够简单地使用任意坐标调用函数,并让其返回特定坐标是否为河流/道路的一部分。 我不想要求预先生成地形。其中包括一个高度图(例如用于降雨模拟或类似方法)。我也不想要求起点/终点。 是否有这样的算法或对噪声算法进行了调整,有人可能会知道这些算法来完成我要解释的事情? 到目前为止,如果我使用的名称正确,则最接近的是多脊形分形。我只是获取噪声值的绝对值(假设将其缩放为-1到+1)并设置一个阈值。我的主要问题是,线条重叠的方式太频繁了,大多是圆形的,有时会收敛形成大湖,这些湖泊整洁但并不理想,而且线条的厚度经常变化太大。 这是我到目前为止在2D模式下的图片,但是以很高的频率显示了更多细节:

4
简单的噪音产生
我正在寻找产生如下噪声: (图片由了解Perlin噪声提供) 我基本上是在寻找带有许多小“波纹”的噪音。以下是不可取的: 有没有简单的方法可以做到这一点?我已经看了一个星期的perlin和simplex,似乎无法在JavaScript中使用它,或者当我这样做时,我没有正确的参数来生成此类图像,或者这太令人费解了慢。 我了解我发布的3张图像可能可以通过相同的算法来实现,但比例不同,但是我不需要那种算法。我只需要一个非常简单的算法即可理想地实现类似第一张图片中的效果。也许某种模糊可以胜任,但我无法取得结果。 我正在用JavaScript开发此工具,但是任何类型的代码,甚至是简单而详细的说明都可以使用。

1
生成地图的方法
我正在为小型游戏创建一个简单的,“随机”生成的地图。 该游戏包括一个自上而下的世界视图,包括陆地和海洋区域。例如,以一个简单的世界轮廓图为例。 我能想到的最接近的东西是旧的SimCity游戏或Civ系列的关卡生成器,您可以在其中设置相对于多个岛屿的单大陆偏好。 哪种算法合适?地图将需要适度缩放,因此我可以拥有“整个世界”视图以及局部放大的局部视图,但是我想稍后再进行分类。 最初,我不需要任何高度概念,只需两个区域-陆地和海洋,尽管我可能会在以后进行扩展。
27 algorithm 



2
基于四叉树与网格的碰撞检测
我正在制作一个4人合作R型游戏,并且即将实现碰撞检测代码。我已经阅读了许多有关如何处理碰撞检测的文章和内容,但是我很难弄清楚该如何处理。似乎四叉树是最常用的方法,但是在某些资源中,他们提到了基于网格的解决方案。对于以前的游戏中使用网格进行检测的情况,我对此感到满意,但是它实际上比四叉树好吗?我不确定哪个提供了最佳性能,并且我还运行了一个基准测试,两种解决方案之间没有太大区别。 这个比那个好吗 ?或更优雅?我真的不确定应该使用哪一个。 欢迎任何建议。谢谢。

3
团队如何防止覆盖源文件中的工作?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Game Development Stack Exchange 的主题。 4年前关闭。 在我看来,有一种可能性,例如由多个人同时处理游戏引擎时,如何防止覆盖? 假设开发者一在工作,Audio.cpp而开发者二也在工作Audio.cpp,这在大型团队中通常如何进行管理以应对覆盖?(换句话说,要阻止开发人员2打开文件,直到开发人员1完成)
26 project-management  version-control  teamwork  java  2d  collision-detection  vector  collision-resolution  unity  directx  directx11  directx10  xna  ios  monogame  windows-phone-8  xamarin  design-patterns  oop  xna  collision-detection  collision-resolution  bounding-boxes  rotation  collision-detection  mathematics  javascript  algorithm  separating-axis-theorem  xna  2d  monogame  image  xna  directx  graphics  performance  opengl  2d  3d  c++  directx11  unity  c#  scale  c#  xna  collision-detection  collision-resolution  leaderboards  scoring  glsl  srgb  tilemap  three.js  tiled  unity  physics  xml  dialog-tree  xna  c#  .net  opengl  lwjgl  vbo  physics  graphics  procedural-generation  simulations  water  opengl  java  textures  lwjgl  frame-buffer  unity  unity  2d  collision-detection  collision-resolution  trigonometry  java  android  libgdx  xna  c#  frame-rate  c++  unreal-4  procedural-generation  java  graphics  lwjgl  slick  c++  software-engineering 

2
如何产生闪电效果?
有生成雷电的算法吗? 我想要一种算法,该算法生成指定螺栓将在何处着陆的线段或点对象的列表。该方法将需要一个起点参数以及一个端点。螺栓应具有随机的分支,并以随机的间隔曲折弯曲。结果将是随机的闪电效果,看起来像这样 (来源:wikimedia.org) 如果有人知道可以使用的算法,将不胜感激!

2
与伪随机相比,我如何产生“令人愉快”的随机?
我正在制作一款游戏,该游戏依次展示了许多不同类型的难题。我为每个谜题选择一个伪随机数。对于每个难题,都有很多变化。我选择了另一个伪随机数的变体。等等。 问题是,尽管这会产生接近真实的随机性,但这并不是玩家真正想要的。玩家通常希望自己认为是什么,并且将其标识为随机的,但前提是它不倾向于重复拼图。因此,并不是真正随机的。只是变幻莫测。 考虑一下,我可以想像出一些拙劣的方法。例如,在选择新选项时,暂时从可能性集中消除最近的N个选择。或为每个选择分配相等的概率,将选择时的选择概率降低为零,然后随着每个选择缓慢地增加所有概率。 我认为有一个确定的方法可以执行此操作,但是我只是不知道术语,所以我找不到它。有人知道吗 还是有人以令人愉悦的方式解决了这个问题?
26 algorithm  random 


2
以视觉上吸引人且直观的方式传播标签的算法
简洁版本 是否存在一种设计模式,用于以不重叠的方式分配车辆标签,并使其尽可能靠近其所指的车辆?如果没有,我建议的任何一种方法可行吗?您将如何自己实施? 扩大的视野 在我写的游戏中,我对空中载具有鸟瞰图。在每辆车旁边,我还带有一个小标签,上面标有有关该车的关键数据。这是一个实际的屏幕截图: 现在,由于车辆可能在不同的高度飞行,它们的图标可能会重叠。但是,我永远都不要让它们的标签重叠(或者,车辆“ A”的标签与车辆“ B”的图标重叠)。 目前,我可以检测到小精灵之间的碰撞,并且只需沿与否则重叠的小精灵相反的方向推开有问题的标签即可。这在大多数情况下都可行,但是当空域变得拥挤时,即使有其他“更智能”的选择,标签也可能被推离其飞行器很远。例如我得到: B - label A -----------label C - label 在哪个地方会更好(=标签离车辆更近): B - label label - A C - label 编辑:还必须考虑到,在重叠车辆的情况下,可能还有其他配置,其中车辆的标签可能会重叠(例如ASCII艺术示例显示了三辆非常接近的车辆,其中的标签A会与的图标重叠B和C)。 我有两个关于如何改善当前状况的想法,但是在花时间实施它们之前,我曾想过向社区征询建议(毕竟,这似乎是一个“常见的问题”,可能存在一种设计模式)。 对于它的价值,这是我在想的两个想法: 标签空间的插槽化 在这种情况下,我会将所有屏幕划分为标签的“插槽”。然后,每辆车始终将其标签放置在最近的空车上(空=该位置没有其他精灵。 螺旋搜索 从屏幕上车辆的位置开始,我将尝试将标签以递增的角度放置,然后以递增的半径放置,直到找到不重叠的位置。在以下方面: try 0°, 10px try 10°, 10px try 20°, 10px ... try 350°, 10px try 0°, 20px try …

5
如何在2D平铺游戏中快速计算视野?
我有一个图块矩阵,在某些图块上有对象。我想计算哪些图块对播放器可见,而哪些则不可见,所以我需要非常有效地做到这一点(因此即使我有一个大矩阵(100x100)和很多对象,它也可以足够快地进行计算)。 我尝试使用Bresenham的line算法来做到这一点,但是速度很慢。另外,它给了我一些错误: ----XXX- ----X**- ----XXX- -@------ -@------ -@------ ----XXX- ----X**- ----XXX- (raw version) (Besenham) (correct, since tunnel walls are still visible at distance) (@ is the player, X is obstacle, * is invisible, - is visible) 我敢肯定这是可以做到的-毕竟,我们有NetHack,Zangband,他们都以某种方式解决了这个问题:) 您可以为此推荐什么算法? 对于我的需求,我将定义可见这样的:瓷砖是可见的,当在瓷砖的至少一部分(例如角落)可以连接到播放器瓷砖的中心用一条直线,其不相交任何的障碍。

11
您最喜欢的游戏特定编码宝石是什么?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我将从约翰·卡马克(John Carmack)的《雷神之锤3》中的快速逆平方根开始: float Q_rsqrt(float number) { long i; float x2, y; const float threehalfs = 1.5F; x2 = number * 0.5F; y = number; i = * ( long * ) &y; i = 0x5f3759df - ( i >> 1 ); y = * ( float * ) …
24 algorithm 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.