Monica

CREATIVE NOTES / 编程与趣味学习

重复的天气朋友,怎样变成一次补缺机会?

想象图鉴里已经有一只太阳饼,这次开盒又遇见它。太阳饼的数量加了一只,邮票也多了一枚。接下来这枚票能做什么?詹以宁(Zhan Yining / Monica)的作品集收录了《口袋天气盲盒》。这篇笔记由作品集编辑根据页面规则和代码整理,用一份假设的账本观察程序怎样记重复、筛选可兑换的玩偶。

Monica 作品集编辑 · · 作品观察 / 设计分析

一笔开盒,两栏记账

先看这一款在开盒前有几只。若原来是零,数量变成一,邮票余额照旧。若原来已有一只或更多,这次就算重复:这一款的数量加一,邮票余额也加一。程序对任何已经拥有的玩偶都用这条规则,所以隐藏玩偶的重复也记一枚票。若图鉴原有一只太阳饼,抽到第二只后,这款的数量显示两只,已收集款数保持原样。

兑换先查余额,再看图鉴缺谁

有至少三枚票,而且六款常规玩偶里还有没收集到的,兑换才成立。程序先列出这些缺失款,再从名单里随机选一款,把它的数量记为一,同时扣掉三枚票。已拥有的常规玩偶和隐藏玩偶都不在这张名单里。每次成功兑换,常规图鉴正好填上一个空位,原来收集到的重复玩偶也保留在图鉴里。

用一张纸走完这笔兑换

假设账本上已经有四款常规玩偶,缺云团团和雪绒绒,邮票余额是两枚。此时兑换条件还没满足。如果记录里接着出现一次重复的太阳饼,太阳饼数量加一,余额由二变三,缺失名单依旧只有云团团和雪绒绒。现在可以兑换了。假设随机选中云团团,就记云团团一只、邮票零枚,常规款还缺雪绒绒。也可能选中雪绒绒,那就把两款在账本上的位置对调。这里是纸上假设,用来检查规则。

余额够了,按钮为何还可能停用?

假设六款常规已经齐了,账上还有四枚票,图鉴只缺隐藏玩偶。常规兑换名单是空的,按钮仍会停用,四枚票留在账上。还有另一种情况:图鉴确实缺一款常规,余额只有两枚,票也原样保留。看按钮状态时,把“票够吗”和“还有常规空位吗”分开检查,就能解释为什么同样是四枚票,有时能换,有时不能。

把每次操作写成前后两行

可以在纸上写三项:各款数量、邮票余额、尚缺的常规名单。选一个假设动作,把操作前后的两行并排,圈出变化。例如图鉴只缺雪绒绒,余额五枚,成功兑换后雪绒绒从零变一,余额变二,名单变空。随后即使再检查兑换,名单也没有候选,余额仍是二。

编程里,程序需要记住的这些数值叫状态。这里的可兑换名单可以随时从图鉴算出来,图鉴不同,名单也随之变化。正常保存时,图鉴和邮票记在当前浏览器。这个纸上练习可以停在任意一行,照样看清每条规则改变了什么。

接着想一想

重复抽到隐藏玩偶,会得到邮票吗?

会。程序看开盒前是否已经拥有这一款。重复的隐藏玩偶也加一枚票,而兑换名单始终只包含尚缺的常规玩偶。

已经有三枚票,还能指定要换哪一款吗?

程序从当前缺失的常规名单随机选。如果只缺一款,名单上就只有那个结果。如果没有缺失常规,即使票够,兑换也不会扣票。

打开相关作品

本文由作品集编辑依据项目规则与现有代码整理,并使用 AI 辅助写作和翻译。推导与建议活动不是 Monica 的原话或亲历记录;项目展示不等于她独立完成全部设计或代码。

作品交流与联系

联系入口由家人管理。

WeChat
jimsgrouphk
Email
justin@jimscapital.cn