【发布时间】:2014-02-27 16:55:41
【问题描述】:
我正在构建一个游戏,我需要有关如何在此处继续的帮助。这个函数可能会经常被调用,直到最近阶段的每一分钟。我不能让它成为瓶颈并放慢速度,我能看到它的唯一方法是暴力破解它,我很确定它可以以更好的方式完成。
我有(最多)16 件物品。
我必须把它们放在一个 4x4 的网格中
每个项目都有 16 分(0 到 3k),具体取决于它们在网格中的位置。
编辑没有算法,只有简单的属性:
item A : position (0,0) = 2 point
item A : position (0,1) = 123 point
item A : position (0,2) = 9 point
...
item B : position (0,0) = 0 point
item B : position (0,1) = 0 point
item B : position (0,2) = 1224 point
....
If you set item A in position (0,0) and end your turn, your total socre is 2.
IF you set item A in posistion(0,0) + item B in position (0,2) than end your turn, your total score is 1226
每 16 项等。
我可以获取每个项目的每个可能位置的数组,并检查每个结果的总分......但是构建一个包含 16 的数组! int 每分钟对我来说似乎不是一种非常有效的方法。
如何计算可能的最佳结果(总分)?
编辑:似乎得分似乎很重要(但我看不到如何):
Public Class Item
Public Property Objects As List(Of BaseObject)
Public Function Score(position) As Integer
Dim total As Integer = 0
For Each o In baseObject
total += o.value(position)
Next
Return total
End Function
End Class
Public Class RedObject
inherits BaseObject
property value as list(of integer)
end Class
【问题讨论】:
-
举一个更具体的例子。 IE。你输入的数字和你试图达到的最佳结果。您可以尝试 3x3,只是为了展示这个概念 - 这可能是蛮力的。
-
我从 4x4 网格开始。它最终会增加大小。当我到 8 点!或 9!暴力破解确实是个坏主意。
-
忘记网格大小:你还没有解释评分算法;请这样做,因为这几乎是我们可以提供帮助的唯一方法。
-
你知道局部最大值是否是全局最大值吗?即你的优化函数是凸的吗?
-
@lev 我什至不知道凸函数是什么意思
标签: c# vb.net artificial-intelligence