Guest User

Untitled

a guest
May 27th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.92 KB | None | 0 0
  1. ```java
  2. package com.linlx.Individual.service;
  3.  
  4. import java.util.ArrayList;
  5. import java.util.HashSet;
  6. import java.util.Iterator;
  7. import java.util.List;
  8. import java.util.Set;
  9. import java.util.TreeSet;
  10.  
  11. public class GameTest {
  12.  
  13. public static void main(String[] args) {
  14. GameTest a = new GameTest();
  15. a.createCards();
  16. }
  17.  
  18. /**
  19. * createCards(创建牌池)
  20. * void
  21. * @exception
  22. * @since 1.0.0
  23. */
  24. public void createCards(){
  25. //创建牌池集合
  26. List<String> cardsList = new ArrayList<>();
  27.  
  28. //生成各个花色牌组
  29. for (int i = 0; i <= 4; i++) {
  30. switch (i) {
  31. case 0:
  32. addCardsList("♠",13,cardsList);
  33. break;
  34. case 1:
  35. addCardsList("♣",13,cardsList);
  36. break;
  37. case 2:
  38. addCardsList("♥",13,cardsList);
  39. break;
  40. case 3:
  41. addCardsList("◇",13,cardsList);
  42. break;
  43. default:
  44. cardsList.add("大王");
  45. cardsList.add("小王");
  46. break;
  47. }
  48. }
  49.  
  50. /**
  51. * 以下部分为显示牌组,可要可不要
  52. * */
  53. System.out.println("牌组长度:"+cardsList.size());
  54. Iterator<String> it = cardsList.iterator();
  55. System.out.print("牌池:");
  56. while (it.hasNext()) {
  57. System.out.print(it.next()+" ");
  58. }
  59.  
  60. //调用发牌方法
  61. giveOutCards(cardsList);
  62. }
  63.  
  64. /**
  65. * addCardsList(生成各个花色牌组)
  66. * @param key
  67. * @param len
  68. * @param cardsList
  69. * void
  70. * @exception
  71. * @since 1.0.0
  72. */
  73. public void addCardsList(String key,int len,List<String> cardsList){
  74. //开始生成花色牌组,并判断生成A,J,Q,K等特殊牌组
  75. for (int j = 0; j < len; j++) {
  76. switch (j) {
  77. case 0:
  78. cardsList.add(key+"A");
  79. break;
  80. case 10:
  81. cardsList.add(key+"J");
  82. break;
  83. case 11:
  84. cardsList.add(key+"Q");
  85. break;
  86. case 12:
  87. cardsList.add(key+"K");
  88. break;
  89. default:
  90. cardsList.add(key+(j+1));
  91. break;
  92. }
  93. }
  94. }
  95.  
  96. /**
  97. * giveOutCards(发牌)
  98. * @param cardsList
  99. * void
  100. * @exception
  101. * @since 1.0.0
  102. */
  103. public void giveOutCards(List<String> cardsList){
  104. //创建玩家牌池集合
  105. List<Set<String>> gamePlayerCards = new ArrayList<>();
  106.  
  107. //循环出三个玩家牌组
  108. for (int i = 0; i < 3; i++) {
  109. //创建玩家牌组
  110. Set<String> setCar = new HashSet<>();
  111. //开始循环没法发牌十七张
  112. for (int j = 0; j < 17; j++) {
  113. boolean flag = false;
  114. while (flag == false) {
  115. //生成一个从54-1的随机数,并减1,稍后作为获取牌池集合的下标
  116. int index = (int)Math.round(Math.random()*cardsList.size()+1)-1;
  117. //判断该次想要获取的牌是否是是已被发出
  118. if(index < cardsList.size()&&cardsList.get(index)!=null){
  119. //将拿到的牌加入至玩家牌组
  120. setCar.add(cardsList.get(index));
  121. //删除牌池中的牌
  122. cardsList.remove(index);
  123. //赋值,跳出循环
  124. flag = true;
  125. }
  126. }
  127. }
  128.  
  129. //添加至玩家牌池
  130. gamePlayerCards.add(setCar);
  131. }
  132.  
  133. /**
  134. * 以下部分为显示牌组,可要可不要
  135. * */
  136. System.out.print("\n地主牌:");
  137. for (String card : cardsList) {
  138. System.out.print(card+" ");
  139. }
  140. System.out.println();
  141. for (Set<String> cards : gamePlayerCards) {
  142. Iterator<String> it = cards.iterator();
  143. while (it.hasNext()) {
  144. System.out.print(it.next()+" ");
  145. }
  146. System.out.println(" 牌组长度:"+cards.size());
  147. }
  148. }
  149.  
  150. }
  151. ```
  152. 输出:
  153. ```md
  154. 牌池:♠A ♠2 ♠3 ♠4 ♠5 ♠6 ♠7 ♠8 ♠9 ♠10 ♠J ♠Q ♠K ♣A ♣2 ♣3 ♣4 ♣5 ♣6 ♣7 ♣8 ♣9 ♣10 ♣J ♣Q ♣K ♥A ♥2 ♥3 ♥4 ♥5 ♥6 ♥7 ♥8 ♥9 ♥10 ♥J ♥Q ♥K ◇A ◇2 ◇3 ◇4 ◇5 ◇6 ◇7 ◇8 ◇9 ◇10 ◇J ◇Q ◇K 大王 小王
  155. 地主牌:♠Q ♣5 ◇10
  156. ♥J ◇4 ♣2 ♣K ◇Q ♠J ♠10 ◇2 ♥9 ♣8 ♠6 ◇7 ♥5 ♥7 ♠3 ♥A ♠8 牌组长度:17
  157. ♣J ♠A ◇J ♥Q ♥2 ♣Q ♥3 ◇6 ♠K ♠4 ♣7 ◇8 ♣4 ♠2 ♣6 ♣A ♠9 牌组长度:17
  158. ◇K ♥K ◇3 ◇5 ♥4 大王 ♠5 ♣9 ♣10 ♠7 ♥10 ♣3 ♥6 ◇9 ♥8 小王 ◇A 牌组长度:17
  159. ```
Add Comment
Please, Sign In to add comment