嗨!大家好,我是小蚂蚁。这一节里,我们继续分享如何在答完题后进行答案的比对,以及如何实现一个回顾功能。

在上一节里我们提到过,为了记录玩家的答题数据,我们创建了一个新的表格——玩家答题选项表,里面记录的是玩家回答的题目编号,以及对应的答案。当所有的题目都回答完毕,玩家选择提交后,其实我们要做的,就是逐个的将“玩家答题选项表”中的数据与题库中的答案数据进行比对,来检查题目是答对还是答错。

因为题目中包含着单选题和多选题,所以针对不同的题型,需要做不同的判断处理。

单选题答案对比

首先来看一下单选题的答案对比。

单选题的对比比较简单,因为单选题的答案只包含 1 个字符,我们只需要对比玩家选择的选项与题库中正确答案的选项是否相同,即可判断当前的题目回答是否正确。

注意,在回答正确后,我们将“玩家答题选项表”对应的第 3 列的数字设置为 1。这里为“玩家答题选项表”又增加了一列,这一列用来记录当前这道题的回答结果。

在第三列的内容中我们做了这样的约定,如果当前的题目答对,则设置为 1。如果答错,又分为两种,一种是错选,设置为 0,一种是多选题中的漏选,设置为 2。第三列的内容我们需要在回顾功能中用到。

多选题答案对比

多选题的答案对比相对比较复杂,因为会涉及到这样的情况,例如当前题目的答案是 ABC,但是“玩家答题选项表”中对于多选题回答是根据用户当前选择选项的顺序记录的,也就是说如果用户先选了 B,后选了 C ,最后选了 A,那么记录的用户答题数据是 BCA。很明显如果直接将两个字符串做比较的话 “ABC”是不等于“BCA”的。所以,我们无法拿整个字符串做比较。

那该如何对比呢?假设当前答案是 ABC,玩家选择的是 BCA。我们可以这样进行比对,依次从玩家的选择中取出一个字符,然后看看它是否包含在正确答案中。过程就是这样:首先取出 B,看看 B 是否包含在 ABC 中,接着取出 C,看看 C 是否包含在 ABC 中,最后取出 A,看看 A 是否包含在 ABC 中。只有玩家选择中的每一个字符都包含在正确答案中,才能说明当前的回答正确。

但是,请再看一遍上方的比对逻辑,是否存在问题呢?如果答案是 ABCD,当前选了 ABD,按照上方的比对逻辑,ABD 三个字符确实答案中都有包含,但是很明显这道题没有答对,而是漏选了。

所以,对于多选题的比对,除了判断每个字符必须包含在正确答案中之外,还需要一个条件,就是当前比对正确的次数要等于正确答案的字符数。还以上方的正确答案 ABCD,玩家选择了 ABD 为例,共进行了 3 次比对,3 次比对都正确,但是因为不符合第二个条件,就是 3 次正确比对不等于正确答案的字符数 4,所以当前题目就不能判定为正确。

理解了上方的这个比对方法,我们再来看一下多选题答案比对的积木逻辑。

分为两个步骤,首先,逐个拿用户回答中的字符去与正确答案进行比对,其次对于满足第一个条件的选项,再进行第二个条件判断,只有同时满足两个条件,才能判定为回答正确,否则要么答错,要么漏选。

最后,在完成了所有的题目判断后,可以为用户显示最终的答题结果,预览一下。

答题回顾功能的实现

要实现答题回顾功能,我们需要借助的最重要的一张表格就是“玩家答题选项表”。

再来看一下这张重要的表格,它有 3 列,第 1 列记录的是当前题目编号,第 2 列记录的是当前题目玩家的选择,第 3 列记录的是结果。答题回顾功能的作用就是呈现出每一道题目的回答情况,然后提示题目是答对还是答错,如果答错的话,提示正确答案是什么。最后,针对多选题的答错情况,还能借助表格的第 3 列给出进一步的提示,是错选还是漏选

来看一下回顾模式的具体实现,原有的答题过程无需修改,只需要在“选项”中做一些与回顾模式有关的处理即可。

首先,在创建选项时,增加如下的处理。

这里我创建了一个“全局-回顾模式”的全局变量,用于标识当前是否是回顾模式。如果是回顾模式的话,向所有的选项发送一个“答案校对”的通知。

接着来看一下选项在接收到“答案校对”的通知后,都做了些什么。

这段长长的积木逻辑做了这样的一些事情:

对于单选题,如果回答正确,就将选项设置为绿色,如果回答错误,就讲选项设置为红色,并且将正确选项设置为绿色。

对于多选题,对于选对以及漏选使用的是相同的处理方式,就是都将所有的正确选项设置为绿色,对于错选的选项,将其显示为红色。

最后,我们还增加了一个“答题结果提示”,提示用户当前题目的回答结果。

它的积木逻辑如下。

根据“玩家答题选项表”第 3 列的数据,设置是答对错选还是漏选

最后,来看一下效果。

好了,如何做一个微信答题小程序系列的教程到此就结束了。可见,微信小游戏制作工具除了能够做小游戏之外,也能够用于开发微信小程序。对于一个答题小游戏或者小程序来讲,其实实现原理并不复杂,实现起来也不算太难。如果你能把这个系列教程好好的研究明白了,那么以后所有的答题游戏或者应用对你来说就都不是问题了。原理搞明白了,吃透一个,就能一通百通了。


