HTML计时拼图游戏代码,使用vue编写一个点击数字计时小游戏

使用vue编写一个点击数字计时小游戏,列入你在文本框中输入3,点击开始会生成一个3行3列的表格,表格数据为1-9随机排列,这时候从1开始点击,按顺序点到9,当按正确顺序点击完毕,会提示所用的时间,如果顺序没有按对,会提示游戏结束.

2.jquery是在面向dom操作,而vue是面向数据操作的,所以使用vue最好不要去操作dom,尽量发挥出vue的独到之处,(如果使用过angularjs可能更容易理解)

3.建立一个普通的html文件,在头部引用vue的源文件

4.简单的页面

1)首先v-model,数据的双向绑定,根据你文本框输入的值变化而变化.

2)@click绑定一个click事件,其中@是v-on的缩写.当然绑定事件可以带参数例如@click='time(item)'.

3)v-for="(index, item) in list",循环数组,index为数组的角标,item为数组中的值.

可以看一下vue文档进一步了解.

输入数字,点击开始,会生成对应输入数字的表格,从表格中数字1开始点击,按顺序点击到最后....

开始

{{item}}

5.vue操作

1)首先要new出一个Vue的实例,el绑定你的dom,这里用id作为标识

2)data这是vue要操作的数据,num文本框的值(默认为2),list[]根据文本框值,生成的list,startTime点击表格的开始时间,endTime点击表格的结束时间,checkNum当前选中的数字.

3)methods中有两个方法arr用来根据文本框的值,生成一个数组,生成一个文本框值的平方长度,且不会重复的数组,数组的值为1-文本框值的平方,加入文本框的值为3,则生成的数组长度为9,数组的内容为1-9且不重复.

time计算点击的开始时间和结束时间,用check]Num来控制点击的顺序.

new Vue({

el: '#play',

data: {

num: 2,

list: [],

startTime: 0,

endTime:0,

checkNum:0

},

methods: {

arr: function() {

if(this.num > 20){

alert('数值过大,浏览器会死掉,最好不要大于20');

return;

}

this.checkNum = 0;

var arrlength = this.num * this.num;

var arr = new Array(arrlength);

var index = 0;

for(var i = 1; i <= arrlength; i++) {

//生成随机数

var num = Math.random(); //Math.random():得到一个0到1之间的随机数

num = Math.ceil(num * arrlength); //num*?的取值范围在0~?之间,使用向上取整就可以得到一个1~?的随机

if(arr[0] != 0) {

var flag = false; // 控制是否存在重复元素

// 遍历生产数组中的元素

for(var j = 0; j < arr.length; j++) {

if(num != arr[j]) {

flag = true;

} else {

flag = false;

break;

}

}

if(flag == true) {

arr[index++] = num;

} else {

// 发现有重复元素重新产生新的随机数

i--;

}

} else {

arr[index++] = num;

}

}

this.list = arr;

},

time: function(item){

if(this.checkNum+1 != item){

alert('game over');

this.checkNum = 0;

return;

}

var date = new Date();

if(item == 1){

this.startTime = date.getTime();

}

if(item == this.num * this.num){

this.endTime = date.getTime();

var useTime = ((this.endTime - this.startTime)/1000).toFixed(2);

alert('使用了'+useTime+'秒');

this.checkNum = 0;

return;

}

this.checkNum = item;

}

}

})

6.css代码

.ibutton{

margin-top: 10px;

margin-left: 10px;

color: #fff;

border: 1px solid #8a6de9;

background-color: #8a6de9;

font-size: 14px;

padding: 6px 12px;

border-radius: 7px;

width: 50px;

height: 40px;

}

7.在某些特定的场景使用vue来完成一个功能要比jquery简单的多,但是jquery还是很强大的,根据不同的场景运用不同的技术,更快更好的完成自己想要的功能.

本文已被整理到了《Vue.js前端组件学习教程》,欢迎大家学习阅读。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值