关于微信小程序题库随机生成题目,要求题目不能重复出现。

话不多说直接上代码,啥效果自己看吧:

wxml:

<view class="contain" style="background:url('https://wx4.sinaimg.cn/mw690/006aTqkAgy1fqbxen973gj30g20sgdk1.jpg'); background-size: cover">
<view  style="position:absolute; font-size:14px; left:10%; top:6%; right:10%; height:60rpx; line-height:60rpx; background:url('https://wx4.sinaimg.cn/mw690/006aTqkAgy1fqbxj98xa4j30vh0hq0tv.jpg'); background-size: cover">计时:{{time}}(注:每人5分钟的答题时间)
</view>
<view class="question"><text>题目:{{questionbody}}</text>
<button bindtap='disp' id='A' data-num="{{Ans}}" data-count="{{count}}" data-bindcount="{{bindcount}}" data-rightcount="{{rightcount}}" data-errorcount="{{errorcount}}" style="position:absolute; top:300rpx; background:url('https://wx4.sinaimg.cn/mw690/006aTqkAgy1fqbxj98xa4j30vh0hq0tv.jpg'); background-size: cover"><text>{{A}}</text>
</button>
<button bindtap='disp' id='B' data-num="{{Ans}}" data-count="{{count}}" data-bindcount="{{bindcount}}" data-rightcount="{{rightcount}}" data-errorcount="{{errorcount}}" style="position:absolute; top:400rpx; background:url('https://wx4.sinaimg.cn/mw690/006aTqkAgy1fqbxj98xa4j30vh0hq0tv.jpg'); background-size: cover"><text>{{B}}</text>
</button>
<button bindtap='disp' id='C' data-num="{{Ans}}" data-count="{{count}}" data-bindcount="{{bindcount}}" data-rightcount="{{rightcount}}" data-errorcount="{{errorcount}}" style="position:absolute; top:500rpx; background:url('https://wx4.sinaimg.cn/mw690/006aTqkAgy1fqbxj98xa4j30vh0hq0tv.jpg'); background-size: cover"><text>{{C}}</text>
</button>
<button bindtap='disp' id='D' data-num="{{Ans}}" data-count="{{count}}" data-bindcount="{{bindcount}}" data-rightcount="{{rightcount}}" data-errorcount="{{errorcount}}" style="position:absolute; top:600rpx; background:url('https://wx4.sinaimg.cn/mw690/006aTqkAgy1fqbxj98xa4j30vh0hq0tv.jpg'); background-size: cover"><text>{{D}}</text>
</button>
<view class="count" style="position:absolute; top:700rpx; background:url('https://wx4.sinaimg.cn/mw690/006aTqkAgy1fqbxj98xa4j30vh0hq0tv.jpg'); background-size: cover">当前得分:{{count}}分(注:答对得5分。答错扣2分!)
</view>
<button bindtap="refresh" style="position:absolute; width:46%; top:850rpx; background:url('https://wx4.sinaimg.cn/mw690/006aTqkAgy1fqbxj98xa4j30vh0hq0tv.jpg'); background-size: cover"><text>下一题</text>
</button>
<view class="show" style="position:absolute; top:850rpx; left:55%; background:url('https://wx4.sinaimg.cn/mw690/006aTqkAgy1fqbxj98xa4j30vh0hq0tv.jpg'); background-size: cover">{{show}}
</view>
</view>
</view>

js:

