62,614
社区成员
发帖
与我相关
我的任务
分享
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.TreeSet;
public class Test {
public static class Poke implements Comparable<Poke> {
public static int sIndex;
public Integer index;
public String color;
public Poke(String color) {
this.color = color;
this.index = sIndex++;
}
@Override
public String toString() { return color; }
@Override
public int compareTo(Poke o) { return index.compareTo(o.index); }
}
public static void main(String[] args) {
var pokes = new ArrayList<Poke>();
pokes.add(new Poke("大王"));
pokes.add(new Poke("小王"));
var colors = Arrays.asList("黑桃","红桃","梅花","方片");
var numbers = Arrays.asList("2","A","K","Q","J","10","9","8","7","6","5","4","3");
numbers.forEach(number -> colors.forEach(color -> pokes.add(new Poke(color + number))));
Collections.shuffle(pokes); // 洗牌
var xm = new TreeSet<Poke>();
var xh = new TreeSet<Poke>();
var xq = new TreeSet<Poke>();
while (!pokes.isEmpty()) {
xm.add(pokes.remove(0)); // 发牌
xh.add(pokes.remove(0)); // 发牌
xq.add(pokes.remove(0)); // 发牌
}
System.out.println("小明:" + xm);
System.out.println("小红:" + xh);
System.out.println("小强:" + xq);
}
}
运行效果如下:
小明:[黑桃2, 梅花2, 方片2, 红桃A, 梅花A, 方片A, 红桃K, 方片K, 黑桃Q, 梅花Q, 梅花J, 黑桃10, 红桃10, 梅花10, 黑桃9, 梅花8, 方片6, 梅花4]
小红:[黑桃A, 红桃J, 方片J, 方片10, 红桃9, 方片8, 黑桃7, 梅花7, 方片7, 红桃6, 梅花6, 黑桃5, 梅花5, 方片4, 黑桃3, 红桃3, 梅花3, 方片3]
小强:[大王, 小王, 红桃2, 黑桃K, 梅花K, 红桃Q, 方片Q, 黑桃J, 梅花9, 方片9, 黑桃8, 红桃8, 红桃7, 黑桃6, 红桃5, 方片5, 黑桃4, 红桃4]
for (String ste : shuzi) {
for (String str : huase) {
String poke = ste + str;
pokers.put(num, poke);
list.add(num);
num++;
}
}
package sdjgad;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class ddz {
public static void main(String[] args) {
//创建集合
Map<Integer, String> pokers = new HashMap<>();
List<Integer> list = new ArrayList();
String[] huase = {"梅花", "黑桃", "红桃", "方片"};
String[] shuzi = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2",};
int num = 0;
for (String str : huase) {
for (String ste : shuzi) {
String poke = str + ste;
pokers.put(num, poke);
list.add(num);
num++;
}
}
pokers.put(num, "大王");
list.add(num++);
pokers.put(num, "小王");
list.add(num);
System.out.println("全部派:"+pokers);
System.out.println("索引:"+list);
//发牌
Collections.shuffle(list);
List<Integer> xiaohua = new ArrayList<>();
List<Integer> xiaohei = new ArrayList<>();
List<Integer> xiaowang = new ArrayList<>();
List<Integer> dipai = new ArrayList<>();
System.out.println("洗过的牌:"+list);
for (int i =0; i < list.size();i++){
Integer pokeNUM=list.get(i);
if (i>=list.size()-3){
dipai.add(pokeNUM);
}else if (i%3==0){
xiaohua.add(pokeNUM);
}else if (i%3==1){
xiaohei.add(pokeNUM);
}else if (i%3==2){
xiaowang.add(pokeNUM);
}
}
System.out.println("小花:"+ kanpoker(xiaohua,pokers));
System.out.println("小黑:"+ kanpoker(xiaohei,pokers));
System.out.println("小王: "+kanpoker(xiaowang,pokers));
System.out.println("底牌:"+kanpoker(dipai,pokers));
}
private static String kanpoker(List <Integer>nums , Map<Integer,String>pokers){
Collections.sort(nums); //按顺序整理牌
StringBuilder sb= new StringBuilder();
for (Integer num :nums){
String poker= pokers.get(num);
sb.append(poker+" ");
}
String str = sb.toString();
return str.trim();
}
}