一、买一副扑克牌
分析:
创建数字数组:String[] nums = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
创建花色数组:String[] colors = {"方片","梅花","红桃","黑桃"};
将每一个花色分别和数字进行拼接:colors[i].concat(nums[j]);
import java.util.*;
?
public class Test01 {
?
?
public static void main(String[] args) {
//1.买牌
//1.1 定义一个双列集合,键:表示牌的编号 规则:编号越小,牌越小
Map<Integer,String> map = new HashMap<>();
//1.2 定义一个单列集合,用来存储所有牌的编号
List<Integer> list = new ArrayList<>();
//1.3 具体的买牌动作
// 普通牌
String[] colors={"?","?","?","?"};
String[] numbers={"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
int num=0; //表示牌的编号
// 通过循环嵌套 造普通牌
for (String number : numbers) { // 外循环,获取所有的点数
for (String color : colors) { // 内循环,获取所有的花色
String s1=color+number;
// 将牌的编号,具体的牌放到双列集合中
map.put(num,s1);
// 将牌的编号放到单列集合中
list.add(num);
// 没添加一张牌,编号要自增一
num++;
}
}
// 大小王
map.put(num,"小王");
list.add(num++);
map.put(num,"大王");
list.add(num);
// 打印牌
System.out.println("所有的牌:"+map);
System.out.println("牌的编号:"+list);
?
//2. 洗牌
Collections.shuffle(list);
System.out.println(list);
?
//3. 发牌
//3.1 定义四个集合,分别表示三个玩家,底牌
List<Integer> list1 = new ArrayList<>();
List<Integer> list2 = new ArrayList<>();
List<Integer> list3 = new ArrayList<>();
List<Integer> list4 = new ArrayList<>();
//3.2 具体的发牌动作,将索引和 3 取模,决定发给谁
for(int i=0;i<list.size();i++){
// 获取编号
Integer PokerNum = list.get(i);
if(i>=list.