黑马程序员技术交流社区
标题:
Java Tutorials集合示例程序-发牌程序
[打印本页]
作者:
周博文
时间:
2015-8-23 13:04
标题:
Java Tutorials集合示例程序-发牌程序
import java.util.List;
import java.util.ArrayList;
import java.util.Collections;
/**
* 官方Java Tutorials集合部分, List接口讲解实例:
* 发牌小程序代码
*/
public class DeckDemo {
/*
* 通过main方法接收两个参数:
* hands : 将牌发给几个人
* cards : 每个人发几张牌
*/
public static void main(String[] args) {
if (args.length < 2){
System.out.println("该程序用于处理发牌操作,请输入正确格式: 人数 持牌数");
return ;
}
// 定义两个变量获取输入
int hands = Integer.parseInt(args[0]);
int cardsPerHand = Integer.parseInt(args[1]);
// 初始化一冲牌
// 花色
String[] suit = new String[] {
"黑桃", "红桃",
"梅花", "方片"
};
// A-K
String[] rank = new String[] {
"A", "2", "3", "4", "5",
"6", "7", "8", "9", "10",
"J", "Q", "K"
};
// 初始化
List<String> deck = new ArrayList<>();
for (int i=0; i<suit.length ; i++){
for (int j=0; j<rank.length ; j++){
deck.add(suit[i] + rank[j]);
}
}
// 洗牌
Collections.shuffle(deck);
// 发牌
// 发牌之前先判断牌的数量是否足够
if (hands * cardsPerHand > deck.size()){
System.out.println("对不起,牌数不够!");
return ;
}
// 发牌
for (int i = 0; i<hands ; i++){
System.out.println(handsDeck(deck, cardsPerHand));
}
}
public static <E> List<E> handsDeck(List<E> deck, int n) {
int deckSize = deck.size();
List<E> handView = deck.subList(deckSize - n, deckSize);
List<E> hand = new ArrayList<E>(handView);
handView.clear();
return hand;
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2