1

所以我正在构建一个剪刀石头布机器人,我需要人们能够确保机器人不会“作弊”并在玩家选择投掷后做出选择。

通常,对于计算机查看,这是通过散列选项并可能提供盐,然后显示选项+盐来完成的。但我想要一些可以被人类“立即”验证的东西。如果我只是散列选择,人们会在操纵散列时哭泣。

所以我的想法是有一种“视觉散列算法”——一种人类可以轻松执行自己并验证的散列算法。

我现在的想法是拥有三个盒子:Rock、Paper 和 Scissors,然后在 RPS 盒子对面放置另外三个未标记的盒子 A、B 和 C。然后我使用缠结的线将 Rock 连接到其中一个,Paper 连接到另一个,C 连接到另一个。这些线是缠结在一起的,因此需要一些时间才能将线从框 B“向后”到例如 Scissors。

当计算机选择它的投掷时,它会“突出显示”对应的投掷框——也就是说,如果 Scissors 的纠缠线通向框 B,它会突出显示框 B。但它不会显示它是 Scissors。然后,人类有 3 秒钟的时间来选择投掷。希望 3 秒不足以让他们理清线并从盒子 B 回溯到 Scissors。

然后,当人类选择投掷时,计算机会显示 Scissors,并且还会突出显示从 Scissors 到 Box B 的纠结线,因此很明显 Scissors 一直都指向 Box B,它不可能只是作弊。

虽然这可行,但我认为......它有点丑陋,而且不雅。人类可以很容易地验证计算机没有作弊,但与此同时,它看起来很不寻常或奇怪,并且引入了太多的 UI 元素,以至于屏幕看起来可能显得杂乱或不可信。UI 元素/图形足迹越少越好。

现在有没有解决这个问题的解决方案?

  1. 展示了投掷的“散列”,以及需要时间(至少 3 秒)“撤消”的散列算法。
  2. 当 throw 显示出来时,应该可以轻松、直观地立即识别出散列算法是否有效执行,并且 throw 确实对应于散列
  3. 它使用尽可能少的 UI 元素并具有尽可能小的图形占用空间
4

2 回答 2

2

这是有趣的。我脑海中的一个想法是用一个键显示一个 10x10 的网格(比如每平方 5 个像素);

红色:摇滚;蓝色:剪刀;绿色: 纸

并用 33 个红色、33 个蓝色和 33 个绿色随机填充网格,然后在 3 种颜色中随机填充 1 个。人类很难在很短的时间内识别出另外 2 种颜色的 34 种颜色,但计数可以在用户输入时显示,以及可选地扩展网格/突出显示单元格等。

UI 占用空间小,比您的解决方案更整洁,但是否足够好......

于 2013-04-27T00:47:02.913 回答
0

你有 3 秒,哪个计算是正确的?

R: 317 * 27 = 8829
P: 297 * 16 = 5605
S: 239 * 38 = 9082

当我告诉你我的答案时,你可以用计算器快速验证。

于 2021-03-16T20:59:08.093 回答