最近琢磨着搞点啥小玩意儿,正好手头有点空,就想着弄个“猜你歌”的小游戏出来玩玩。也没啥特别高大上的想法,就是想回顾一下,顺便记录下这个过程。
具体咋做的?
第一步,先得有想法,然后找素材。
想法很简单,就是放一小段歌,让别人来猜歌名。关键是歌从哪来?我没去找啥在线的接口,感觉有点麻烦,还得处理版权啥的。干脆就从自己电脑里常听的歌里面扒拉了一些出来,弄了个小曲库。都是些MP3文件。
第二步,怎么让歌播放一小段?
音乐520网站提供热门歌手/热门乐队/经典歌曲合集大全打包下载,点我立即前往》》》经典歌曲合集下载专区
这个得处理一下。总不能把整首歌都放出来,那就没意思了。我想着就截取每首歌开头或者高潮部分的一小段,大概10秒到15秒就差不多了。一开始想着是不是要用啥工具软件批量处理,后来发现工作量也不小。干脆在播放的时候控制一下播放时长,或者就直接用现成的片段也行。我选了后者,找了些本身就是片段的音频,省事儿。
第三步,搭个简单的界面。
这个得让人能操作。我就用了最基础的东西,搞了几个按钮:
- 一个“播放”按钮,点了就开始放那一小段歌。
- 一个“下一首”按钮,猜不出来或者猜对了就换歌。
- 一个输入框,让用户能打字输入猜的歌名。
- 一个“提交”或者“确认”按钮,用来确认答案。
- 还得有个地方显示提示信息,比如“猜对了!”或者“不对,再想想?”,顺便显示个得分啥的。
界面没弄得多花哨,就是最基本的功能堆一起,能用就行。
第四步,把逻辑串起来。
这就是核心部分了。我大概是这么个流程:
- 先把我的歌曲片段和对应的正确歌名弄成一个列表或者啥结构存起来。
- 程序启动或者点“下一首”的时候,就从这个列表里随机选一首歌(没播放过的)。
- 用户点“播放”,就开始放对应的音频片段。为了防止一直放,我设置了播放固定时长,比如15秒自动停,或者播放完一遍就停。
- 用户在输入框里输入猜测的歌名,然后点“提交”。
- 程序拿到用户输入的答案,跟预存的正确答案比对。这里得注意,用户输入的可能大小写不一样,或者前后多了空格,这些都得处理下,不然对不上答案就很冤。我就统一转成小写,去掉前后空格再比对。
- 比对结果出来,对了就给个提示,加点分;错了也给个提示。
- 然后用户可以点“下一首”继续玩。
第五步,跑起来试试,修修补补。
写完代码肯定得跑跑看。果然,实际跑起来发现不少小问题。比如随机选歌有时候会重复选到刚放过的,得加个机制避免一下。还有就是答案比对那里,一开始想简单了,后来发现有些歌名可能带特殊符号,或者用户输入习惯不一样,又稍微调整了下比对的规则,让它更“宽容”一点。
的效果
折腾了几天,总算是弄出来一个能跑起来的“猜你歌”小游戏了。界面挺朴素的,功能也基础,就是播放、猜、下一首、计分这几样。歌曲库也不大,就我电脑里那点存货。不过自己从头到尾搞出来的,过程还挺有意思的。虽然比不上外面那些成熟的应用,但自己玩玩或者跟朋友偶尔乐呵一下还是可以的。重点是实践了一把,把想法变成了个能摸得着的东西,这就挺