// pages/game/game.js
var app = getApp();
function two_char(n) {
  return n >= 10 ? n : "0" + n;
}
Page({

  /**
   * 页面的初始数据
   */
  data: {
    questions: ['运筹学的基本特点不包括(     )。', '建立运筹学模型的基本步骤不包括(     )。', '截集中一切弧的容量之和称为(     )。', '网络图中,LS用来表示(     )。', '对策的分类中,按(     )来分,可以分为零和对策与非零和对策。', '线性规划问题中决策变量应为(     )。', '线性规划问题的数学模型由目标函数、约束条件和(     )三个部分组成。', '典型的无概率决策准则,不包括(     )。', '以下说法中不正确的为(     )。', '(     )就是研究对策行为中斗争各方是否存在着最合理的行动方案,以及如何找到这个合理的行动方案的数学理论和方法。', '当某个非基变量检验数为零,则该问题有(     )。', '假设对于一个动态规划问题,应用顺推法以及逆推解法得出的最优解分别为P和D,则有(     )。', '下列有关线性规划问题的标准形式的叙述中错误的是(     )。', '人类进入21世纪,英国广播公司(BBC)在全球范围内进行“千年思想家”网评,名列 榜首的是(    )', '马克思主义产生于(   )', '马克思主义公开问世的标志性著作是(   )', '马克思主义的创始人是(   )', '马克思主义哲学区别于一切旧哲学的最主要最显著的特征是(  )', '在平面直角坐标系中,已知点A(0,a),抛物线y=-a(x-a)2+b与x轴交于B、C两点(|OB |<|OC |),顶点为D,且AD//BC,tan∠ABO=3/2,则满足条件的抛物线有(    ).', '随着大数据产业的发展,贵阳市逐步进入了全城免费WiFi(无线局域网)时代,市民可在城区内用智能手机与互联网免费连接。手机接收的网络信息是通过(  )', '熬制糖水的时间越长,糖水的味道越甜。这是由于熬制过程中,糖水内的水经过下列哪种物态变化所致(   )','在中考期间,为了给考生营造一个良好的考试环境,以下措施属于控制噪声源的是(    )'],
    questionsA: ['A.考虑系统的整体优化', 'A.明确目标', 'A.最大流', 'A.一项活动的最晚开始时间', 'A.局中人的数目多少', 'A.连续变量', 'A.非负条件', 'A.乐观准则', 'A.完成各个作业需要的时间最长的路线为关键路线', 'A.博弈论', 'A.无解', 'A.P>D', 'A.目标函数求极大', 'A.马克思 ', 'A.18世纪90年代', 'A.《共产党宣言》', 'A.马克思和亚当·斯密', 'A.阶级性', 'A.1条', 'A.电磁波传递', 'A.凝固','A.将教室的窗户玻璃更换为隔音玻璃'],
    questionsB: ['B.多学科交叉与综合', 'B.描述问题', 'B.截量', 'B.一项活动的最晚完成时间', 'B.策略的数目是否有限', 'B.离散变量', 'B.顶点集合', 'B.折中准则', 'B.关键路线上的作业称为关键作业', 'B.运输问题', 'B.无穷多最优解', 'B.P<D', 'B.约束条件全为等式', 'B.爱因斯坦', 'B.19世纪40年代', 'B.《德意志意识形态》', 'B.马克思和戴维·李嘉图', 'B.革命性', 'B.2条', 'B.铜质导线传递', 'B.升华','B.停止校园周边工地的施工'],
    questionsC: ['C.模型方法的应用', 'C.运算求解', 'C.最小截量', 'C.一项活动的持续时间', 'C.局中人参与对策时相互之间的关系模型方法的应用', 'C.整数变量', 'C.最优解', 'C.等可能准则', 'C.所有关键作业的总时差为0 ', 'C.最大流问题', 'C.退化解', 'C.P=D', 'C.约束条件右端常数项全为正', 'C.达尔文', ' C.19世纪70年代', ' C.《资本论》', 'C.马克思和恩格斯', 'C.实践性', ' C.3条', 'C.声波传递', 'C.汽化','C.在教室内安装噪声监测仪'],
    questionsD: ['D.属于行为科学', 'D.设置假设条件', 'D.最大截量', 'D.一项活动的最早开始时间', 'D.支付函数的特点', 'D.随机变量', 'D.决策变量', 'D.最大后悔值准则', 'D.以上说法均不正确', 'D.最短路问题', 'D.惟一最优解', 'D.不确定', 'D.变量取值全为非负', ' D.牛顿', 'D.19世纪90年代', 'D.《神圣家族》', 'D.马克思和费尔巴哈', ' D.科学性', 'D.4条', 'D.高压线传递', 'D.熔化','D.在校园绿化带多植树'],
    answer: ['D', 'D', 'B', 'A', 'D', 'A', 'D', 'D', 'D', 'A', 'B', 'C', 'B','A','B','A','C','C','D','A','C','B'],
    questionbody:'',
    A:'',
    B:'',
    C:'',
    D:'',
    Ans:'',
    show:'',
    countj:true,
    bindcount:0,
    errorcount:0,
    rightcount:0,
    count: 0,
    time:'',
    index:'',
  },

  /*设置计数器5分钟*/
  onLoad: function (options) {
    var sec = options.sec;
    var that = this;
    var si = setInterval(function () {
      if (sec > 0) {
      sec--;
      var date = new Date(0, 0)
      date.setSeconds(sec);
      var h = date.getHours(), m = date.getMinutes(), s = date.getSeconds();
      that.setData({
        time: two_char(h) + ":" + two_char(m) + ":" + two_char(s)
      })
      }
      else {
        var count = that.data.count;
        if (that.data.bindcount==0){
        wx.showModal({
          title: '提示:',
          showCancel: false,
          content: '您还未答题,请重新作答',
          success:function(){
            wx.switchTab({
              url: '../../pages/game/index',
            })
          }
        })
        clearInterval(si);
        }
        else{
        clearInterval(si);
        app.globalData.bindcount=that.data.bindcount;
        app.globalData.errorcount = that.data.errorcount;
        app.globalData.rightcount = that.data.rightcount;
        wx.redirectTo({
          url: '../../pages/game/end?count='+count,
        })
        }
      }
    }, 1000);
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
  this.refresh();
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
  
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
  
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
  
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
  
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
  
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
  
  },
  refresh:function(){
  var that =this;
  var questions = that.data.questions;
  var questionsA = that.data.questionsA;
  var questionsB = that.data.questionsB;
  var questionsC = that.data.questionsC;
  var questionsD = that.data.questionsD;
  var answer =that.data.answer;
  var index = Math.floor(Math.random() * (questions.length - 1));
  if (questions.length > 0) {
     this.setData({
      questionbody: questions.splice(index, 1),
      A: questionsA.splice(index, 1),
      B: questionsB.splice(index, 1),
      C: questionsC.splice(index, 1),
      D: questionsD.splice(index, 1),
      Ans:  answer.splice(index, 1),
      questions: questions,
      questionsA: questionsA,
      questionsB: questionsB,
      questionsC: questionsC,
      questionsD: questionsD,
      answer: answer,
      index: index,
      show: '',
      countj: true,
    })
  }
  else{
    wx.showModal({
      title: '温馨提示',
      content: '没题了',
    })
  }
  },
  disp:function(e){
    var id =e.currentTarget.id;
    var num = e.currentTarget.dataset.num;
    var count = e.currentTarget.dataset.count;
    var bindcount = e.currentTarget.dataset.bindcount;
    var rightcount = e.currentTarget.dataset.rightcount;
    var errorcount = e.currentTarget.dataset.errorcount;
    if(this.data.countj){
    if(id==num){
      this.setData({
        show:'正确!',
        count: count + 5,
        countj: false,
        bindcount: bindcount+1,
        rightcount: rightcount+1,
      })
    }
    else{
      this.setData({
        show: '错误!' + '答案:'+num,
        count: count -2,
        countj: false,
        bindcount: bindcount+1,
        errorcount: errorcount+1,
      })
    }
    }
    }
})
wxss:
page{  
  background-color: blue;  
  width:100%;  
  height:100%;  
}
.contain{
  position: absolute;
  width:100%;  
  height:100%;
}
.question{
  position: absolute;
  top: 15%;
  left: 10%;
  right: 10%;
  font-size: 18px;
}
.question button{
  height: 60rpx;
  width: 100%;
  font-size: 13px;
}
.count{
  height: 80rpx;
  line-height: 80rpx;
  width: 100%;
  font-size: 13px;
  text-align: center;
}
.show{
  height: 60rpx;
  line-height: 60rpx;
  width: 46%;
  font-size: 13px;
  text-align: center;
}

  • 7
    点赞
  • 70
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值