买牌,洗牌,发牌,看牌
import java.util.ArrayList;
import java.util.Collections;
public class poker {
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] num = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
String[] color = {"红桃","方片","梅花","黑桃"};
ArrayList<String> poker = new ArrayList<>();
for(String s1 :color) {
for(String s2 : num) {
poker.add(s1.concat(s2)); //concat连接两个字符串
}
}
poker.add("小王");
poker.add("大王");
//洗牌
Collections.shuffle(poker);
//发牌
ArrayList<String> layzhang = new ArrayList<>();
ArrayList<String> parkchanyeol = new ArrayList<>();
ArrayList<String> me = new ArrayList<>();
ArrayList<String> dipai = new ArrayList<>();
for(int i=0;i<poker.size();i++) {
if(i>=poker.size()-3) {
dipai.add(poker.get(i));
}else if(i%3 ==0) {
layzhang.add(poker.get(i));
}else if(i%3 == 1) {
parkchanyeol.add(poker.get(i));
}else if(i%3 == 2) {
me.add(poker.get(i));
}
}
System.out.println(layzhang);
System.out.println(parkchanyeol);
System.out.println(me);
System.out.println(dipai);
}
}
图解:
对牌排序:
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.TreeSet;
public class sortpoker {
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] num = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
String[] color = {"红桃","方片","梅花","黑桃"};
HashMap<Integer, String> hm = new HashMap<>(); //存储索引和扑克牌
ArrayList<Integer> list = new ArrayList<>(); //存储索引
int index = 0;
for(String s1 : num) {
for(String s2 : color) {
hm.put(index, s2.concat(s1)); //将花色牌大小连接起来并存储到hm集合中
list.add(index); //存储对应索引
index++; //索引+1
}
}
hm.put(index, "小王"); //存储小王
list.add(index); //存储对应索引
index++; //索引自增
hm.put(index, "大王"); //存储大王
list.add(index);
index++;
//洗牌
Collections.shuffle(list);//只需要打乱索引顺序即可
//发牌
TreeSet<Integer> layzhang = new TreeSet<>(); //创建人
TreeSet<Integer> parkchanyeol = new TreeSet<>();
TreeSet<Integer> me = new TreeSet<>();
TreeSet<Integer> dipai = new TreeSet<>();
for(int i=0;i<list.size();i++) {
if(i>=hm.size()-3) {
dipai.add(list.get(i)); //存储索引
}else if(i%3 ==0) {
layzhang.add(list.get(i));
}else if(i%3 == 1) {
parkchanyeol.add(list.get(i));
}else if(i%3 == 2) {
me.add(list.get(i));
}
}
lookpoker(hm,layzhang,"layzhang"); //看牌
lookpoker(hm,parkchanyeol,"parkchanyeol");
lookpoker(hm,me,"me");
lookpoker(hm,dipai,"dipai");
}
public static void lookpoker(HashMap<Integer,String> hm ,TreeSet<Integer> s,String name) {
System.out.println(name + "的牌是" );
for(Integer i : s) { //遍历集合索引
System.out.print(hm.get(i) + " "); //根据索引找到map中的对应牌
}
System.out.println();
}
}