我是会做游戏也会教你做游戏的小蚂蚁,关注公众号【小蚂蚁教你做游戏】,备注“学习做游戏”可免费领取全网最全的微信小游戏开发教程资料。

零基础做一个微信答题小程序(四)相关推荐

  1. 零基础做一个微信答题小程序(二)

    嗨!大家好,我是小蚂蚁.在上一节里,我们了解了如何设计答题小程序中的题库--表格,并且知道了如何从题库中随机抽取指定数量的不重复的题目编号.这一节,我们将分享一下如何利用这些题目编号,获取到指定的题目 ...

  2. 零基础做一个微信答题小程序(三)

    嗨!大家好,我是小蚂蚁.今天我们来分享一下如何实现答题功能,包含单选题和多选题的答题,以及如何记录玩家的答题数据. 单选题答题处理 对于单选题来讲,每个选项之间是互斥的,也就是说用户只能从 ABCD ...

  3. 微信小程序|基于小程序+C#制作一个考试答题小程序

    基于小程序+C#制作一个考试答题小程序打破传统线下考试答题的边界线问题,使考试不用再局限与某个统一的场所,只要有设备,哪里都能考试. 一.小程序

  4. 用云开发搭建的微信答题小程序v1.0

    近来百无聊赖,遂抽空做了一个答题小程序的系列教程,以及分享源码,是用云开发搭建的微信答题小程序v1.0. 界面截图 该答题小程序大致如下图: 结构层级 主要程序由3个界面组成,分别是index,tes ...

  5. 如何利用微信答题小程序实现盈利呢

    之前,有谈过关于微信公众号的盈利方式有哪些.作为公众号和小程序开发者,现在来浅谈一下微信答题小程序的盈利方式大概有哪些吧. 1.流量主收益 流量主收入较多,开通流量主之后,在适合的页面适合的位置可以放 ...

  6. 从0到1使用python开发一个半自动答题小程序

    从0到1使用python开发一个半自动答题小程序 前言 最近每天都有玩微信读书上面的每日一答的答题游戏,完全答对12题后,可以瓜分无限阅读卡.但是从小就不太爱看书的我,很难连续答对12道题,由此,产生 ...

  7. 微信答题小程序开发功能概述

    微信答题小程序仿头脑王者源码是一款专业性的答题小程序,(软著登记号:4078210号)主要功能有:每日签到.排位赛.好友PK.每日答题.大奖赛,群比赛3V3 5V5以及道具商店等.完整题型库.100多 ...

  8. 微信小程序答题赢红包 微信答题小程序抢红包,答题领微信零钱红包,答题红包小程序,可以自己出题考试的小程序

    使用答题小程序考试系统,可以在线出考题,让别人参与考试.考完以后,用户能看到自己的考试成绩,其他人点击这场考试的排行榜也能看到整场考试所有参与考试人的分数和排名情况. 想要让答题更有趣? 还可以设置答 ...

  9. ai绘画知识:做一个AI绘画小程序要花多少钱?

    ai绘画彻底火了,赛道一度火过了当年的短视频行业.目前AI绘画以依托于微信小程序为主.如数画.意间.无界版图.灵境.6PEN.盗梦师这些AI绘画小程序清一色是10月份后上线.仅仅两月时间,但都已圈的用 ...

最新文章

  1. python之接口开发
  2. log4j显示hibernate sql参数的配置
  3. C#调用非托管C++DLL:直接调用法
  4. linux I/O--I/O多路复用--详解(四)
  5. 期末总结:LINUX内核分析与设计期末总结
  6. 看完这篇,Oracle数据库运维不用愁
  7. memcpy后数据不对_详解Redis 的 5 种基本数据结构:
  8. 统计学最全脑图,你只管打开它,剩下的交给「卧槽」
  9. python中pickle模块的用法_Python中json模块和pickle模块的简单介绍(附示例)
  10. python求一组数的最大值_python快速求一个数组的最大值/最小值及其索引
  11. java 流式_Java开发笔记(七十二)Java8新增的流式处理
  12. 做不完了吧,做不出了吧!
  13. Red5开发第一步-Hello World
  14. Android系统生成jks签名
  15. 一篇文章带你登顶 MacBook高效工作环境配置
  16. 计算机专业英语pdf词汇百度盘,计算机专业英语词汇词.pdf
  17. vue中headers是什么_vue在响应头response中获取自定义headers操作
  18. layui 模板判断_layui之模板弹框
  19. python清空画布_Python3 tkinter基础 Canvas delete 删除画布中的所有图形
  20. 微信用户与第三方网站用户的绑定策略(实现用户第一次登陆后永久免登陆)

热门文章

  1. 中国移动校园WLAN客户端及使用方法
  2. pom.part.lock (没有那个文件或目录)
  3. java 获取当前月日_Java获取当前时间年月日的方法
  4. IGKBoard(imx6ull)-ADC编程MQ-2烟雾传感器采样
  5. 三坐标测头标定原理和标准球实操
  6. 硬盘坏了?真坏了?我帮你呀!
  7. Python编程快速上手--8.9.1 扩展多重剪贴板、 8.9.2 疯狂填词、8.9.3 正则表达式查找
  8. Bancor协议源码分析
  9. E-R图(实体-关系图)的绘制步骤
  10. 蓄能电源PSE认证,CE认证,FCC认证,ROHS认证