此为历史版本和 IPFS 入口查阅区,回到作品页
XFun
IPFS 指纹 这是什么

作品指纹

我做了一个随机转盘,给那些小决定省点时间

XFun
·
有些选择并不复杂,却总能让人犹豫一阵子。我做了一个可以自定义选项的随机转盘,从输入选项、旋转动画到结果展示,发现这种小工具也有不少值得琢磨的细节。

我做了一个随机转盘,给那些小决定省点时间

有时候,做一个决定花掉的时间,比事情本身还长。

中午吃什么,周末玩什么游戏,几个人一起活动谁先开始。这些问题没有那么重要,通常也没有一个绝对正确的答案。但只要有几个选项摆在面前,就可能需要商量一会儿。

如果每个选项都可以接受,其实没有必要一直比较下去。随机选一个,事情就能继续了。

这也是我做随机转盘的出发点。

最开始的想法很简单:把几个选项写进转盘,按一下开始,等指针停下来,得到一个结果。没有账号、复杂的设置,也不需要下载安装软件。

这个页面就是我做的随机转盘,后来把它放在了 WheelPage 网站里。

让一个转盘转起来,并不等于做好了

一个圆,分成几个扇区,填上文字,再加一段旋转动画。只看画面,随机转盘似乎没有多少复杂的地方。

但选项是用户自己输入的,情况就不一样了。

只有三个选项时,每个扇区都有足够的空间。增加到十几个以后,文字可能变得拥挤。有的选项只有两个字,有的却是一整句话。如果全部按照相同的方式显示,转盘就可能出现文字重叠、字号过小的问题。

选项的增删也会影响整个画面。用户删掉一个选项,扇区数量要变化;修改文字,显示内容要更新;重新排序以后,结果和转盘上的选项还得保持对应。

移动端也有自己的问题。电脑屏幕足够大,转盘和选项列表可以同时展示。到了手机上,输入框、转盘、操作按钮都要占据有限的空间。

这些事情不会让随机转盘多出一种玩法,却会影响使用者愿不愿意继续使用。

我也花了时间处理动画。转盘开始旋转以后,速度要变化,最后要停下来。指针停在哪个位置,页面就应该显示对应的选项。

对使用者来说,这只是一次转动。对程序来说,却需要让随机选择、转盘位置和最终显示保持一致。

如果指针指向了 A,结果区域却显示 B,即使随机算法本身没有问题,使用者也很难相信这个结果。

随机选择,也需要把规则讲清楚

做转盘时,还有一个不能忽略的问题:什么才算公平?

假设转盘里有五个人的名字,每个人占一个相同大小的扇区。我们希望每个人都有相同的机会被选中。

这听起来没有争议。但如果其中一个名字出现了两次,或者某个选项拥有不同的权重,结果的概率就会发生变化。

因此,随机选择是否公平,不能只看转盘转得够不够自然,还要看选项是怎么设置的、结果是怎么产生的。

尤其是抽签和随机点名,如果有多人参与,我觉得最好先让大家确认名单,再开始抽取。

有时候真正引起争议的并不是抽到了谁,而是抽取前有没有把规则说清楚。

而且,随机不代表结果一定会平均出现。

比如连续抛几次硬币,出现三次正面,并不能说明下一次就应该是反面。转盘也是一样。如果每次都是独立抽取,即使某个选项连续出现,也不一定代表程序出了问题。

很多人会把随机理解为“看起来分布得很均匀”,但这两件事并不完全相同。

如果活动要求每个名字只能被抽中一次,就需要采用不重复抽取的规则,而不是指望随机结果自己避开之前的名字。

这些问题比转盘的外观更值得提前想清楚。

结果出来以后,还是想重新转一次

我觉得随机转盘还有一个有趣的地方。

比如在三个备选方案中抽到了 A,可看到结果以后,心里却希望是 B。

这种情况并不罕见。

随机结果已经出来了,人却未必愿意接受。甚至可能再转一次,直到得到自己想要的结果。

这不一定是转盘没有发挥作用。

如果一次随机选择让人发现自己更喜欢另一个选项,至少说明原本模糊的偏好变得清楚了一些。

当然,这种方法只适合不太重要的决定。选一家餐厅、挑一个游戏、决定活动顺序,用随机方式没有什么问题。但涉及健康、金钱、安全或者重要的人生选择时,就不能把责任交给一次转盘。

工具给出结果,并不意味着人必须接受。

为什么后来又做了其他小工具?

随机转盘完成以后,我又做了几个用途接近的页面。

比如只有两个选项时,用抛硬币就够了;如果需要随机点数,也可以使用在线骰子。

它们的操作方式不同,却都在解决一些具体的小问题。

我没有打算把所有随机玩法都塞进同一个页面。有时候需要的是一个可以编辑名单的转盘,有时候只是一个正面或反面的结果。

如果一个工具只需要完成一件事,就没有必要让它承担太多功能。

现在 WheelPage 已经增加了其他工具,但随机转盘还是最初那个想法的延续:让用户自己填写选项,完成一次选择。

网站还在维护,转盘的显示效果、手机操作和一些细节也有继续调整的空间。

对我来说,这些功能谈不上什么特别大的创新。随机转盘早就有人做过,抛硬币和骰子也不是新玩法。

我能做的,就是把自己想用的功能做好,发现问题再调整。

如果一个人需要随机抽签,打开页面,输入名字,转一下就能得到结果,不必研究一堆操作说明,这件事就已经有了实际用途。

至于最后抽中了什么,就交给运气吧。

CC BY-NC-ND 4.0 授权