微信小程序开发的游戏《拼图游戏》
微信小程序开发的游戏《拼图游戏》
代码直接考进去就能用

pintu.js
// pintu.js
Page({ /**
* 页面的初始数据
*/
data: { }, initGame: function () {
this.setData({
cards: {
card1: { num: 3, hidden: false },
card2: { num: 7, hidden: false },
card3: { num: 5, hidden: false },
card4: { num: '', hidden: true },
card5: { num: 4, hidden: false },
card6: { num: 6, hidden: false },
card7: { num: 2, hidden: false },
card8: { num: 8, hidden: false },
card9: { num: 1, hidden: false }
}
});
}, card1: function () {
this.moveCard('1', '2');
this.moveCard('1', '4');
},
card2: function () {
this.moveCard('2', '1');
this.moveCard('2', '3');
this.moveCard('2', '5');
},
card3: function () {
this.moveCard('3', '2');
this.moveCard('3', '6');
},
card4: function () {
this.moveCard('4', '1');
this.moveCard('4', '5');
this.moveCard('4', '7');
},
card5: function () {
this.moveCard('5', '2');
this.moveCard('5', '4');
this.moveCard('5', '6');
this.moveCard('5', '8');
},
card6: function () {
this.moveCard('6', '3');
this.moveCard('6', '5');
this.moveCard('6', '9');
},
card7: function () {
this.moveCard('7', '4');
this.moveCard('7', '8');
},
card8: function () {
this.moveCard('8', '5');
this.moveCard('8', '7');
this.moveCard('8', '9');
},
card9: function () {
this.moveCard('9', '6');
this.moveCard('9', '8');
},
moveCard: function (n1, n2) {
var cards = this.data.cards;
var c1 = cards['card' + n1];
var c2 = cards['card' + n2];
if (c1.num && !c2.num) {
var num1 = c1.num;
var hidden1 = c1.hidden;
var num2 = c2.num;
var hidden2 = c2.hidden;
cards['card' + n1].num = num2;
cards['card' + n1].hidden = hidden2;
cards['card' + n2].num = num1;
cards['card' + n2].hidden = hidden1; var isGameOver = true;
for (var i = 1; i < 9; i++) {
if (cards['card' + i].num != i) {
isGameOver = false;
break;
}
} if (isGameOver) {
cards.card9.num = 9;
cards.card9.hidden = false;
} this.setData({
cards: cards
}); if (isGameOver) {
wx.showModal({
title: '恭喜',
content: '你简直太厉害了',
showCancel: false,
})
}
}
}, /**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.initGame();
}
})
pintu.json
{
"navigationBarTitleText": "《拼图游戏》",
"enablePullDownRefresh": false
}
pintu.wxml
<!--pintu.wxml--> <view class="container">
<view class="pintu-wrap">
<view class="pintu-line">
<view class="pintu-item-wrap">
<button class="pintu-item" type="primary" hidden="{{cards.card1.hidden}}" bindtap="card1">{{cards.card1.num}}</button>
</view>
<view class="pintu-item-wrap">
<button class="pintu-item" type="primary" hidden="{{cards.card2.hidden}}" bindtap="card2">{{cards.card2.num}}</button>
</view>
<view class="pintu-item-wrap">
<button class="pintu-item" type="primary" hidden="{{cards.card3.hidden}}" bindtap="card3">{{cards.card3.num}}</button>
</view>
</view>
<view class="pintu-line">
<view class="pintu-item-wrap">
<button class="pintu-item" type="primary" hidden="{{cards.card4.hidden}}" bindtap="card4">{{cards.card4.num}}</button>
</view>
<view class="pintu-item-wrap">
<button class="pintu-item" type="primary" hidden="{{cards.card5.hidden}}" bindtap="card5">{{cards.card5.num}}</button>
</view>
<view class="pintu-item-wrap">
<button class="pintu-item" type="primary" hidden="{{cards.card6.hidden}}" bindtap="card6">{{cards.card6.num}}</button>
</view>
</view>
<view class="pintu-line">
<view class="pintu-item-wrap">
<button class="pintu-item" type="primary" hidden="{{cards.card7.hidden}}" bindtap="card7">{{cards.card7.num}}</button>
</view>
<view class="pintu-item-wrap">
<button class="pintu-item" type="primary" hidden="{{cards.card8.hidden}}" bindtap="card8">{{cards.card8.num}}</button>
</view>
<view class="pintu-item-wrap">
<button class="pintu-item" type="primary" hidden="{{cards.card9.hidden}}" bindtap="card9">{{cards.card9.num}}</button>
</view>
</view>
</view> <view class="btn-wrap">
<button type="warn" bindtap="initGame">重新开始</button>
</view>
</view>
pintu.wxss
/* pintu.wxss */
.container {
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-between;
padding: 20px 0 0;
box-sizing: border-box;
color: #4e4b4b;
}
.btn-wrap {
width: 80%;
padding: 20px 0;
text-align: center;
margin: auto;
}
.pintu-wrap {
width: 90%;
align-items: center;
}
.pintu-line {
display: flex;
}
.pintu-item-wrap {
height: 100px;
width: 30%;
margin: 5px;
}
.pintu-item {
line-height: 100px;
height: 100%;
width: 100%;
}
微信小程序开发的游戏《拼图游戏》的更多相关文章
- 微信小程序开发(5) 2048游戏
在这篇微信小程序开发教程中,我们将介绍如何使用微信小程序开发2048小游戏. 本文主要分为两个部分,小程序主体部分及小游戏页面部分 一.小程序主体部分 一个小程序主体部分由三个文件组成,必须放在项目的 ...
- 微信小程序开发详解——小程序,大颠覆!
微信小程序开发 联系 苏念 188.1414.7927 微信小程序系统开发 微信新功能开发 小程序开发 小程序怎么开发 app小程序开发 简化小程序开发 微信小程序定制 小程序制作 开发微信小程序 ...
- 微信小程序开发之选项卡
选项卡是web开发中经常使用到的一个模块,在小程序中竟然没有,这里参考别人的文章自己做了一个双选项卡 实现思路: 通过绑定swichNav事件来控制currentTab(当前选项卡)和isShow(是 ...
- 微信小程序开发基础
前言: 微信小程序开入入门,如果你有html+css+javascript的基础,那么你就很快地上手掌握的.下面提供微信小程序官方地址:https://developers.weixin.qq.com ...
- 零基础入门微信小程序开发
注:本文来源于:<零基础入门微信小程序开发> 课程介绍 本达人课是一个系列入门教程,目标是从 0 开始带领读者上手实战,课程以微信小程序的核心概念作为主线,介绍配置文件.页面样式文件.Ja ...
- 微信小程序开发学习资料
作者:初雪链接:https://www.zhihu.com/question/50907897/answer/128494332来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...
- 微信小程序开发教程,大多数人都搞错的八个问题
小程序目前被炒得沸沸扬扬,无数媒体和企业借机获取阅读流量. 这再次证明一点,微信想让什么火,真的就能让什么火.这种能力真是全中国再也没有人有了,政府也没有. 但四处传的消息很多是失真的,废话不说,先列 ...
- 微信小程序开发笔记(一)
一.为什么要学习微信小程序开发 微信小程序是一个可以在微信上打开的轻应用,他是由多个页面组成的程序,跟传统APP比较如下: 优点 1.不需要在应用商店下载,不占用内存空间,即开即用 2.可以在微信内直 ...
- 【好好编程-技术博客】微信小程序开发中前后端的交互
微信小程序开发中前后端的交互 微信小程序的开发有点类似与普通网页的开发,但是也不尽然相同.小程序的主要开发语言是JavaScript,开发同普通的网页开发有很大的相似性,对于前端开发者而言,从网页开发 ...
随机推荐
- PHP微信公众号JSAPI网页支付(上)
一.使用场景以及说明 使用场景:商户已有H5商城网站,用户通过消息或扫描二维码在微信内打开网页时,可以调用微信支付完成下单购买的流程. 说明:1.用户打开图文消息或者扫描二维码,在微信内置浏览器打开网 ...
- radio日志sim卡信号状态分析
logcat -b radio日志 // 接着将slot 0主卡置为false,将slot 1设置为true 08-09 11:24:40.335 2565 3243 D RILJ : [4820]& ...
- 【easy】234. Palindrome Linked List
ques: 判断一个链表是否回文 Could you do it in O(n) time and O(1) space? method:先将链表分为两部分,将后半部分反转,最后从前往后判断是否相等. ...
- sqlite 中的分页语句
2个关键字 select * from testtable limit 2 offset 1;
- @Autowired mapper 层次 bean 带红线
在利用@Autowired 注解创建bean 时候 有时间会带有下滑红色横线 给人一种报错的感觉 下面是去除红线的办法 将颜色红色error 等级降低为黄色warn 即可
- MySQL查询表中某个字段的重复数据
1. 查询SQL表中某个字段的重复数据 SELECT user_name,COUNT(*) AS count FROM db_user_info GROUP BY user_name HAVING c ...
- 微信小程序换皮肤,动态切换菜单栏和导航栏的样式,动态修改TabBar和NavigationBar
在做微信小程序换皮肤的时候,需要动态修改菜单栏(TabBar)和导航栏(NavigationBar) 但是在小程序中它们的样式是写在app.json里面,而且app.json是静态编译,运行时哪怕你修 ...
- Mysql的性能优化
1.参考书籍:MYSQL 5.5从零开始学 Mysql性能优化就算通过合理安排资源,调整系统参数使MYSQL运行更快,更节省资源.MYSQL性能优化包括查询速度优化,更新速度优化,mysql服务器优化 ...
- influxDB+grafana安装配置及邮件告警发送配置
1. InfluxDB安装 下载包并解压: $:wgethttps://dl.influxdata.com/influxdb/releases/influxdb-1.3.6_linux_amd64.t ...
- .net 枚举类型转换
数字转化名称 Enum.GetName(typeof(枚举), 数字); 名称转化数字 (int)枚举