1. 模拟斗地主洗牌和发牌
分析:
A:创建一个牌盒
B:装牌
C:洗牌
D:发牌
E:看牌
2. 代码实现:
1 package cn.itcast_03; 2 3 import java.util.ArrayList; 4 import java.util.Collections; 5 6 /* 7 * 模拟斗地主洗牌和发牌 8 * 9 * 分析: 10 * A:创建一个牌盒 11 * B:装牌 12 * C:洗牌 13 * D:发牌 14 * E:看牌 15 */ 16 public class PokerDemo { 17 public static void main(String[] args) { 18 // 创建一个牌盒 19 ArrayList<String> array = new ArrayList<String>(); 20 21 // 装牌 22 // 黑桃A,黑桃2,黑桃3,...黑桃K 23 // 红桃A,... 24 // 梅花A,... 25 // 方块A,... 26 // 定义一个花色数组 27 String[] colors = { "♠", "♥", "♣", "♦" }; 28 // 定义一个点数数组 29 String[] numbers = { "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", 30 "J", "Q", "K" }; 31 // 装牌 32 for (String color : colors) { 33 for (String number : numbers) { 34 array.add(color.concat(number)); 35 } 36 } 37 array.add("小王"); 38 array.add("大王"); 39 40 // 洗牌 41 Collections.shuffle(array); 42 43 // System.out.println("array:" + array); 44 45 // 发牌 46 ArrayList<String> fengQingYang = new ArrayList<String>(); 47 ArrayList<String> linQingXia = new ArrayList<String>(); 48 ArrayList<String> liuYi = new ArrayList<String>(); 49 ArrayList<String> diPai = new ArrayList<String>(); 50 51 for (int x = 0; x < array.size(); x++) { 52 if (x >= array.size() - 3) { 53 diPai.add(array.get(x)); 54 } else if (x % 3 == 0) { 55 fengQingYang.add(array.get(x)); 56 } else if (x % 3 == 1) { 57 linQingXia.add(array.get(x)); 58 } else if (x % 3 == 2) { 59 liuYi.add(array.get(x)); 60 } 61 } 62 63 // 看牌 64 lookPoker("风清扬", fengQingYang); 65 lookPoker("林青霞", linQingXia); 66 lookPoker("刘意", liuYi); 67 68 lookPoker("底牌", diPai); 69 } 70 71 public static void lookPoker(String name, ArrayList<String> array) { 72 System.out.print(name + "的牌是:"); 73 for (String s : array) { 74 System.out.print(s + " "); 75 } 76 System.out.println(); 77 } 78 }
运行效果,如下: