gpt4 book ai didi

algorithm - 如何使用 Jokers 验证 Rummikub 组合

转载 作者:行者123 更新时间:2023-12-04 11:53:32 28 4
gpt4 key购买 nike

在 Rummikub 游戏中,对于那些不知道的人来说,你有 4 种颜色的瓷砖,上面有 13 个不同的数字(所以 4 x 13 = 52 个独特的瓷砖),你必须用它们来分组。有两种类型的组:

  • 不同的颜色,相同的数字(例如 R1-B1-G1)
  • 相同的颜色,数字序列(例如 G6-G7-G8)

  • 我正在编写代码,它接受一个瓷砖列表并检查它是否是一个有效的组合。到目前为止,它有效并且非常简单。

    当我们引入 Joker 瓷砖时会变得很困难。您可以将它们用作任何拼贴来完成组合(例如 G6-R6-J ),也可以使用多个拼贴(例如 R4-R5-J-J-R8 )。

    我想我会通过两个步骤来验证与 Jokers 的组合:
  • 用他们所代表的瓷砖替换所有 clown 。
  • 使用现有代码验证“标准化”组(除非第 1 步抛出错误,因为它已经看到组合无效)。

  • 现在,如何做第 1 步?如果每组只允许一个 clown ,我认为这相当简单:
  • 如果与 clown 相邻的瓷砖颜色相同并且右侧的比左侧高2,则替换为中间的数字
  • 如果相邻的瓷砖具有相同的数量但不同的颜色,请替换为尚未出现的颜色。
  • 如果 clown 在开头或结尾,则相同但稍作修改

  • 不幸的是,允许多个 Joker,这使得这有点复杂,我一直在思考如何解决这个问题。

    最佳答案

    如果您坚持将第 1 步作为您做的第一件事,那么您就是在给自己制造麻烦。从这个角度解决问题在计算上是低效的。你最终会用这种方法做的是尝试 clown 的所有替身组合。
    这是一个坏主意。

    这是一种可以毫不费力地工作的替代方法:

  • 该组是否包含 0 或 1 个非 clown ,并且该组是否包含至少三件然后成功。
  • 非 clown 的所有颜色都具有相同的颜色,则成功。
  • 是否所有棋子都像 (1, 2, clown , 4) 一样,其中所有 clown 都会自动取比前一棋子高 1 的值。如果是这样,那么成功。
  • 如果以上都不是真的,那么失败。

  • 依次执行所有这些检查,您会发现一组碎片是否为有效组。

    对于此中的第 3 步,您必须考虑某些序列可能是相反的,例如 (joker, 3, 2, 1)。
    要检测此类情况,您可以快速扫描非 clown ,看看它们是增加还是减少,然后将其考虑在内( clown 的值将比前一个小一)。

    请注意,只有在第 2 步中颜色才有意义,只有在第 3 步中数字才有意义。

    关于algorithm - 如何使用 Jokers 验证 Rummikub 组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3707314/

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