1.需求
使用一个集合对象存储一副扑克牌,将所有扑克牌的顺序打乱,然后分发给用集合表示的三个玩家和底牌,并打印玩家和底牌的集合内容。
2.步骤
- 买一副扑克牌,将花色和数字分别进行组合,生成所有的普通牌。手动添加大小王
- 洗牌 :使用Collections 工具类的shuffle()方法打乱牌的顺序
- 发牌 : 遍历牌堆,将每一张牌分发到三个玩家集合中,留三张作底牌
- 看牌 : 分别打印每个玩家集合的内容
2.1.买牌
分析1
- 创建数字数组 :nums
- 创建花色数组 : colors
- 循环嵌套拼接两数组
- String类的concat方法:colors[i].concat(nums[j])(X.concat(Y)输出结果为XY ; Y.concat(X)数出结果为YX)
package cn.itcast.demo2;
public class SendPokerTest {
public static void main(String[] args) {
//创建数字数组和花色数组
String[] nums = {
"3","4","5","6","7","8","9","K","Q","J","A","2"};
String[] colors = {
"♣","♦","♥","♠"};
//拼接两数组
for (int i = 0; i < nums.length; i++) {
for (int j = 0; j < colors.length; j++) {
colors[j].concat(nums[i]);
System.out.print(colors[j].concat(nums[i])+" ");
}
}
}
}
分析2
- 定义一个双列集合,键设置编号,值表示具体的牌 规则:编号越小牌越小(花色不同大小相同的牌怎么设置编号,为什么要设置编号)
- 定义一个单列集合,存储编号
- 循环嵌套两个数组,将牌添加进双列集合,将编号添加进单列集合
- 手动添加大小王
- 打印
package cn.itcast.demo2;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class SendPokerTest {
public static void main(String[] args) {
//创建数字数组和花色数组
String[] numbers = {
"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
String[] colors = {
"♣","♦","♥","♠"};
//定义一个num用于表示编号
int num = 0;
//定义一个双列集合,存储牌和牌的编号
Map<Integer,String> pokers = new HashMap<>();
//定义一个单列集合,存储牌的编号
List<Integer> list = new ArrayList