前言
暑期项目实习第一课,JAVA实现斗地主简易发牌及有序理牌。
题目
需求:斗地主发牌,有序理牌
斗地主扑克介绍:一副扑克共54张牌,四种花色:“红桃”、“方块”、“黑桃”、“梅花”,每种花色共13张牌,分别为“3”、“4”、“5”、“6”、“7”、“8”、“9”、“10”、“J”、“Q”、“K”、“A”、“2”,除四种花色之外还有大鬼、小鬼2张牌,4种花色同数字相同大小,大小顺序为3<4<5<6<7<8<9<10<J<Q<K<A<2<小鬼<大鬼。
斗地主发牌规则:每人按顺序抓牌,共抓17张,留3张底牌。
效果
public static void main(String[] args) {
List<String> pokes = new ArrayList<>();
List<String> colors = new ArrayList<>();
List<String> numbers = new ArrayList<>();
colors.add("");
colors.add("");
colors.add("");
colors.add("");
for(int i = 2; i <= 10; i++){
numbers.add(i+"");
}
numbers.add("J");
numbers.add("Q");
numbers.add("K");
numbers.add("A");
for(String c:colors){
for(String n: numbers){
String pai = c+n;
pokes.add(pai);
}
}
pokes.add("大鬼");
pokes.add("小鬼");
Collections.shuffle(pokes);
ArrayList<String> people_1 = new ArrayList<>();
ArrayList<String> people_2 = new ArrayList<>();
ArrayList<String> people_3 = new ArrayList<>();
ArrayList<String> dipai = new ArrayList<>();
for (int i = 0; i<pokes.size(); i++){
String pai = pokes.get(i);
if(i >= 51){
dipai.add(pai);
}else {
if(i%3 == 0)people_1.add(pai);
else if (i%3 == 1)people_2.add(pai);
else people_3.add(pai);
}
}
System.out.println("随机生产总牌:");
System.out.println(pokes);
System.out.println("玩家1的牌(花色排序):");
classification(people_1);
System.out.println("玩家2的牌(花色排序):");
classification(people_2);
System.out.println("玩家3的牌(花色排序):");
classification(people_3);
System.out.println("玩家1的牌(大小排序):");
arrangecards(people_1);
System.out.println("玩家2的牌(大小排序):");
arrangecards(people_2);
System.out.println("玩家3的牌(大小排序):");
arrangecards(people_3);
System.out.println("底牌:");
System.out.println(dipai);
}
————————————————
public static void arrangecards(ArrayList<String> list){
ArrayList<String> arrange = new ArrayList<>();
for(int i=0;i<list.size();i++){
if(list.get(i).substring(1,2).equals