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

      

  • 相关阅读:
    JDK 14的新特性:更加好用的NullPointerExceptions
    技术回顾系列:最新最热门的技术大事-第一周
    JDK 14的新特性:instanceof模式匹配
    JDK 15 JAVA 15的新特性展望
    怎么break java8 stream的foreach
    java 8 stream中的Spliterator简介
    怎么在java中创建一个自定义的collector
    java 8 stream reduce详解和误区
    java stream中Collectors的用法
    java关于throw Exception的一个小秘密
  • 原文地址:https://www.cnblogs.com/liaolongjun/p/6911501.html
Copyright © 2011-2022 走看看