zoukankan      html  css  js  c++  java
  • 德州扑克

    第一天、初始化卡组

    var flower = ['♠', '♥', '♣','♦']
    var poker = [];
    
    for (var j = 0; j < 4; j++) {
        var f = flower[j]
        for (var i = 1; i <= 13; i++) {
            let n = i;
            switch (n) {
                case 1: n = 'A'; break;
                case 11: n = 'J'; break;
                case 12: n = 'Q'; break;
                case 13: n = 'K'; break;
             }
           poker.push(f + n)
        }
    }
    
    console.log(poker)

     第二天、洗牌与卡组的UI

    <template>
      <div class="hello">
        <h1>{{ msg }}</h1>
        <transition-group name="cell" tag="div" class="container">
            <div v-for="p in poker" :key="p.id" class="cell" :data-flower='p.flower' 
            :class="{red: p.flower === '♥' || p.flower === '♦'}">
                <span class="number">{{ p.number }}</span>
            </div>
        </transition-group>
        <button class="shuffle" @click="shuffle"> Shuffle </button>
      </div>
    </template>
    
    <script>
    export default {
      name: 'hello',
      data () {
        return {
          msg: 'Welcome to Texas Hold’em poker',
          poker : []
        }
      },
      methods: {
         shuffle () {
           // 利用slice函数克隆一个数组.不要问我为什么要克隆
           let arr = this.poker.slice(0);
           let n = arr.length, random;
           while (0 != n) {
                random =  (Math.random() * n--) >>> 0; // 无符号右移位运算符向下取整
                [arr[n], arr[random]] = [arr[random], arr[n]] // ES6的结构赋值实现变量互换
           }
           this.poker = arr;
         },
         init () {
            const flower = ['', '', '','']
            let poker = [];
    
            // 外部循环四个花色
            for (var j = 0; j < 4; j++) {
              // 获取当前花色
              let f = flower[j]
              // 内部循环13张咯
              for (var i = 1; i <= 13; i++) {
                  let n = i;
                  switch (n) {
                    case  1 : n = 'A'; break;
                    case 11 : n = 'J'; break;
                    case 12 : n = 'Q'; break;
                    case 13 : n = 'K'; break;
                  }
                  poker.push({id : f + n, number: n, flower: f})
                }
              }
    
              // 德州扑克不需要双王
              this.poker = poker
         }
      },
      beforeMount () {
         this.init()
      }
    }
    </script>
    
    <!-- Add "scoped" attribute to limit CSS to this component only -->
    <style lang='scss' scoped>
    h1, h2 {font-weight: normal; } 
    
    /* 动画钩子 */
    .cell-move {
      transition: transform 1s ease;
    }
    
    .container {
      display: flex;
      flex-wrap: wrap;  /* #当宽度不够时换行 */
      width: 500px;
      margin: auto; 
    }
    
    .cell {
      text-align: center;
      width: 50px;
      height: 60px;
      border: 1px solid #aaa;
      display: flex;
      justify-content: space-around;
    
      & > .number {
        align-self: center;
      } 
    
      &::before {
        content:attr(data-flower);
        align-self: flex-start;
      }
    
      &::after {
        content:attr(data-flower);
        transform: rotateX(180deg);
        align-self: flex-end;
      }
    }
    
    button.shuffle {
      margin-top: 40px;
    }
    
    .red {
      color:red;
    }
    
    </style>
  • 相关阅读:
    grep命令详解;单引号和双引号区别(转载)
    Linux下的系统性能调优工具--Perf (转载)
    Shiro
    WebLogic和Tomcat
    MD5加密(java和c#)
    深入理解java泛型
    VS2015常用快捷键总结(转)
    Java 反射 使用总结
    @RequestParam与@PathVariable的区别
    SVN被锁定的几种解决方法
  • 原文地址:https://www.cnblogs.com/CyLee/p/6858074.html
Copyright © 2011-2022 走看看