爱意满满的作品展示区。
chunqiuyiyu

从五笔到汉字游戏

  •  
  •   chunqiuyiyu · 9h 22m ago · 629 views

    王旁青头戋五一,土士二干十寸雨。 ——题记

    (试玩地址,用流量打开时需要注意,游戏加载了 20M 的中文字体)

    我老家在甘肃武威,从小说着西北土话(方言)长大。家人、朋友还有老师都操着相同的土话与口音,一直也没觉得这种口音会带来什么影响。直到小学四年级,学校开设了微机课,老师开始教我们汉字输入。当时学校用的是 Win98 ,输入法是智能 ABC ,这可要了老命了。其实,我老家的方言与普通话并没有太大差别,最大的发音差异之一,就是不太区分前后鼻音。反正小时候学拼音时,两者都发成差不多的音,语文又不考口语,也就这么混过来了。这个发音问题,直到高中学习音标、开始有意识地分辨不同发音位置以后,才慢慢纠正过来。这里还有个笑话,可以试试让甘肃人用土话念一遍“风起云涌”。

    当时的输入法不像现在这么智能,虽然已经有词频调整、自动记忆等功能,但在纠错和联想能力上远不能和现在相比。如果拼音输错了,想要的汉字往往就很难打出来。微机考试的题目除了简单的 Word 排版,还要求录入一篇文章,考查录入的正确率和用时。因为从小前后鼻音不分,这种发音习惯也影响了我对拼音拼写的判断,我的分数总是扣在汉字录入这一项。我很苦恼,于是找到了班主任老师。小学班主任是位高材生,好像是从北京调来的,见多识广。他很快就指出,问题和我的发音习惯有关。他给了我两个建议:一是纠正口音,二是学习五笔输入。我小学时记忆力相当好,当时课业压力也不大,于是选择了学五笔。这东西对那时的我来说非常新奇。班主任先让我背五笔字根表,然后学习拆字、字根和编码规则。

    刚开始非常困难。25 个键位上分布着大量字根,又按照首笔的横、竖、撇、捺(点)、折分成五个区域。用五笔打每一个字之前,都得先在脑子里想清楚这个字该怎么拆。偏偏我以前写字跟狗扒似的,从来没认真考虑过笔画顺序。有时字根虽然认对了,取码顺序却还是会出错。我一度想放弃,甚至有段时间觉得自己学了五笔以后,连字都不会正常写了。还是要感谢班主任老师,他当时跟我说,大意是:“放弃非常容易,再想捡起来就难了。以后你还会遇到更多困难,难道你能一直放弃吗?”这句话一下把我惊醒了,于是我咬牙坚持了下来。王永民老师发明的五笔字型输入法确实精妙,真正学会以后,打字速度非常快,重码少,上屏也快。更意外的是,学五笔还让我开始认真留意汉字的笔画顺序,也加深了我对字形结构的理解。后来练习硬笔行书时,我的书写也有了长足进步,这些都是后话了。五笔让我第一次意识到,汉字其实可以像积木一样拆解、组合。

    很早以前,我就想以五笔为原型,做一个汉字拼字游戏,同时加入牌库构筑的玩法。正好这几年 AI 快速发展,我断断续续利用半个月左右的零碎时间,借助 GPT 系列模型和 Codex CLI 把它做了出来。核心玩法大约一周就完成了,剩下的时间主要花在调整样式和细节上。游戏玩法其实很简单,就是根据棋盘九宫格里的部件,拼出有效的汉字来计分、闯关。随着关卡推进,新出现的部件会逐渐带上五行技能,通过不同技能之间的连携配合,可以打出更高的分数。最初的玩法设计参考了《小丑牌》( Balatro ),一开始采用“部件笔画数 × 部件数量”的方式计分,不少拼字游戏也会采用类似的设计思路。但照搬到汉字上并不合适,因为大多数玩家能够拼出的汉字,通常不会超过四个部件。如果单纯依靠部件数量提高分数,很快就会碰到玩法的天花板,严重限制设计空间。所以现在的玩法改成了让九宫格中部件的位置也参与计算。这样一来,即使玩家反复拼出两部件、三部件的汉字,也不容易很快觉得乏味。

    开发环境是 Win10 + WSL + Codex CLI ,技术栈则是原生 Web 技术。以前我一直在 PowerShell 里使用 Codex CLI ,但 Codex 调用内部工具时经常会自行编写并执行 Bash 脚本,动不动就出现转义字符错误之类的问题,最后还是迁移到了 WSL ,用起来一下顺手了很多。选择 Web 平台,一个很重要的原因是可以直接调用浏览器提供的 Web Speech API ,通过 SpeechSynthesis 做语音合成。点击字形就能听到汉字读音,玩家可以一边玩,一边顺便认识不熟悉的字,也算有点寓教于乐的意思。渲染方面,最开始我用的是 HTML5 Canvas 。实现 MVP 时,我发现自己当时的 Canvas 实现里,中文字体渲染出来总有些模糊、发虚。这个游戏最重要的恰恰就是字形显示,这一点无法接受。游戏里又要覆盖几千个常用汉字,也不适合像英文字母那样逐个制作成位图,所以最后放弃了 Canvas 渲染。

    最终,我改用了 DOM 渲染。为了顺便学习新技术,我也没有简单地用 JS 直接操作原生 DOM ,而是使用了 Web Components 。这个游戏本身属于卡牌游戏,没有大量需要同屏实时渲染的精灵,也不需要处理物理碰撞,玩家的交互基本就是点击,所以很适合用 Web Components 开发。自定义元素可以把不同模块和功能封装起来,再通过组合这些元素,搭出整个游戏的界面与玩法。如果直接用原生 DOM 开发,我大概还得自己编写更多模块化和状态同步的代码。我个人还是挺喜欢 Web Components 这项技术的,只不过总觉得它多少有点生不逢时。等浏览器支持和生态逐渐成熟起来时,前端框架早已经占据了主流。屠龙之技在手,天下却已无龙可寻,奈何? 大家感兴趣的话,可以玩一下。游戏全程使用 AI 辅助开发,肯定还会有未知的 Bug 。如果有任何你觉得不满意的地方,欢迎提出意见和建议。最后,祝大家中秋、国庆双节快乐,度过一个平安、健康、愉快的假期!话说我自己现在还在犹豫,到底是回老家、出去玩,还是宅在家里躺着……摇摆不定中。

    1 2 3

    13 replies    2026-09-24 15:10:08 +08:00
    WoodytheSuper
        1
    WoodytheSuper  
       8h 31m ago   ❤️ 1
    现在还有人学习五笔吗?
    chunqiuyiyu
        2
    chunqiuyiyu  
    OP
       8h 22m ago
    @WoodytheSuper 现在应该没有了,时代的眼泪。
    ShundL
        3
    ShundL  
       8h 10m ago   ❤️ 1
    玩了一会儿没玩明白,感觉来来回回就那几个部首拼来拼去的,玩一会儿就无聊了啊。
    chunqiuyiyu
        4
    chunqiuyiyu  
    OP
       8h 8m ago
    @ShundL 感谢试玩,你过到第几关了?可以能是过关分数的压力太小了。
    AlrclySuzuki
        5
    AlrclySuzuki  
       8h 6m ago   ❤️ 1
    本条评论由五笔输入法撰写,我现在也很久不用五笔输入法了,突然用感觉好生疏。而且发现有点提笔忘字了。
    chunqiuyiyu
        6
    chunqiuyiyu  
    OP
       8h 2m ago
    @AlrclySuzuki 唉,现在提起五笔,感觉是很久远的事情了。拼音输入的联想与云词库足够强大,就是用多了,认音不认字,没有提示,很多字写不出来。
    nsjs
        7
    nsjs  
       7h 41m ago via iPhone   ❤️ 1
    手机上看不见合成按钮,被挡住了好像?
    不过这个和五笔关系不大吧,就是拼字游戏么,五笔有奇奇怪怪的拆法的
    chunqiuyiyu
        8
    chunqiuyiyu  
    OP
       7h 34m ago
    @nsjs 感谢反馈,我修一下,后面也会遇到奇怪的折法,前面比较直观。
    uqf0663
        9
    uqf0663  
       7h 28m ago   ❤️ 1
    我们小学三年级从 dos 开始的,广东人,一样有口音问题(个人认为 op 因为口音而学五笔有点掩耳盗铃的感觉),一直没懒得学五笔也一样过来了(不可否认五笔发明真的是前人的大智慧)。

    暑假的时候让小学的儿子熟悉键盘练习打字,突然意识到再发展多几年他们可能不太需要打字的样子,当时感觉挺唏嘘,至于五笔那就更值得唏嘘了。
    chunqiuyiyu
        10
    chunqiuyiyu  
    OP
       6h 51m ago
    @uqf0663 是啊,现在的娃电脑键盘都不用了,五笔更是老古董了。
    wick
        11
    wick  
       6h 39m ago   ❤️ 1
    很 vb q gm d yi j et r 五 ttf
    EchoVertex
        12
    EchoVertex  
       4h 38m ago   ❤️ 1
    王旁青头戋(兼)五一
    xx95
        13
    xx95  
       3h 29m ago   ❤️ 1
    从 2000 年初开始用五笔,用了 10 多年。前几年开始转拼音。后来转双拼。现在用五笔就很费劲了。字根都忘记了。 -- 以上用五笔打出来的。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2996 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 51ms · UTC 10:39 · PVG 18:39 · LAX 03:39 · JFK 06:39
    ♥ Do have faith in what you're doing.