A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. import java.util.List;
  2. import java.util.ArrayList;
  3. import java.util.Collections;
  4. /**
  5. * 官方Java Tutorials集合部分, List接口讲解实例:
  6. *  发牌小程序代码
  7. */

  8. public class DeckDemo {
  9.         /*
  10.          * 通过main方法接收两个参数:
  11.          * hands : 将牌发给几个人
  12.          * cards : 每个人发几张牌
  13.          */
  14.         public static void main(String[] args) {
  15.                 if (args.length < 2){
  16.                         System.out.println("该程序用于处理发牌操作,请输入正确格式: 人数 持牌数");
  17.                         return ;
  18.                 }
  19.                 // 定义两个变量获取输入
  20.                 int hands = Integer.parseInt(args[0]);
  21.                 int cardsPerHand = Integer.parseInt(args[1]);

  22.                 // 初始化一冲牌
  23.                 // 花色
  24.                 String[] suit = new String[] {
  25.                         "黑桃", "红桃",
  26.                         "梅花", "方片"
  27.                 };
  28.                 // A-K
  29.                 String[] rank = new String[] {
  30.                         "A", "2", "3", "4", "5",
  31.                         "6", "7", "8", "9", "10",
  32.                         "J", "Q", "K"
  33.                 };
  34.                 // 初始化
  35.                 List<String> deck = new ArrayList<>();
  36.                 for (int i=0; i<suit.length ; i++){
  37.                         for (int j=0; j<rank.length ; j++){
  38.                                 deck.add(suit[i] + rank[j]);
  39.                         }
  40.                 }

  41.                 // 洗牌
  42.                 Collections.shuffle(deck);

  43.                 // 发牌
  44.                 // 发牌之前先判断牌的数量是否足够
  45.                 if (hands * cardsPerHand > deck.size()){
  46.                         System.out.println("对不起,牌数不够!");
  47.                         return ;
  48.                 }

  49.                 // 发牌
  50.                 for (int i = 0; i<hands ; i++){
  51.                         System.out.println(handsDeck(deck, cardsPerHand));
  52.                 }
  53.         }

  54.         public static <E> List<E> handsDeck(List<E> deck, int n) {
  55.                 int deckSize = deck.size();
  56.                 List<E> handView = deck.subList(deckSize - n, deckSize);
  57.                 List<E> hand = new ArrayList<E>(handView);
  58.                 handView.clear();
  59.                 return hand;
  60.         }
  61. }
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马