云计算百科
云计算领域专业知识百科平台

从三角洲跑刀到51单片机:复刻三角洲开保险小游戏

观前提醒,代码已经在我的github库上面发布了,实践以及复现视频在我的抖音上面,感兴趣的可以去看看,以下纯属碎碎念流水账,准大一还没开学自己随便瞎捅咕的,只是感兴趣做出小项目,没啥含金量,单纯图一乐

1. 项目背景

打三角洲,猛攻打不过别人,跑刀也抢不到保险。

没有放弃,我决定用最近刚学的51单片机,用51单片机,复刻三角洲里那个开保险小游戏

2. 需求分析

在动手之前,梳理一下,这个小游戏其实就三个状态:

  • 设置密码:用户自己设定一个5位密码
  • 输入密码:滚动数字,逐位验证
  • 验证成功:播放音乐
  • 3. 设计思路

    3.1 密码设定

    我最初的想法是 1:1 还原游戏里的保险密码 6DFUP。但只会数码管 所以果断放弃,改成用户自己设定密码

    3.2 输入逻辑

    输入密码的程序,本来打算直接 CV 大法,从网上抄一段。结果一用全是坑:

    • 滚动输入密码时,要等对应数字出现;
    • 用户同时按下确认键;
    • 里面还要判断对错;
    • 程序嵌套,套娃套到怀疑人生。 分开都不是很难,但是如何组合是个问题,函数这一块学的不咋样。。。 去上网查了一圈,发现没有同类项目。抄作业都找不到 所以这部分直接交给 Codex。这玩意真好用啊

    3.3 按键与边界处理

    我设定了三个核心按键:

    • 数字键:确认当前滚动到的数字;
    • 删除键:回退上一位;
    • 确认键:提交当前位验证。

    同时,还确立了边界处理逻辑,防止数字溢出。

    4. 数码管滚动显示

    真正做起来才发现,数码管滚动显示远没有想象中简单。踩过的坑包括但不限于:

    • 当前位滚动:只有当前验证位在滚动;
    • 已验证位常亮:已经验证通过的数字要固定显示;
    • 滚动顺序:1 → 2 → … → 9 → 1,无限循环;
    • 停留时间:每个数字常亮 1 秒,到时间自动切换下一个。

    这些细节,每一个单独看都不难,但合在一起调试了很久

    5. 验证环节

    按下 S16 的瞬间,程序要做的事如下:

    • 以当前数码管显示的数字为输入值;
    • 与正确密码的「当前验证位」进行比对;
    • 正确:当前验证位数码管停止滚动,固定常亮显示该数字,蜂鸣器发出低频正确提示音(单响),「当前验证位」向后移动一位;
    • 错误:当前验证位数码管熄灭,蜂鸣器发出双响,提示音结束后,当前验证位重新从数字 1 开始循环滚动。

    6. 验证成功,音乐响起

    当 5 位密码全部验证通过,系统进入最终状态:

    • 5 位数码管全部常亮,保持显示正确密码;
    • 蜂鸣器播放一段简单旋律(上网直接找的,感觉这东西拓展性也挺强,下次做个钢琴试试);
    • 旋律播放完毕后,数码管保持常亮,蜂鸣器停止;
    • 按下任意按键可重置系统,回到密码设置状态,重新开始全部流程。

    这一刻,终于体会到了「开保险成功」的快乐。虽然是在单片机上(但看着自己搞出来的成功还是成就感满满)

    7. 编程中的一些问题与反思

    在编程过程中,我遇到了一系列具体问题,很多都是边遇到问题边学习的:

    • 输入时的显示逻辑:滚动数字时,当前位和已验证位的显示规则;
    • 生效规则:数字键、删除键、确认键各自的触发时机;
    • 删除键边界:删到第 0 位时怎么办;
    • 「闪烁」的具体表现:是整位闪烁还是数字切换闪烁;
    • 输错后的重置范围:是重置当前位,还是重置所有位;
    • 数码管状态规则:常亮、熄灭、滚动的状态切换;
    • 错误提示音细节:单响和双响的区分。 最开始感觉都不是啥难题,但是自己做起来发现很困难,也是AI辅助才完成的

    8. 一些分享

    AI是真好用,以前以为AI都想豆包一样纯傻福,用了chatGPT发现这玩意真的是远超预期,给大家分享一个我觉得挺好用的使用方法

    把自己当作 AI,把你项目的想法构思发给 AI,让 AI 向你提问题。 具体操作就是,对 AI 说: 【一堆自己程序的想法,和对项目的要求】以上的所有要求你有什么不懂的地方请向我提出,并且帮我生成一段详细的提示词,让 AI 能够看懂我的需求,提示词可以无限长,不用生成具体代码。

    就这一句话出去,等着 AI 给你提问题吧。 很多时候,自己的想法和项目会出现很多冲突的,也会出现一些逻辑上的错误。通过 AI 的嘴说出来,比自己翻代码半天好用得多,虽然老被 AI 问得哑口无言 但与此同时,也能对自己程序的不足理解得更深刻。这真的是很好的学习方法,能积累处理问题的经验。

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 从三角洲跑刀到51单片机:复刻三角洲开保险小游戏
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!