用记事本游戏帮助教学

2017-12-07 00:15陈凯
中国信息技术教育 2017年21期
关键词:字符串记事本关键字

陈凯

所谓记事本,可以是Windows操作系统里的Notepad,也可以是其他操作系统里的各种文本编辑软件。虽然说记事本的主要功能是记录和编辑文字,但用记事本其实也可以制作出一些用于教學的简单游戏。可不要小看简单的记事本,它小巧简单,制作和部署都十分方便,其貌似原始的界面反而会给人带来新鲜感。一个用来浏览、记录简单文档的记事本怎么实现游戏里的互动功能呢?希望本文能带给大家一些非主流的创作启发。

查找功能的利用

利用记事本的查找功能,就能够实现最简单的交互。笔者编写了一个叫做“神秘动物在哪里”的游戏,目标是通过解题线索,找出隐藏在文件中的小动物。

如图1所示,这个文件乍看上去只是一个计算机基础练习题库,但第一句话“在文件中找出猫、猴子、鸟、鱼、老鼠、蝴蝶、蜘蛛”其实就是游戏目标,而“1024*768分辨率单色位图占存储空间至少是( )KB”是完成游戏任务的线索。这个问题的答案是“96”,若接着利用记事本菜单里的“查找”功能查找关键字“96”,就能跳转到文件的某一段。

于是就找到了鸟~( ̄v ̄)~(如图2)。因为要寻找的对象都是ASCII码组成的图案,如鱼是<`)))))<,猴子是@('_')@,如果没有线索关键字的帮助,是很难在一大堆文字中发现搜索目标的,在找到某个动物的时候,就会看到寻找下一个动物的线索。注意,线索关键字的设置要灵活多变,不能让玩家发现规律。

利用记事本的查找功能,就能实现类似AVG游戏的场景跳转功能,创作者还能添加有趣的剧情并实现剧情跳转的分支,甚至为错误的线索设立循环。

替换功能的利用

记事本的替换功能可以进一步加强记事本游戏的交互性。例如,图3文件中有一大堆乱码,需要玩家根据乱码提供的线索,将看似乱码的某些字符串替换成另一些字符串。

如果所有的替换都没有出错,那么最终就会得到“奖励”,字符串会摆出一个图案(如图4)。

游戏的创作方法也很简单,只要将一张现成的图片,利用ASCII Art生成器(在网络上搜索ASCII Art Generator关键字就能找到),生成字符串图片,然后将连续或重复的字符替换成和教学知识点有关的线索关键字即可。

有时候,字符串替换过程直接就对应着“编码—解码”过程。例如,若能正确将某些十六进制数码转换成二进制数码,就能看见心的形状(如上页图5)。这个例子不仅涉及不同数制之间的转换、信息编码解码、位图等教学知识,在操作过程中,还需要考虑如何安排正确的替换次序。任务貌似简单,解答起来却需要有一定的“计算思维”,如果替换顺序错误,就无法得到预想的效果。

当图片以ASCII码点阵形式呈现在记事本中的时候,“替换”功能可以起到简易“图形”编辑器的作用。例如,将“多色”的“位图”转换为“单色”的“位图”,横向拉长或压扁“位图”(不能纵向变形),去除“位图”中的信息冗余实现文件压缩,甚至是制作简单的动画。如图6所示,只要将“.*”全部替换成“*.”,就能让记事本中的飞机“动”起来,有兴趣的话还能加上图画背景。关于记事本中的字符串替换功能的更多潜能,期待有兴趣的朋友进一步开发探索。

删除功能的利用

用记事本的删除功能可以做出简单的消除类游戏。“扩展名消消乐”游戏的目标是,根据要求找到并消除掉某个关键字,然后观察字符串中新出现的可以消除的关键字。例如,在字符串“JGIFPAWMVRBMPNGPAZIPRVMWAVMP4P3IG”中删除掉“PNG”,就能将字符串变成“JGIFPAWMVRBMPAZIPRVMWAVMP4P3IG”,然后就能找到“BMP”,按同样的方法试着逐渐将整个字符串清空。但是,如果字符串设计得不好,就有可能误导玩家走入歧途,以上述字符串为例,若一开始删除的是“BMP”,就没有办法将游戏进行到最后。因此,教师可以设法将正确消除字符串的线索和教学内容结合在一起。

自动换行功能的利用

记事本的自动换行功能有着意想不到的打乱文字的效果。这个游戏叫“混乱扩展名”(如图7),目标是把各种扩展名在纵列上对齐。

然而,文件初始状态却是图8所示的样子。

玩家要将缺失的字母填到文件中,要求只能添加字母不能删除,同时要尽量使所有扩展名的三个字母在纵列上对齐。实际尝试后才知道,因为记事本设置了自动换行,每添加一个字母,其他字母的位置就会发生变化,要将所有字母对齐,实在不是件容易的事情。

自动换行的另一个效果是,若改变记事本窗口大小,就会使记事本中的内容产生出好像动画片一般的效果。如图9所示,巧妙安排一个只有“0”和“1”两种符号的字符串,当拖动记事本右边框,窗口逐步变窄时,记事本的最左面纵向第一列字符就产生二进制计数器的效果,自下向上读,数码从000、001、010自动增加变成111。为何会有这种效果,这是一个值得探索的谜语。

多个记事本的利用

如果使用多个记事本,创作游戏的手段就更多了。可以用两个记事本来玩“大家来找茬”、多个记事本文件来拼图,甚至可以将不同类型的谜语放在不同的文件中,通过某些线索串联起来,制作成“大型”解谜游戏。因为课堂时间有限,一些耗时比较长的探索任务可以作为自主学习任务安排在假期中。笔者设计了一个游戏,在桌面上并排三个记事本(如图10),按顺序按两次“Alt+Tab”键,一次“Page Down”键,三个记事本就能以“空,空,星”(表示001)、“空,星,空”(表示010)、“空,星,星”(表示011)的方式来进行二进制计数,并一直计数到“星,星,星”(表示111)。可是,在记事本中究竟如何安排空行和星号才能实现这样的效果呢?方法并不难,可以自己思考一下。

看似简单的记事本也可以制作出不简单的游戏,希望大家读完文章后,能亲自动手试一下。endprint

猜你喜欢
字符串记事本关键字
成功避开“关键字”
一种基于PowerBuilder环境字符串相似度算法
小小记事本
SQL server 2008中的常见的字符串处理函数
倍增法之后缀数组解决重复子串的问题
土拨鼠的记事本
记事本里的信息技术课
最简单的排序算法(续)
智能垃圾箱
从搜索量看关键字效果 区别竞价花钱值