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

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

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

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


单选题库表格设计

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

如何做一个微信答题小程序(一)_随机数

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

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

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

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


多选题库表格设计

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

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

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

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

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

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

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


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

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

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

那么题目编号在哪里呢?

如何做一个微信答题小程序(一)_随机数_05

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

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

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

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

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

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

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

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

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

如何做一个微信答题小程序(一)_随机数_08

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

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


我是会做游戏也会教你做游戏的小蚂蚁,想学习做游戏的话,关注我就对啦!欢迎关注公众号【小蚂蚁教你做游戏】,领取全网最全的微信小游戏开发原创教程资料。

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