#扑克牌的面向对象建模:创建两个枚举类型Suit(花色),Rank(等级);创建两个类Card(牌),CardsSet(五张牌的集合);要求CardsSet实现Comparable接口,按照德州扑克规则比较不同牌型的大小。
//枚举类型表示一副扑克牌:
console.log("枚举类型表示一副扑克牌:");
//定义个已个表示“玩牌”的类
function Card( suit , rank ){
this.suit = suit ; //每张牌都有花色
this.rank = rank ; //以及点数
}
//使用枚举类定义换色和点数
Card.Suit = enumeration( {Clubs:1,Diamonds:2,Hearts : 3,Spades:4});
Card.Rank = enumeration( {Two: 2, Three:3,Four: 4, Five:5,Six : 6,
Seven:7,Eight:8,Nine:9,Ten:10,Jack :11,
Queen:12 , King:13,Ace : 14
} ) ;
//定义用以表示一副标准扑克牌的类
function Deck(){
var cards = this.cards =[]; //一副牌就是有牌组成的数组
Card.Suit.foreach(function(s){ //初始化这个数组
Card.Rank.foreach( function(r){
cards.push(new Card(s,r));
});
});
}