|
本帖最后由 柿霖不是林 于 2017-3-7 14:38 编辑
undefined好像我小时候玩的七巧板;
[mw_shl_code=html,true]//index.js
//获取应用实例
var app = getApp()
var mapNumber = ['1','2','3','4','5','6','7','8','']
var emptyIndex = 8
var moveFirstPoint
var moveLastPoint
Page({
data: {
time:'00:00\n',
num: mapNumber
},
//事件处理函数
bindViewTap: function() {
wx.navigateTo({
url: '../logs/logs'
})
},
onLoad: function () {
console.log('onLoad')
var that = this
that.initMap()
},
initMap: function() {
console.log('initMap')
var tempNumbers = ['1','2','3','4','5','6','7','8','']
for(var i = 0; i < 10; i++){
var indexA = Math.round(Math.random()*7)
var indexB = Math.round(Math.random()*7)
console.log('swap:' + indexA + '<->' + indexB)
var tempNum = tempNumbers[indexA]
tempNumbers[indexA] = tempNumbers[indexB]
tempNumbers[indexB] = tempNum
}
mapNumber = tempNumbers
emptyIndex = 8
this.setData({
num:mapNumber
})
},
checkresult: function() {
var win = true;
for(var i = 0; i < 8; i++){
if((i+1).toString() != mapNumber){
win = false;
break;
}
}
if(win){
wx.showToast({
title: '成功',
icon: 'success',
})
var that = this
setTimeout(function(){
that.initMap();
},2000)
}
},
swapMap: function(indexA,indexB){
var tempNum = mapNumber[indexA]
mapNumber[indexA] = mapNumber[indexB]
mapNumber[indexB] = tempNum
this.setData({
num:mapNumber
})
},
movedirection: function(direction){//1:left, 2:right, 3:up, 4:down
console.log('move direction' + direction)
var newIndex = -1
if(direction == 1 && (emptyIndex%3) != 2){
newIndex = emptyIndex + 1
}else if(direction == 2 && (emptyIndex%3 != 0)){
newIndex = emptyIndex - 1
}else if(direction == 3 && (emptyIndex/3 < 2)){
newIndex = emptyIndex + 3
}else if(direction == 4 && (emptyIndex/3 != 0)){
newIndex = emptyIndex - 3
}
if(newIndex >= 0){
this.swapMap(newIndex,emptyIndex)
emptyIndex = newIndex
this.checkresult()
}
},
handletouchmove: function(e){
if(!moveFirstPoint){
moveFirstPoint = e.touches[0]
}else{
moveLastPoint = e.touches[0]
}
},
handletouchend: function(e){
if(moveFirstPoint && moveLastPoint){
var moveH = moveFirstPoint.pageX - moveLastPoint.pageX
var moveV = moveFirstPoint.pageY - moveLastPoint.pageY
moveFirstPoint = null
moveLastPoint = null
if(Math.abs(moveH) < 30 && Math.abs(moveV) < 30){
console.log('move ignore');
}
if(Math.abs(moveH) > Math.abs(moveV)){
//h swipe
if(moveH < 0){
//swipe right
this.movedirection(2)
}else{
this.movedirection(1)
}
}else{
//V swipe
if(moveV < 0){
//swipe down
this.movedirection(4)
}else{
this.movedirection(3)
}
}
}
},
handletouchcancel: function(e){
moveFirstPoint = null
moveLastPoint = null
},
canvashandletouchmove: function(e) {
}
})[/mw_shl_code]
|
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|