1.需求
模拟斗地主发牌
2.代码实现
package com.itcast.Text02;
import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedHashMap;
//模拟斗地主发牌,map集合版
public class Text04 {
public static void main(String[] args) {
LinkedHashMap<Integer, String> map = new LinkedHashMap<Integer, String>();
String[] colors = {"♥", "♠", "♣", "♦"};
String[] nums = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2"};
int id = 1;
for (String num : nums) {
for (String color : colors) {
String card = color + num;
map.put(id, card);
id++;
}
}
map.put(53, "小s");
map.put(54, "大S");
ArrayList<Integer> cards = new ArrayList<Integer>();
for (int i = 1; i < 55; i++) {
cards.add(i);
}
Collections.shuffle(cards);
ArrayList<Integer> player1 = new ArrayList<Integer>();
ArrayList<Integer> player2 = new ArrayList<Integer>();
ArrayList<Integer> player3 = new ArrayList<Integer>();
ArrayList<Integer> diPai = new ArrayList<Integer>();
//遍历集合
//此处不能使用增强for
for (int i = 0; i < cards.size() - 3; i++) {
//取出每一张牌
Integer card = cards.get(i);
if (i % 3 == 0) {
player1.add(card);
} else if (i % 3 == 1) {
player2.add(card);
}else{
player3.add(card);
}
}
//最后张三留给底牌
diPai.add(cards.get(53));
diPai.add(cards.get(52));
diPai.add(cards.get(51));
Collections.sort(player1);
Collections.sort(player2);
Collections.sort(player3);
Collections.sort(diPai);
//6.看牌
lookCards(player1,map);
lookCards(player2,map);
lookCards(player3,map);
lookCards(diPai,map);
}
public static void lookCards(ArrayList<Integer> idCards, LinkedHashMap<Integer, String> map) {
//遍历
for (Integer idCard : idCards) {
String card = map.get(idCard);
System.out.print(card+" ");
}
System.out.println();
}
}