微信小程序开发的游戏《拼图游戏》

代码直接考进去就能用


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%;
}

  

微信小程序开发的游戏《拼图游戏》的更多相关文章

  1. 微信小程序开发(5) 2048游戏

    在这篇微信小程序开发教程中,我们将介绍如何使用微信小程序开发2048小游戏. 本文主要分为两个部分,小程序主体部分及小游戏页面部分 一.小程序主体部分 一个小程序主体部分由三个文件组成,必须放在项目的 ...

  2. 微信小程序开发详解——小程序,大颠覆!

    微信小程序开发 联系 苏念 188.1414.7927  微信小程序系统开发 微信新功能开发 小程序开发 小程序怎么开发 app小程序开发 简化小程序开发 微信小程序定制 小程序制作 开发微信小程序  ...

  3. 微信小程序开发之选项卡

    选项卡是web开发中经常使用到的一个模块,在小程序中竟然没有,这里参考别人的文章自己做了一个双选项卡 实现思路: 通过绑定swichNav事件来控制currentTab(当前选项卡)和isShow(是 ...

  4. 微信小程序开发基础

    前言: 微信小程序开入入门,如果你有html+css+javascript的基础,那么你就很快地上手掌握的.下面提供微信小程序官方地址:https://developers.weixin.qq.com ...

  5. 零基础入门微信小程序开发

    注:本文来源于:<零基础入门微信小程序开发> 课程介绍 本达人课是一个系列入门教程,目标是从 0 开始带领读者上手实战,课程以微信小程序的核心概念作为主线,介绍配置文件.页面样式文件.Ja ...

  6. 微信小程序开发学习资料

    作者:初雪链接:https://www.zhihu.com/question/50907897/answer/128494332来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...

  7. 微信小程序开发教程,大多数人都搞错的八个问题

    小程序目前被炒得沸沸扬扬,无数媒体和企业借机获取阅读流量. 这再次证明一点,微信想让什么火,真的就能让什么火.这种能力真是全中国再也没有人有了,政府也没有. 但四处传的消息很多是失真的,废话不说,先列 ...

  8. 微信小程序开发笔记(一)

    一.为什么要学习微信小程序开发 微信小程序是一个可以在微信上打开的轻应用,他是由多个页面组成的程序,跟传统APP比较如下: 优点 1.不需要在应用商店下载,不占用内存空间,即开即用 2.可以在微信内直 ...

  9. 【好好编程-技术博客】微信小程序开发中前后端的交互

    微信小程序开发中前后端的交互 微信小程序的开发有点类似与普通网页的开发,但是也不尽然相同.小程序的主要开发语言是JavaScript,开发同普通的网页开发有很大的相似性,对于前端开发者而言,从网页开发 ...

随机推荐

  1. topshelf 服务启动运行

    topshlf 服务启动运行方式 安装:servicename.exe install 启动:servicename.exe start 卸载:servicename.exe uninstall

  2. Codeforces Round #545 (Div. 2) C. Skyscrapers 离散化+贪心

    题目链接 给你一个n∗m的矩阵res,让你输出一个n∗m的矩阵a,这个矩阵满足:给你一个n*m的矩阵res,让你输出一个n*m的矩阵a,这个矩阵满足:给你一个n∗m的矩阵res,让你输出一个n∗m的矩 ...

  3. Bootstrap模态框钩子事件

    事件类型   描述show.bs.modal show 方法调用之后立即触发该事件.如果是通过点击某个作为触发器的元素,则此元素可以通过事件的 relatedTarget 属性进行访问.shown.b ...

  4. C#学习笔记-DataTable导出到EXCEL(一)

    public void DataTabletoExcel(DataTable dt, string path) { StreamWriter sw = new StreamWriter(path, f ...

  5. tarjan 题目汇总(含解析)

    下面容许我偷个懒,洛谷上写过的blog我就不来再抄一遍了 洛谷P3436 [[POI2006]PRO-Professor Szu](别称:作死的老教授) 洛谷P4306 [[JSOI2010]连通数] ...

  6. pycharm导入自己写的模块时,模块下方出现红色波浪线的解决方案

    文章链接:https://blog.csdn.net/weixin_38383877/article/details/81121851 这种情况其实可以不用管,是可以正常运行的: 但是,如果看着不舒服 ...

  7. javascript 路径读取

    //获取当前文件全路径 <script language="javascript"> alert(window.location.href); alert(window ...

  8. SpringMVC的入门示例

    1.配置流程说明 第一步:导入包 第二步:构建一个请求,编写请求页面 第三步:配置核心控制器 第四步:构建一个业务控制器 第五步:编写Spring配置文件 第六步:编写一个返回页面 2.配置流程--- ...

  9. Nginx Linux详细安装部署教程

    一.Nginx简介 Nginx是一个web服务器也可以用来做负载均衡及反向代理使用,目前使用最多的就是负载均衡,具体简介我就不介绍了百度一下有很多,下面直接进入安装步骤 二.Nginx安装 1.下载N ...

  10. zt 正则

    http://deerchao.net/tutorials/regex/regex.htm     正则表达式30分钟入门教程 版本:v2.3.5 (2017-6-12) 作者:deerchao 转载 ...