269 (案例)模拟斗地主
【需求】
做牌——创建花色数组,创建数字数组,然后组合成牌,
做牌盒——创建ArrayList集合
装牌——添加花色牌、大王、小王元素到集合
洗牌——shuffle随机排序
发牌——给3个玩家发牌,遍历集合
看牌——3个玩家看牌,输出写屏
> heart,club,diamond,spade
--------------------------------------------------------------
1 package e269;
2 3 import java.util.ArrayList;
4 import java.util.Collections;
5 6 public class PokerDemo {
7 public static void main(String[] args) {
8 // ---the box---
9 ArrayList
10
11 // ---cards---
12 String[] cjihe = {"D","C","H","S"};
13 String[] njihe = {"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
14 // ATTENTION!!!用增强for遍历2个数组,并用2个数组组装出52个扑克牌
15 for (String c : cjihe){
16 for (String n :njihe){
17 l.add(c+n);
18 }
19 }
20 l.add("KING");
21 l.add("QUEEN");
22 System.out.println("beginnt"+l);
23 Collections.shuffle(l);
24
25 // ---shuffle---
26 System.out.println("after shufflent"+l);
27
28 // ---players---
29 ArrayList
30 ArrayList
31 ArrayList
32 ArrayList
33
34 // ---deal---
35 for (int i=0;i 36 String card = l.get(i); 37 if (i>=l.size()-3){ 38 hand.add(card); 39 }else if (i%3==0){ 40 player1.add(card); 41 }else if (i%3==1){ 42 player2.add(card); 43 }else if (i%3==2){ 44 player3.add(card); 45 } 46 } 47 48 // ---have a look--- 49 System.out.println("show the cards"); 50 System.out.println("player1nt"+player1); 51 System.out.println("player2nt"+player2); 52 System.out.println("player3nt"+player3); 53 System.out.println("handnt"+hand); 54 55 // ---show--- 56 show("MOLE",player1); 57 show("RAT",player2); 58 show("BADGER",player3); 59 show("HAND",hand); 60 61 } 62 public static void show(String name,ArrayList 63 System.out.println("cards of player1"); 64 System.out.println("t"); 65 for (String cards : l){ 66 System.out.print(cards+","); 67 } 68 System.out.println(); 69 } 70 } 71 270 模拟斗地主升级版案例分析 (这节课只是分析,不写代码) 【需求】 实现洗牌、发牌、看牌 要求:对牌排序,这里使用对索引进行排序的方式 HashMap做牌 ArrayList发牌 TreeSet拿牌 key value (自动按升序排列每个玩家手里的牌) 0 H 0 1 S 1 2 D 2 … KING … 53 QUEEN 53 【思路】 271 模拟斗地主升级版代码实现 1 package e271;2 3 import java.util.ArrayList; 4 import java.util.Collections; 5 import java.util.HashMap; 6 import java.util.TreeSet; 7 8 public class PokerDemo { 9 public static void main(String[] args) { 10 HashMap 11 ArrayList 12 13 String[] nArray = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2" }; 14 String[] cArray = {"D.", "C.", "S.", "H." }; 15 16 int no = 0; 17 for (String n : nArray) { 18 for (String c : cArray) { 19 cardC.put(no,c+n); 20 noC.add(no); 21 no++; 22 } 23 } 24 25 cardC.put(52,"KING"); 26 noC.add(no); 27 no++; 28 29 cardC.put(53,"QUEEN"); 30 noC.add(no); 31 32 Collections.shuffle(noC); 33 34 TreeSet 35 TreeSet 36 TreeSet 37 TreeSet 38 39 for (int i=0;i 40 int handCard = noC.get(i);// 41 if (i>=noC.size()-3){ 42 hand.add(noC.get(i)); 43 }else if (i%3==0){ 44 player1.add(noC.get(i)); 45 }else if (i%3==1){ 46 player2.add(noC.get(i)); 47 }else if (i%3==2){ 48 player3.add(noC.get(i)); 49 } 50 } 51 52 System.out.println("nplayer1"); 53 show("player1",player1,cardC); 54 System.out.println("nplayer2"); 55 show("player2",player2,cardC); 56 System.out.println("nplayer3"); 57 show("player3",player3,cardC); 58 } 59 60 public static void show(String name,TreeSet 61 System.out.println("57.show the cardst"); 62 for (Integer jian : ts){ 63 String showCard = cardC.get(jian); 64 System.out.print(showCard+","); 65 } 66 } 67 } 68 欢迎分享,转载请注明来源:内存溢出
评论列表(0条)