零、所涉及的方法
1、数组
2、List集合
3、Collections(迭代器、shuffle)
一、准备牌
1、特殊牌:大王,小王
2、52张牌:循环嵌套遍历两个数组组装52张牌
3、将64张牌存储存List集合中
String[] joke = {"大王", "小王"};
String[] others = {"2", "A", "K", "Q",
"J", "10", "9", "8", "7", "6", "5", "4", "3"};
String[] color = {"♣", "♦", "♠", "♥"};
ArrayList<String> pocket = new ArrayList<>();
for (int i = 0; i < 13; i++) {
for (int i1 = 0; i1 < 4; i1++) {
pocket.add(color[i1] + others[i]);
}
}
pocket.add(joke[0]);
pocket.add(joke[1]);
二、洗牌
调用Collections父类的shuffle方法打乱List集合中元素的顺序
Collections.shuffle(pocket);//打乱牌的顺序(洗牌)
三、发牌
一共有54张牌
我们通过对54对3取余 ,以获得三种情况分别是
余数为0-----一号玩家
余数为2-----二号玩家
余数为3-----三号玩家
当只剩下三张牌时,停止发牌作为底牌
首先创建四个集合(三个玩家一个存储底牌)
ArrayList<String> player1 = new ArrayList<>();
ArrayList<String> player2 = new ArrayList<>();
ArrayList<String> player3 = new ArrayList<>();
ArrayList<String> remain = new ArrayList<>();
开始发牌if语句套for循环
for (int i = 0; i < 54; i++) {
if (i <=50) {
if (i % 3 == 0) {
player1.add(pocket.get(i));
} else if (i % 3 == 1) {
player2.add(pocket.get(i));
} else if (i % 3 == 2) {
player3.add(pocket.get(i));
}
}else if(i > 50) {
remain.add(pocket.get(i));
}
}
四、看牌
通过迭代器遍历集合
Iterator<String> i = player1.iterator();
Iterator<String> f = player2.iterator();
Iterator<String> d = player3.iterator();
Iterator<String> n = remain.iterator();
==遍历数组 ==
while (i.hasNext()) {
System.out.print(i.next() + ",");
}
System.out.println(" ");
while (f.hasNext()) {
System.out.print(f.next() + ",");
}
System.out.println(" ");
while (d.hasNext()) {
System.out.print(d.next() + ",");
}
System.out.println(" ");
while (n.hasNext()) {
System.out.print(n.next() + ",");
}
测试确认功能实现