共计 2307 个字符,预计需要花费 6 分钟才能阅读完成。
实现思路
- – 构建一张扑克牌
- – 构建一套扑克牌
- – 测试
构建一张扑克牌
[url=][/url]
/***@author 冬冬 * 定义一个单张扑克牌类 * 有花型,大小 */publicclassCard {privateString flower;// 花型 privateintdaxiao;// 点数 /** 构造方法 *@paramflower*@paramdaxiao*/publicCard(String flower,intdaxiao) {this.flower = flower;this.daxiao = daxiao;}/*(non-Javadoc)* @see java.lang.Object#toString()* 获取本张卡牌的花型与大小,对于特殊的大小,如 1——A,输出时进行转换 */publicString toString() {String daxiaoStr = “”;switch(daxiao) {case1: daxiaoStr = “A”;break;case11: daxiaoStr = “J”;break;case12: daxiaoStr = “Q”;break;case13: daxiaoStr = “K”;break;default: daxiaoStr = String.valueOf(daxiao);}returnflower + daxiaoStr;}}[url=][/url]
构建一套扑克牌
[url=][/url]
publicclassPoker {privatestaticString[] flowers = {“ 黑桃 ”, “ 红桃 ”, “ 草花 ”, “ 方块 ”};privatestaticint[] daxiaos = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13};privateCard[] cards;// 卡片数组,应该有 54 张,这里去掉大小王,只 52 张 /*** 构造器 * 按顺序实例化 52 张扑克牌 */publicPoker() {cards =newCard[52];for(inti = 0; i < flowers.length; i++) {for(intj = 0; j < daxiaos.length; j++) {cards[i * 13 + j] =newCard(flowers_, daxiaos[j]);}}}/*** 洗牌(随机乱序)* 对于 52 个 Card 实例数组随机乱序排列 */publicvoidshuffle() {for(inti = 0, len = cards.length; i < len; i++) {intindex = (int) (Math.random() * len);Card temp = cards[index];cards[index] = cards_;cards= temp;}}/*** 发牌 *@paramindex 发牌的位置 **/publicCard deal(intindex) {returncards[index];}}_[url=][/url]
_
测试
[url=]
[/url]
publicclassTest {publicstaticvoidmain(String[] args) {Poker poker =newPoker();// 生成扑克牌 poker.shuffle();// 洗牌(乱序)Card c1 = poker.deal(0);// 发第一张牌 // 创建四个玩家,每个玩家 13 张空牌 Card [] person1=newCard[13];Card [] person2=newCard[13];Card [] person3=newCard[13];Card [] person4=newCard[13];// 为玩家的的空牌赋值 for(inti=1;i<=52;i++){if(i<=13) person1[i-1]=poker.deal(i-1);if(i>13&&i<=26) person2[i-1-13]=poker.deal(i-1);if(i>26&&i<=39) person3[i-1-26]=poker.deal(i-1);if(i>39&&i<=52) person4[i-1-39]=poker.deal(i-1); }// 打印 System.out.println(“ 玩家 1 ″);for(Card card : person1) {System.out.print(card+” “);}System.out.println(“”);System.out.println(“ 玩家 2 ″);for(Card card : person2) {System.out.print(card+” “);}System.out.println(“”);System.out.println(“ 玩家 3 ″);for(Card card : person3) {System.out.print(card+” “);}System.out.println(“”);System.out.println(“ 玩家 4 ″);for(Card card : person4) {System.out.print(card+” “);}}}[url=]
[/url]
结果:
玩家 1
红桃 6 方块 4 方块 A 黑桃 4 草花 2 红桃 Q 红桃 J 红桃 K 方块 3 黑桃 K 方块 8 黑桃 7 黑桃 5
玩家 2
草花 A 黑桃 2 红桃 7 草花 3 草花 5 方块 J 方块 9 草花 9 草花 K 黑桃 8 草花 J 黑桃 10 红桃 8
玩家 3
方块 7 红桃 4 红桃 2 草花 6 方块 2 黑桃 Q 黑桃 9 黑桃 A 草花 10 草花 7 红桃 10 红桃 A 方块 Q
玩家 4
红桃 9 方块 5 草花 8 方块 10 方块 K 草花 Q 黑桃 3 红桃 5 黑桃 6 黑桃 J 红桃 3 方块 6 草花 4
注意事项
1. 不要忘记在 Poker 类里导入 Card 类,在 Test 类里面导入 Poker 和 Card;
2. 自己想想,动手做一做才能真正理解。
__