首页 > Web开发 > 详细

Js实现简单的洗牌

时间:2014-04-16 17:25:28      阅读:547      评论:0      收藏:0      [点我收藏+]

基础篇

洗牌采用的是,每一张牌,与后面随机一张牌来交换位置。

扑克牌采用编码制(如,0代表红桃A,依次类推)为了编码方便,扑克牌不含大小王,故52张。

一、扑克牌的了解

扑克(英文:Poker)
一副扑克牌有54张牌,其中52张是正牌,另2张是副牌(大王和小王)。
52张正牌又均分为13张一组,并以黑桃、红桃、草花、方块四种花色表示各组,每组花色的牌包括从1-10(1通常表示为A)以及J、Q、K标示的13张牌。
为了简化对象,我们把扑克作为Card类,属性值为suit 和 face。
bubuko.com,布布扣
function Card(){

                this.suit = ""
                this.face = ""
            

                this.setSuit = function(newSuit){
                    this.suit = newSuit
                }

                this.setFace = function(newFace){
                    this.face = newFace
                }

    
                this.showCard = function(){
                    document.write(this.suit+this.face +‘\n‘)
                }
            }
bubuko.com,布布扣

二、洗牌思想

洗牌采用第一张,与后面随机一张交换位置。

用数组poker[53]代表一副扑克牌,多出的一张作为用来交换牌时的temp容器。

bubuko.com,布布扣
    for(i = 0; i < poker.length-1; i++){
            var rnd = Math.round( Math.random() * 51 )
            poker[52] = poker[rnd]
                
            poker[rnd] = poker[i]
            poker[i] = poker[52]

    }
bubuko.com,布布扣

 

三、牌与面值关联

这个通过两个简单的数组就可以搞定。

一个存放suit,另一个存放face

bubuko.com,布布扣
var suitGroup = ["红桃", "方块", "梅花", "黑桃"]
var faceGroup = ["A", "1", "2", "3", "4", "5", "6", "7", "8","9", "J", "Q", "K" ]

for(i = 0; i < poker.length-1 ; i++){                
        var  card = new Card()
          card.setSuit( suitGroup[ poker[i]%4 ]  )
          card.setFace( faceGroup[ poker[i]%13 ]  )
          card.showCard()
}        
                 
            
bubuko.com,布布扣

 

 

Js实现简单的洗牌,布布扣,bubuko.com

Js实现简单的洗牌

原文:http://www.cnblogs.com/chrysalis-china/p/3666517.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!