gpt4 book ai didi

php - 矩阵组合逻辑

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:41:58 24 4
gpt4 key购买 nike

注意:**请阅读所有其他相关问题:**

这是我第一次和第二次尝试问这个问题:

问题是:

  • 我有几个(比如 20 个) bool 验证(true/false)
  • 所有 bool 验证作为一个整体也有一个验证结果

我正在尝试找到测试所有验证以及验证结果的最佳解决方案。我正在寻找一个矩阵来保存所有可能的组合,但这可能有点矫枉过正。

这是一个例子(1 - 20):

  • test_1 = 有 30 次击杀
  • test_2 = 已找到 map 1
  • test_3 = 已掌握 1 级
  • test_4 = 已达到 Grunt 状态
  • test_5 = 有突击武器
  • test_6 = 有刀
  • test_7 = 有手榴弹
  • test_x = 等等...

所以当玩家将所有这些验证都为真时,我就可以给出关卡结果

  • 如果 test_1、test_2、test_3(三者的任意组合):level = green

所有的组合都是(15):

  • 测试_1
  • 测试_2
  • test_3
  • 测试_1、测试_2
  • 测试_1、测试_3
  • test_2、test_1(重复的可以跳过)
  • 测试_2、测试_3
  • test_3、test_1(重复的可以跳过)
  • test_3、test_2(重复的可以跳过)
  • 测试_1、测试_2、测试_3
  • test_1、test_3、test_2(重复的可以跳过)
  • test_2、test_1、test_3(重复的可以跳过)
  • test_2、test_3、test_1(重复的可以跳过)
  • test_3、test_1、test_2(重复的可以跳过)
  • test_3、test_2、test_1(重复的可以跳过)

所以独特的组合是(7 而不是 15):

  • 测试_1
  • 测试_2
  • test_3
  • 测试_1、测试_2
  • 测试_1、测试_3
  • 测试_2、测试_3
  • 测试_1、测试_2、测试_3

现在,我正在努力寻找最佳解决方案,为所有 20 个验证找到独特的组合,并从该矩阵中得出水平验证。

更新:

此外,我只需要找到 TRUE 组合,这样您就可以像这样阅读 Unique 组合:

  • 测试_1
  • 测试_2
  • test_3
  • 测试_1、测试_2
  • 测试_1、测试_3
  • 测试_2、测试_3
  • 测试_1、测试_2、测试_3

验证测试的 bool 值结果

  • 正确、错误、错误
  • 错误,正确,错误
  • 错误,错误,正确
  • 对,对,错
  • 正确、错误、正确
  • 错误、正确、正确
  • 对,对,对

所以这些组合中的任何一个都是绿色级别。

我还需要知道测试验证的顺序以及用于比较级别分配的矩阵顺序。所以对于绿色级别,我只需要测试 1、2 和 3 的验证结果组合矩阵。所以我可以忽略测试 4 - 20

更新#2:

我知道这看起来像一个简单的 OR 条件,但我想取出组合逻辑以将级别设置为矩阵。我可以使用组合矩阵来确定级别逻辑,而无需编写额外的代码或修改代码本身中的当前逻辑。我只想比较一组给定测试的验证结果,并为这些结果分配一个级别。验证组合的不同排列会导致不同的级别分配。

我知道我可以在代码本身中添加组合逻辑,但由于此逻辑看起来非常不稳定,因此我认为这可能会提供更灵活的解决方案。有什么建议吗?

最佳答案

(为清楚起见,删除了我之前的两个答案)

在你最后一次编辑之后,我不想直接回答,而是首先要确保 100% 理解你想要的“level detection algorithm”。

如果我理解得很好,您想定义/维护一个简单的配置结构来告诉哪些测试给出哪个级别。

例如使用关联数组:

array(
'green' => array('test1', 'test2', 'test3'),
'orange' => array('test2', 'test3', 'test5')
...
);

含义:如果满足列表中的一项或多项测试,则将该级别(数组键)分配给玩家。这样的逻辑可以很容易地覆盖相当多的组合,并且可以避免处理一个巨大的矩阵。

也许你想扩展逻辑来告诉,例如,测试列表中至少有 N 个测试是满足的。

array(
'green' => array(
'tests' => array('test1', 'test2', 'test3'),
'nb_required' => 2
),
...
);

这是你想要的吗?

顺便说一句,你为什么不使用经典的 XP/升级系统? :-p

关于php - 矩阵组合逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13531987/

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