有数字要生成条形码生成器_如何制作自己的“意外”数字生成器

有数字要生成条形码生成器

有时让人们感到惊讶的是,随机数生成是计算机科学中一个经典的著名问题,因为它看起来应该很容易。 只需选择一个数字。 但是,很难使计算机随机化。 许多Linux用户对/dev/random/dev/urandom设备有所了解,并且大多数人对从技术上讲 ,那里生成的数字在科学上并不是真正随机的。

这反映在人类世界中。 直到要求您始终提供一个随机数,您才意识到这一点。 如果您只需要一个随机数,则可以进入您的想法并找出周围浮动的任何数字(您说的是3、7、23还是42?)。 与计算机中的非加密过程一样,“几乎是随机的”就足够了。 但是,如果要求您每分钟“生成”一个新的随机数,则会开始步履蹒跚; 您会在一定范围或数字模式上产生偏见,即使您不这样做,大脑也会在您想出的结果中找到模式,因此您怀疑自己的随机性。

随机数生成的问题与游戏非常相关,因为无论您要面对哪种人工智能(AI),如果存在一定程度的随机性,它都会变得更加现实。某些游戏实际上并没有人工智能完全依赖于掷骰子的冲突。

死问题

模拟游戏解决了很久以前就获得随机数的问题,尤其是骰子。 掷骰子,得到一个足够随机的数字。 问题解决了。

对我来说,骰子的麻烦在于您不一定总是有可用的骰子,而且您也不总是有扔骰子的地方。 具体来说,我在飞机上遇到了这个问题。 在从新西兰到美国的14个小时飞机飞行(以及随后的6个小时到东海岸的飞行)中,我经常使自己沉迷于RPG的单人冒险中; 一种“选择自己的冒险”书,其中包含技能点,战斗水平和其他统计变量的附加维度。 为了确定我接下来要去的RPG或“地牢”单人爬虫的位置,一系列掷骰决定了战斗或敏捷的结果(例如,如果要避免突然的陷阱)。

如果没有怪胎坐在你旁边强迫性地掷骰子,那么乘坐飞机就令人不快。
可以随身携带骰子,但我从来没有想过。 即使我这样做,我也自觉要在游戏时每三分钟将骰子放入我空的咖啡杯中并摇晃一下。 即使您不在飞机上,也不一定每次都需要对自己的人骰子。 也许您是在咖啡馆里消磨时间,或者您正在等待约会,或者您在公共汽车站有片刻时间。

在今年11月14日变得完全真实的另一种情况是在发生7.5级地震后撤离了我的房屋。 在等待海啸警告消失之前,我发现自己有足够的时间玩游戏,但没有死。

由于骰子潜在的社交尴尬以及骰子通常不适合您的钱包这一事实,我决定需要一种替代方法。 我想要一种可以产生随机感的数字,并且可以放在我的钱包或书本上的东西。

如果您要寻找它,互联网确实会提出替代方法。 有一些有趣的数学技巧,例如自我播种的模级数 ,或使用标准扑克牌组(抽出一张牌,获取一个数字),一个命运之轮等等的想法。 这些方法大多数都非常好并且非常有用,但是我想要方便,高效且简单的方法。

手册和PocketMods

碰巧的时候,我在当地一家美术馆的Zine工作坊里,我学到了一种很酷的折纸技巧,用来生产称为ChapBook的东西,互联网告诉我,现如今它被称为PocketMod 。 无论使用哪种名称,这都是一种非常简单的方法,可以将一张US Letter或A4纸变成8页的小册子,不需要装订或装订。 结果是一本足够小以适合您钱包的小册子。

在参加研讨会之后,我想到PocketMod的外形是如此方便和简单,以至于它是更换骰子的理想分发方法。 我要做的就是发明和设计它。

意外的数字生成

它不能很好地用于加密或任何需要反复进行暴力或分析的工作,但是对于单人和合作游戏,我们通常想要的是意外的数字。 实际上,我们并不关心它的随机性,只要看到数字,我们就真的感到惊讶。 即使在竞争性游戏中,只要所有玩家都同样意外,那么意外数字与随机数字一样有效。

您可以放心地假设,如果对手(或您自己演奏,则是您自己),如果他们有选择的话,那么每次他们被要求掷骰子时,他们都会选择最高的结果。 任何提供无法预测的数字的系统都感觉是随机的,因为即使您睁开眼睛说“他们当然会滚动6”,但最终只会滚动3。这确实是一个惊喜,所以感觉随机性,并且与游戏结果的固有不确定性保持一致。

我的想法是,一个数字网格既可以充当其自身的偏移量,又会欺骗人脑做出足够多的随机选择,以产生一个意外的数字。

例如,如果我有一个简单的网格:

