网络日志

汪子熙趣味接龙游戏实现里原创部分的亮点

本作品使用 Kitten编程猫这个具有国内自主知识产权的工具开发而成,工程里每一个积木的使用都是作者和原创。最值得一提的原创部分罗列如下:

  1. 使用列表的数据结构来存储将近2万个成语词汇
  2. 根据用户输入的成语,在将近2万个成语词汇中,检索出其第一个字 等于用户输入的成语的第一个字的成语,即成语接龙成功与否的判定算法设计。在本作品第一版的程序实现里,作者在“重复执行”的积木里,使用了很多类似 “列表长度”,“列表第N项”的计算积木,造成判定计算逻辑的执行速度及其缓慢,计算一次需要等待80秒。后来在指导老师的提示下,把“列表长度”,“列表第N项”这些计算积木的使用,移到了“重复执行”积木之外,避免了在循环内一次又一次计算这些不变值,加上Kitten编程猫 积木实验室里高级积木“一步执行”的使用,完美地将接龙判定的执行时间从 80 秒优化到了1秒。

  1. Kitten编程猫的声音积木,只支持启动单个背景音乐,而不支持停止单个背景音乐。而本作品在选择初始接龙成语,以及正式的接龙环节时,播放的是不同的背景音乐。所以,最初的开发过程中,作者在关闭背景音乐A,播放背景音乐B这个功能的实现上遇到了困难。虽然编程工具本身不支持关闭单个背景音乐,但提供了关闭所有音乐的积木。作者发挥了自己的聪明才智,引入了两个新的局部变量,分别控制两种背景音乐的播放。在“重复执行”的积木中,使用“播放声音XXX直至结束”的积木,其后紧接着判断这两个局部变量值的积木,从而完美解决了背景音乐的切换问题。

  1. 目前Kitten编程猫社区上,为数不多的成语接龙作品,仅仅包含接龙是否成功的判定功能,而缺少“学习模式”,即告诉使用者正确答案。而本作品创建了一个名为“自动匹配答案”的函数,在用户接龙失败时,会自动调用该函数,智能地为用户在本地词汇库中,查找出能够成功接龙的成语。这样,用户即使接龙失败,也知道了正确答案,积累到了新的成语。