• Java基础知识强化之集合框架笔记70:模拟斗地主洗牌和发牌(ArrayList)


    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 }

    运行效果,如下:

  • 相关阅读:
    广州公交百态之座位
    遍地大头者,岂尽聪明人
    小和尚
    c++中调用其他应用程序的方法(winexec shellexecute createprocess)
    MFC Is MVC
    Dialog Data Exchange
    MFC Extension dll VS Regular Dll
    Don't optimize prematurely
    Menu Basic
    Don't pessimize prematurely
  • 原文地址:https://www.cnblogs.com/hebao0514/p/4867563.html
Copyright © 2020-2023  润新知