1 2 3
4 5 6

我请您选择一个数字,然后我可以使用您选择的任何数字来选择具有不同布局的新网格(从六个替代网格的隐藏存储中选择),无论您在单元格中找到什么,都可以使用“ die roll”选择。 例如,假设您从上表中选择五(5)。 这会将您带到表五的底部一行的中间列。 假设这是表五:

3 5 1个
4 2 6

根据我们的系统,您已经“滚动”了两个。

在下一个回合中,您将使用表2(因为上次滚动了2),并且只要在查看表2之前选择一个单元格,您就会再次对结果感到惊讶,因为这是不可能的预测哪个单元格中的数字。

至少在您习惯使用哪个表之前,至少是这样,但是可以通过使用未编号的表来解决该问题。 我没有给表分配标签,而是决定按位置指定它们:特别是,根据PocketMod小册子中未编号的页面进行分配。 玩家的工作:

  1. 从小册子的任何页面开始
  2. 选择表格中的任何单元格
  3. 使用您选择的单元格中的数字,翻转那么多页面

它实际上是一个随机数生成器; 不是科学上的,而是精神上的。 到目前为止,来自玩家的反馈已经确认该系统足以使人脑迷惑,以至于任何类型的偏见(“我会在此页面上选择一个较低的数字,因为我敢肯定,我记得右边的5个页面会显示较高的数字处于同一位置的数字”)就不足以阻止大脑设计秘密的强制黑客手段。

在设计此系统的物理实现方面,我发现可以做更多的技巧,而这些技巧是使用非常好且完全开源的Scribus桌面布局应用程序完成的。

抄写员

我通常不使用文字处理器或WYSIWYG应用程序,因为它们都倾向于假定您为单个输出而设计。 但是,对于这个项目,我正在设计一个特定的输出。 我想制作一个文件,该文件可以在单张美国信纸和A4纸上打印,然后将其折叠到PocketMod中,并放在钱包中,或者用作游戏书中的书签。 在以前的工作中和一些社区会议上使用它进行专业印刷工作后,我知道Scribus是完成该工作的工具。

从页面布局应用程序开始时,第一步通常是设置目标页面大小。 为确保一切正确折叠,需要使用美国信函和A4的单独文件。

有数字要生成条形码生成器_如何制作自己的“意外”数字生成器_第1张图片
页面大小和方向。

接下来,我需要在手册中定义什么是“页面”。 我本来可以伪造它,也可以花数小时在Scribus中拖放指南,但是我更喜欢让软件为我做计算。 从页面菜单中,选择“ 管理指南” ,并在出现的“指南管理器”窗口中使用“ 列/行”设置:

有数字要生成条形码生成器_如何制作自己的“意外”数字生成器_第2张图片

指南。

接下来,我生成了一些简单的网格。 为了避免翻页和滚动结果之间的混淆,我决定使用字母作为参考。 玩家选择一个字母 ,该字母具有转到目的地的页面数,从而使他们的“掷骰”结果等于他们翻页时在网格中找到的同一字母旁边找到的数字。

有数字要生成条形码生成器_如何制作自己的“意外”数字生成器_第3张图片

表。

PocketMod设计的一个优点是,如果您允许的话,它可以是一本无限循环的书,没有明显的开头或结尾。 如果玩家感到自己的掷骰失败,那么只需将新页面设置为“第一”页面就可以更改初始页面回合的偏移量。 突然,所有目标表都改变了! 意外的回报。

令人意外的是,我意识到这本小册子不仅无限,而且还可以翻转和漂浮。 无需定义起点,终点,从左至右或从右至左或顶部或底部。 因此,我在每页上都添加了颠倒的表格,让玩家可以选择确定每卷书的方向。

最后,为了使系统更加多样化,我决定同时提供六单元表和十单元表。

有数字要生成条形码生成器_如何制作自己的“意外”数字生成器_第4张图片

样本页面。

六格工作台模拟六面骰子(游戏术语为“ d6”),而十格工作台模拟十面骰子(“ d10”)滚动。 此外,可以通过滚动两次并计算总和,或通过在目标页面上获取上下颠倒表格的结果来模拟d12和d20。

统计上不正确

我的系统的“问题”是,严格来说,它在统计上是不正确的。 “滚动”的动作由多个表中不同排列的单元格模拟。 在d6上,骰子有六个侧面,因此应该有六个骰子排列快照。 但是,PocketMod手册有八页。 每页上的表加倍会产生16个快照,因此,无论什么情况,系统都有比可能的卷配置更多的快照空间。

从数学上来说,肯定有一种“正确”的方法可以解决这种故障,但是最终我选择走更大的意外之路,但要以统计上准确的(伪)随机性为代价。

该项目已获得知识共享许可,因此,如果统计人员对制定“正确的”表格以平衡潜在结果感兴趣,则可以进行改进!

使用说明

为了使系统自成体系,我想在打印页面的反面编写有关如何使用它,以及可能更重要的是如何将其折叠成小册子的说明。 在线上有将页面折叠到PocketMod中的说明,但是我找不到许可信息,所以我决定自己重新创建说明。

我的手工插图入门工具是出色的开源Krita 。 配备廉价的Wacom平板电脑(所有平板电脑均随附Linux驱动程序)和Krita,您的插图可以看起来很专业,甚至有些艺术气息。

通常,我发现技巧在于画笔选择。 例如,一个非常好的具有锥形笔触和可变厚度的Krita画笔与直接从KolourPaint出来的像素标记之间的区别可以带来所有区别:

有数字要生成条形码生成器_如何制作自己的“意外”数字生成器_第5张图片

克里塔(Krita)做的很漂亮。

由于我在网上发现大多数说明有些困惑,因此我主要根据在Zine研讨会上学到的内容来编写说明。 我花了不超过15分钟的时间。 我保存了文件,并将版本导出为png ,然后导入了Scribus,并将其放置在设计的第二页上。

该项目的所有设计文件都是开源的,可以从位于gitlab.com/notklaatu/pocketdiceroller的git存储库中获得 。

分配

分发单页模拟骰子滚动仿真器的方法有很多。 分发路径不是开源软件和自由文化所具有的问题。 但是,我不想假设玩家会知道git是什么,甚至不知道如何从Scribus打印或构建PDF。 我希望能够将最终产品交付给播放器,以便可以在家打印。 如果有多个副本, Pocket Dice Roller效果最好。 一个放在钱包或皮夹里,一个藏在RPG规则手册中,另一个藏在背包中,另一个藏在笔记本中。 只有这样,才能确保您永远不会没有意外的数字生成器。

令我惊讶的是,许多在线分销商期望您要出售您的产品。 我不想为我的产品付费,但最终我找到了一个理想的网站: rpgnow.com/product/195037/Pocket-Dice-Roller 。 这是一个已经吸引了铁杆游戏玩家的网站,尽管它确实允许供应商为其工作付费,但它没有内置的收费期望。 该站点允许游戏者浏览他们已经去过的站点来发现系统,免费下载产品,然后在家打印。

播放测试

是的,但是系统正常吗?

最近,我很高兴连续飞行24小时(不计算每次飞行之间的停留时间)。 那给了我足够的时间来玩一些基于单人骰子的游戏。 使用“ 隧道和巨魔”以及“ 孤狼”游戏系统,我时不时地玩游戏,而所有骰子掷骰都是由Pocket Dice Roller模拟的。 后者的游戏系统使用d10(10面骰子),而前者的游戏系统则使用d6,因此我能够广泛测试这两个桌子。

没有实际的骰子,我很高兴发现游戏像以往一样困难,复杂,令人难忘。 这些数字是完全不可预测的。 即使当我开始认为它变得可以预测时,它也证明我无法知道转到种子页面时将要靠的数字,这让我感到惊讶。

我的仿真器也比我在设计时意识到的要灵活得多。

首先,您可以使用滚动种子(以前的滚动值将成为新的种子),也可以每次从任何表重新进行种子设定。 您甚至可以为种子使用错误的表格; 仅仅因为您在玩d6并不妨碍您从d10播种。 而且,如果您对Pocket Dice Roller小册子的方向感到很困惑,则可以完全跳过播种过程。 只需选择一个字母并转到随机页面即可。

孤狼系统使用战斗力来计算对您和您的敌人的伤害,因此每次攻击只需要掷一次掷骰,但是“ 隧道和巨魔”系统需要掷两次掷骰:一个用来计算您的伤害,另一个用来计算敌人的伤害。损伤。 当游戏需要两次掷骰时,我发现自己拿了一个字母并翻到一页,然后在对置的桌子或同一页的两个桌子(朝北和朝南的桌子)上使用字母结果。 我制定了一个规则,确定哪个结果是英雄,哪个是敌人,所以实际上一次动作是两次掷骰,这在物理游戏中加快了一些步伐,实际上使攻击过程更加兴奋,好像所有的一切都同时发生。

经过数小时的卡片式地下城爬虫和为期两天的飞行(那里有24小时,24小时后)的RPG马拉松后,我相信Pocket Dice Roller就像骰子一样令人难以置信。 下载并尝试。 更好的是,打开Scribus并自己制作!

翻译自: https://opensource.com/life/16/11/make-your-own-unexpected-number-generator

有数字要生成条形码生成器

你可能感兴趣的:(游戏,python,java,人工智能,数据分析)