最近闲着没事,就寻思着搞点啥小玩意儿玩玩。刚好看到网上有些猜谜语的东西,觉得挺有意思,就想着自己也动手弄一个类似“riddler”那样的东西,就是能出谜语让人猜的那种。
一开始没想太复杂,就觉得弄个能随机出题,然后判断对错的就行。主要是体验下这个过程,记录下自己瞎折腾的经历。
第一步,肯定是得先找谜语。这玩意儿自己编太费劲,我就上网到处扒拉,找些常见的,什么猜动物的、猜植物的、猜字的、猜成语的,还有些有点意思的生活用品谜语。就是那些“身披白甲衣”、“画时圆写时方”之类的。把这些谜语和谜底都整理下来,弄到一个文档里。
整理数据阶段
这步还挺繁琐的。找来的东西格式乱七八糟,得一个个对齐,把谜面和谜底分开,确保没弄错。我还特意给它们简单分分类,比如:
- 动物类
- 物品类
- 文字类
- 自然现象类
这样感觉后面用起来方便点。弄完之后,就是一个简单的列表,一行谜面,对应一行谜底,中间用个啥符号隔开,或者干脆就上下行对应。
开始动手实践
数据准备好,就开始琢磨怎么让它动起来。最简单的,我就想着用个小程序或者脚本啥的来实现。咱也不是啥专业搞开发的,就捡自己稍微会点儿的皮毛弄。
先是写个最基本的功能:
程序跑起来,就从我整理的那个谜语库里随机挑一个谜面显示出来。
然后提示用户“请输入你的答案:”。
用户输入答案后,程序就把用户的答案和我存的那个标准谜底比对一下。
对就显示“恭喜你,答对!”;错就显示“不对,再想想?”或者直接公布答案。
这个过程写起来磕磕绊绊的,主要是对怎么读取文件、怎么随机选择、怎么比较字符串这些不太熟练,边查边写,折腾好一阵子。
测试和改进
基础功能跑通后,自己试试,发现不少小问题。比如,有的谜底是多音字或者有别名,用户输入的和标准答案不一样,但也算对。还有就是大小写、空格啥的,也影响判断。
针对这些问题,又做点小改进。比如,判断答案的时候,把用户输入和标准答案都统一转成小写,去掉前后空格再比较。对于可能有多种答案的谜语,我就把可能的答案都加到标准答案列表里,只要用户输入的是其中一个就算对。
后来又觉得太单调,就加点儿“花活儿”:
加入之前分的类别,可以让用户选,比如“我只想猜动物谜语”。
加个计分功能,答对一题加一分。
还弄个简单的提示功能,比如用户猜不出来,可以要求给个提示,就把谜底的第一个字或者类别告诉用户。
这些功能加进去,又是一顿调试,改不少地方。
最终成果
捣鼓出来一个能在自己电脑上跑的小工具。虽然界面很简陋,就是些文字输出,但核心的出谜、猜谜、判断、计分、提示功能都实现。算不上什么正经作品,就是自己动手实践的一个小记录。
整个过程下来,感觉还挺充实的。虽然碰到不少问题,但一步步解决掉,看到自己想法变成现实,哪怕只是个简单的小东西,也挺有成就感的。主要还是体验这个从想法到实践的过程,顺便也熟悉点平时不怎么用的编程小技巧。对我来说,这就够,分享出来,也算是个记录。
还没有评论,来说两句吧...