案例分析:
1.准备牌
-
54张牌,需要存储在一个集合中。
-
其中,有两张特殊的牌:大王和小王。
-
其它还有52张牌:
-
需要定义一个数组或者集合,存储4中花色:♠、♥、♣、♦。
-
还需要定义一个数组或者集合,存储13种牌:2、A、K、Q、J、10、9、8、7、6、5、4、3。
-
-
循环嵌套遍历两个数组或者集合,组装这52张牌,如:♠2、♠A、…♠3;♥2、♥A、…♥3;♣2、♣A、…♣3;♦2、♦A、…♦3;
2.洗牌
- 使用集合工具类collections的方法 static void shuffle(List<?> list)使用默认随机源对指定列表进行置换。进行洗牌。
3.发牌
-
要求:每人17张牌,剩余3张作为底牌,并且发牌时要一人一张轮流发牌:可以使用集合的索引(0-53)%3实现。
-
定义四个集合,存储三个玩家的牌和底牌
-
索引%3就有三种结果,分别为:0%3=0、1%3=1、2%3=2、3%3=0,所以可以发给三个人
-
但是需要三张底牌,所以索引>=51,改为给底牌发牌
4.看牌