将 PIN 映射到字符串数组和从字符串数组映射

胜利者

我正在开发一款寻宝/密室逃脱游戏,玩家必须解决 4 个真实世界的谜题,这些谜题都给他们一个词。当他们完成所有的谜题后,他们应该前往一个小型的 web 应用程序,在那里他们可以输入他们找到的单词:然后应用程序将这些单词转换为最终的秘密——在这种情况下,4 位数字代码是一个挂锁宝物。

现在,如果有效单词列表是静态的,那会很容易,但它是一个交互式系统,其中谜题的输出在玩家之间不断变化。我试图想出一个简单的算法,这样我们就可以PIN编码解码成单词数组,以便可以在不同游戏中更改它们,只有设置代码的人才知道 PIN,然后更改每个游戏的答案.

这些是约束:

  • 该应用程序不需要知道代码是对还是错。它只有一个编码功能(这里是一个挂锁代码,给我 4 个字)和一个解码功能(这里是 4 个字,给我一个匹配的挂锁代码)。因此,玩家可以输入任何单词并只收到一个代码作为回报,但不能保证它是正确的。
  • 理想情况下,单词的顺序无关紧要(鉴于输入“绿草传奇派对”输出与“绿草派对传奇”相同的 PIN),但这听起来可能会使事情复杂化很多,所以我很高兴能够做到所以代码需要按一定的顺序输入
  • 这是一个游戏,这里不需要加密安全
  • 我已经有一组秘密词了,所以基本上只需要从一个总是相同的基数中找到一个由 4 个数字组成的数组。

例如

Encode:
Input: 8370, output [“danger”, “writer”, “negative”, “origin”]   
Input: 8375, output [“crab”, “junior”, “spider”, “pillar”]
Input: 2455, output [“party”, “fish”, “cookie”, “cactus”]


Decode:
Input: [“danger”, “writer”, “negative”, “origin”], output 8370
Input: [“writer”, “danger”, “negative”, “origin”], output 8370
Input: [“party”, “fish”, “cookie”, “cactus”], output 2455
Input [“pillar”, “crab”, “spider”, “junior”], output: 8375

我不一定要寻找这个问题的完整解决方案,但我真的很想知道在哪里寻找——算法、库、现有工作。找到已经这样做的应用程序或现有算法的关键字,我一无所获。我尝试了一些选项(通过将 PIN 添加为索引来循环遍历一组单词),但总是被困在如何解码它上。

尼尔·H。

由于您的数字代码由四位数字组成,因此只有 10,000 种可能性。您可以下载一本英语词典,随机生成 10,000 个与 10,000 个可能的数字代码对应的四个单词的组合。然后创建两个 Python 词典,一个将数字代码映射到英语短语,另一个将英语短语映射到数字代码。请注意,由于 Python 字典的键必须是不可变类型,因此您不能将单词列表定义为键。您将不得不使用其他一些结构,例如frozenset 或自定义类,但这主要是技术性的。如果您希望编码-解码过程与顺序无关,这不是问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Ruby:将字符串数组映射到数组数组

将字符串数组映射到单个数组

将字符串数组映射到特定对象数组

使用AutoMapper将字符串数组映射到对象

将字典映射到数组到字符串

Python-将字符串映射到布尔数组

如何将字符串数组映射到新的字符串数组?

将字符串映射到关系

Angular:将字符串数组映射到 http get 调用中的枚举值数组

根据其他数组值将字符串映射到数组的最佳方法

Dataweave-将多个字符串数组映射到单个数组

如何 Java 将多个条件从 int 数组映射到字符串数组

如何使用 std::map 将字符串和字符对映射到字符串?

将包含字符串数组的Gremlin结果映射到包含简单字符串属性的C#类

一致地将字符串映射到数组索引(哈希函数)

将字符串数组映射到对象键并获取值

使用Jackson将JSON字符串数组映射到List <String>

将 object.keys 从对象数组映射到字符串

使用Object.keys将数组错误映射到字符串(javascript)

将字符串数组映射到 JavaScript 中的 json 对象

将字符串数组映射到React-Native / ES6中的组件状态

Kotlin将&减少字符串数组映射到Map <String,Any!>

将映射值转换为字符串数组

将字符串数组映射为对象属性

将字符串的NumPy数组映射为整数

将字符串字符映射到向量

使用连接和映射将数组数组打印为字符串

使用可配置逻辑将字符串数组映射到另一个字符串数组

将字符串映射到班级成员