进阶day02-集合综合案例
This commit is contained in:
83
javaSE-day02/src/com/inmind/test07/Test08.java
Normal file
83
javaSE-day02/src/com/inmind/test07/Test08.java
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
package com.inmind.test07;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
|
||||||
|
/*
|
||||||
|
按照斗地主的规则,完成洗牌发牌的动作。
|
||||||
|
具体规则:
|
||||||
|
|
||||||
|
使用54张牌打乱顺序,三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌。
|
||||||
|
|
||||||
|
分析:
|
||||||
|
1.准备54张牌(花色+数字)
|
||||||
|
2.洗牌(打乱顺序)
|
||||||
|
3.创建3个集合对象保存每个玩家的牌,创建1个集合保存底牌
|
||||||
|
4.打印集合的内容
|
||||||
|
*/
|
||||||
|
public class Test08 {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
//1.准备54张牌(花色+数字)
|
||||||
|
String[] colors = {"♠", "♥", "♣", "♦"};
|
||||||
|
String[] nums = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2"};
|
||||||
|
|
||||||
|
//创建一个集合保存54张牌
|
||||||
|
ArrayList<String> pokers = new ArrayList<>();
|
||||||
|
//循环的嵌套,拼接出54张牌,保存到集合中
|
||||||
|
for (String color : colors) {
|
||||||
|
for (String num : nums) {
|
||||||
|
String poker = color + num;
|
||||||
|
pokers.add(poker);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pokers.add("小王");
|
||||||
|
pokers.add("大王");
|
||||||
|
|
||||||
|
System.out.println(pokers);
|
||||||
|
System.out.println(pokers.size());
|
||||||
|
|
||||||
|
//2.洗牌(打乱顺序)
|
||||||
|
Collections.shuffle(pokers);
|
||||||
|
System.out.println("打乱之后:"+pokers);
|
||||||
|
|
||||||
|
//3.创建3个集合对象保存每个玩家的牌,创建1个集合保存底牌
|
||||||
|
ArrayList<String> player1 = new ArrayList<>();
|
||||||
|
ArrayList<String> player2 = new ArrayList<>();
|
||||||
|
ArrayList<String> player3 = new ArrayList<>();
|
||||||
|
ArrayList<String> dipai = new ArrayList<>();
|
||||||
|
|
||||||
|
/*
|
||||||
|
按顺序,轮着抓
|
||||||
|
玩家1 0 3 6 index%3 == 0
|
||||||
|
玩家2 1 4 7 index%3 == 1
|
||||||
|
玩家3 2 5 8 index%3 == 2
|
||||||
|
|
||||||
|
最后三张牌都给底牌
|
||||||
|
*/
|
||||||
|
|
||||||
|
for (int i = 0; i < pokers.size(); i++) {
|
||||||
|
String poker = pokers.get(i);
|
||||||
|
//最后三张都给底牌,其他的判断下分别发给我每个玩家
|
||||||
|
if (i >= 51) {//最后三张都给底牌
|
||||||
|
dipai.add(poker);
|
||||||
|
} else {
|
||||||
|
switch (i%3) {
|
||||||
|
case 0:
|
||||||
|
player1.add(poker);
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
player2.add(poker);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
player3.add(poker);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//4.打印集合的内容
|
||||||
|
System.out.println("玩家1:"+player1);
|
||||||
|
System.out.println("玩家2:"+player2);
|
||||||
|
System.out.println("玩家3:"+player3);
|
||||||
|
System.out.println("底牌:"+dipai);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user