答题类小程序总结1

7月份做的一个公司的微信小程序项目,主要内容就是知识问答,答题分为两种。第一种就是随机挑战,表现为用户和模拟对手进行pk。第二种就是邀请好友进行pk。今天就先分享一下随机挑战的逻辑吧!(因为该小程序活动时间已经结束,这里就不放演示图给大家了)

第一步:创建模拟对手

所谓的模拟对手,简单理解为 模拟出 时间答题+回答正确率 。这样子是不是就很容易理解了讷。这里我用的就是使用数组管理,在数组中规定几组 答题时间和回答正确率。如下代码所示
var robotData = [
//minTime机器人至少多少秒后才能作答时间 randmTime机器人答题随机时间范围时间 accuracy回答正确率
{ “minTime”: 1500, “randmTime”: 3500, “accuracy”: 0.5 },
{ “minTime”: 800, “randmTime”: 3200, “accuracy”: 0.6 },
{ “minTime”: 700, “randmTime”: 3000, “accuracy”: 0.7 },
{ “minTime”: 600, “randmTime”: 2800, “accuracy”: 0.8 },
{ “minTime”: 500, “randmTime”: 2500, “accuracy”: 0.9 }
]

第二步:哪个模拟对手来回答问题

采用定时器的方法随机这个数组 。这个不用过多解释。示例代码如下所示:
var inter;
//level机器人等级 number 0-5
//callBackFun 回调函数 function 回调传回 0=选择错误答案 1=选择正确答案

function startRobotF(level, callBack)
{
if (inter) { clearInterval(inter);inter = null}
var startTime = new Date().getTime();
var robotTime = robotData[level].minTime + Math.random() * robotData[level].randmTime; //机器人答题用时
inter = setInterval(function ()
{
if (new Date().getTime() - startTime >= robotTime)
{
if (Math.random() < robotData[level].accuracy)
{
callBack(1);//回答正确
}
else {
callBack(0);//回答错误
}
}
}, _tm)
}
嘻嘻~~是不是很简单,如果大佬有更厉害的想法记得分享给我哦,拜了个呗。(邀请好友模块下一次也会分享给大家)

你可能感兴趣的:(微信小程序)