如何做一个微信答题小程序(一)

简介: 嗨!大家好,我是小蚂蚁。从今天开始,我将连续使用几篇文章分享一下如何制作一个微信答题小程序。使用的工具是微信小游戏制作工具,听起来这是一个做微信小游戏的工具,但是除了做游戏之外,我们还可以用它来做小程序。

嗨!大家好,我是小蚂蚁。从今天开始,我将连续使用几篇文章分享一下如何制作一个微信答题小程序。使用的工具是微信小游戏制作工具,听起来这是一个做微信小游戏的工具,但是除了做游戏之外,我们还可以用它来做小程序。


这个将要制作的答题小程序包含如下的功能:

  • 可编辑的题库,包含单选题库和多选题库。
  • 答题开始前可进行自定义设置,例如单选题数量,多选题数量以及答题时间。
  • 每次答题的题目会从不同的题库中随机的抽取,由这些随机抽取的题目组成一次答题过程。
  • 所有题目回答完毕后,可提交查看统计结果。
  • 可回看此次答题过程中的所有题目以及答题情况。

今天我们就从题库表格的设计开始,分享一下如何设计一个答题小程序的表格,以及如何从题库中随机的抽取指定数量的题目。


单选题库表格设计



对于一个答题小程序来讲,最合适当作题库的数据形式当然要属表格了。表格适合用于数据的组织和管理,对于单选题库来讲,我们使用如下的数据表格。

640.png

第 1 列是题目,第 2~5 列是题目的 4 个选项,第 6 列是当前题目的答案。在这样的一个表格中,我们只需要获取任意的一行数据,就能够获取到一道题目的完整信息,包括题目,选项和答案。


在微信小游戏制作工具中,我们可以点击数据区中的“新建表格”按钮,创建一个这样包含 6 列的表格。


640.png


这里有一点儿需要注意了,就是表格的第 1 行,我们这里是把它当作表头了,这样方便我们在编辑题库时,知道哪一列对应的是什么。所以,真正的题目是从表格的第 2 行开始的。


多选题库表格设计



跟单选题库的表格设计类似,多选题库表格多了 2 列,也就是多了 2 个题目选项。

640.png

这里我们为多选的题目预制了 6 个题目选项,在真实的题目中可能会出现这样的情况,例如一道多选题,只有 ABCD 四个选项,那么多余的这两个选项如何处理呢?


这里我们可以设置一个约定:如果当前列没有选项的话,就在当前的位置填写一个 0。这样在我们读取题目信息进行展示时,如果遇到一个选项是 0,就不显示该选项。


再次点击数据区新建表格按钮,创建一个包含 8 列的多选题库表格。


640.png


对于一个答题小程序或者小游戏来讲,表格设计好了,基本上就完成了一半了。我们回看一下上方的这两个简单的表格,利用表格的行和列,非常方便的就能够将每一道题(一行)和每一道题目中的所有信息(一列)区分出来。我们根据来获取题目,然后根据来获取题目中的具体信息(题目,选项,答案)。


从题库中随机抽取指定数量的题目



题库表格设计好了之后,接下来要做的就是将表格中的数据取出,然后在小程序中以合适的方式展现出来。一个题库中通常会包含很多道题目,我们通常不会在一次答题过程中将题库中的所有题目都做一遍,而是从中取出一些题目进行作答。随机抽取题目是一种非常好的方式,每次都从题库中随机抽取出一定数量的题目,这样每次答题过程中既能遇到一些旧的题目作为巩固,也能够遇到一些新的题目作为新知。


在进行题目抽取之前,需要先了解一个概念,叫做题目编号。这个题目编号就相当于为每一道题目设置一个标志,这个标志是唯一的,也就是说题目编号题目是一一对应的,只要有了题目编号,就能够找到那道唯一的题目。


那么题目编号在哪里呢?


640.png


题目编号其实就是题库表格中对应的题目的行号,看一下,这个行号跟题目是不是一一对应的关系呢?比如说当前获取了题目编号 7,根据这个行号,我就能拿到对应“谁会教你做游戏呀?”的题目了。


有了题目编号这个概念了,我们再来看一下随机从题库表格中抽取题目这个操作,有必要直接将题目的整行信息都抽取出来吗?没有必要,我们只需要随机抽取到指定数量的题目编号就好了,然后在答题时根据当前的题目编号读取到题目的具体信息来显示。


接下来这个问题就变的简单了,随机抽取指定数量的题目,其实就是在指定的数值区间内抽取指定数量的不重复的数字。例如,我们当前的题库中有 100 道题,编号从 2~101,随机抽取 10 道题,其实要做的就是从 2~101 这 100 个整数中随机的取出 10 个不重复的整数。


接下来,我们就实现一下这个在指定区间内随机抽取不重复的整数的功能,实现这个功能,需要借助列表。


首先,创建一个“随机选题列表”,这个列表用于存放随机抽取的题目编号。之后答题的时候,我们从这个列表中挨个取出题目编号,显示对应的题目即可。


640.png


然后,创建一个“随机数”的局部变量,用于记录当前的随机数。


640.png


最后,看一下具体的积木逻辑。


41834828991438ea2728dd10e22e0c8e.png


这里需要注意的一个地方是在题库表格中,题目是从第 2 行开始的,所以这里随机数的范围也是从 2 开始的。我们利用一个“随机选题列表”来对当前的随机数进行过滤,如果已经在列表中了,就重新进行随机,只有不在列表中的随机数才能够插入到列表中,这样就实现了获取不重复的随机数的功能了。


总结一下,这一节我们设计并创建了两种不同的题库表格,并且实现了从题库中抽取指定数量的不重复的题目编号的功能。下一节我们将利用这些随机抽取到的题目编号,获取题目的信息,然后以合适的方式展示出来。


相关文章
|
5天前
|
存储 小程序 前端开发
【微信小程序 - 工作实战分享】1.微信小程序发送手机短信验证码(阿里云)
【微信小程序 - 工作实战分享】1.微信小程序发送手机短信验证码(阿里云)
12 0
|
13天前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的微信食堂线上订餐小程序的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的微信食堂线上订餐小程序的详细设计和实现(源码+lw+部署文档+讲解等)
|
18天前
|
小程序 前端开发 JavaScript
微信小程序|铁路订票平台小程序的设计与实现
微信小程序|铁路订票平台小程序的设计与实现
|
18天前
|
小程序 前端开发 JavaScript
微信小程序|音乐播放器小程序设计与实现
微信小程序|音乐播放器小程序设计与实现
|
18天前
|
小程序 前端开发 JavaScript
微信小程序|网上花店微信小程序的设计与实现
微信小程序|网上花店微信小程序的设计与实现
|
18天前
|
小程序 前端开发 JavaScript
微信外卖小程序
微信外卖小程序
|
18天前
|
小程序 前端开发 JavaScript
微信小程序|英语学习交流平台小程序
微信小程序|英语学习交流平台小程序
|
18天前
|
小程序 前端开发 JavaScript
微信小程序|springboot“口腔助手”小程序的设计与实现
微信小程序|springboot“口腔助手”小程序的设计与实现
|
18天前
|
小程序 前端开发 测试技术
微信小程序|ssm基于微信小程序的高校课堂教学管理系统
微信小程序|ssm基于微信小程序的高校课堂教学管理系统
|
11天前
|
小程序 前端开发 Android开发
Android企业微信分享到小程序
Android企业微信分享到小程序
14 0

相关实验场景

更多