zoukankan      html  css  js  c++  java
  • 微信小程序开发的游戏《拼图游戏》

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

    代码直接考进去就能用


    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 {
       80%;
      padding: 20px 0;
      text-align: center;
      margin: auto;
    }
    
    .pintu-wrap {
       90%;
      align-items: center;
    }
    
    .pintu-line {
      display: flex;
    }
    
    .pintu-item-wrap {
      height: 100px;
       30%;
      margin: 5px;
    }
    
    .pintu-item {
      line-height: 100px;
      height: 100%;
       100%;
    }
    

      

  • 相关阅读:
    BZOJ1527 : [POI2005]Pun-point
    2016-2017 ACM-ICPC Southwestern European Regional Programming Contest (SWERC 2016)
    2016-2017 ACM-ICPC Northwestern European Regional Programming Contest (NWERC 2016)
    NAIPC-2016
    BZOJ2498 : Xavier is Learning to Count
    ACM ICPC Vietnam National Second Round
    XVI Open Cup named after E.V. Pankratiev. GP of Ukraine
    XVI Open Cup named after E.V. Pankratiev. GP of Peterhof
    HDU5509 : Pattern String
    BZOJ4583 : 购物
  • 原文地址:https://www.cnblogs.com/liaolongjun/p/6911501.html
Copyright © 2011-2022 走看看