模拟鬥地主洗牌和發牌以及看牌排序:
分析:
1,買一副撲克,其實就是自己建立一個集合對象,将撲克牌存儲進去
String[] num = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
String[] color = {"紅桃","黑桃","方片","梅花"};
組成字元串54個字元串,添加大王和小王,可以采用ArrayList實作存儲的功能
2,洗牌:Collection.shuff()
3,發牌:循環 第一個發完 第二個發完 第三個發完
4,看牌:
(1)列印每個數組的内容(要求排序),ArrayList也可以排序的
(2)可以采用TreeSet 對排進行排序實作
代碼:
一個包兩個類:
PokeTest.java:
package day_015.poke;
/*
* 模拟鬥地主洗牌和發牌以及看牌排序:
分析:
1,買一副撲克,其實就是自己建立一個集合對象,将撲克牌存儲進去
String[] num = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
String[] color = {"紅桃","黑桃","方片","梅花"};
組成字元串54個字元串,添加大王和小王,可以采用ArrayList實作存儲的功能
2,洗牌:Collection.shuff()
3,發牌:循環 第一個發完 第二個發完 第三個發完
4,看牌:
(1)列印每個數組的内容(要求排序),ArrayList也可以排序的
(2)可以采用TreeSet 對排進行排序實作
*/
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.TreeSet;
public class PokeTest {
public static void main(String[] args) {
List<Poke> al = new ArrayList<>();
String[] num = { "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2" };
String[] color = { "方塊", "紅桃", "梅花", "黑桃" };
String[] king = { "小王", "大王" };
al.add(new Poke(king[1], 54));
al.add(new Poke(king[0], 53));
for (int i = 52; i > 0;) {
for (int j = 3; j >= 0; j--) {
for (int k = 12; k >= 0; k--) {
al.add(new Poke(color[j] + num[k], i));
i--;
}
}
}
// 好牌
System.out.println("打亂前:");
for (Poke p : al) {
System.out.println(p);
}
// 洗牌
Collections.shuffle(al);
System.out.println("打亂後:");
for (Poke p : al) {
System.out.println(p);
}
// 發牌
System.out.println("發牌:");
System.out.println("第一個:");
for (int i = 0; i < 17; i++) {
System.out.println(al.get(i));
}
System.out.println("第二個:");
for (int i = 17; i < 34; i++) {
System.out.println(al.get(i));
}
System.out.println("第三個:");
for (int i = 34; i < 51; i++) {
System.out.println(al.get(i));
}
System.out.println("地主牌:");
for (int i = 51; i < 54; i++) {
System.out.println(al.get(i));
}
// 看牌
TreeSet<Poke> tS = new TreeSet<>(new Comparator<Poke>() {
@Override
public int compare(Poke o1, Poke o2) {
return o1.getWeight() < o2.getWeight() ? 1 : -1;
}
});
System.out.println("看牌(排好順序):");
List<Poke> alTemp = new ArrayList<>();
// 排序第一個人
System.out.println("第一個:");
for (int i = 0; i < 17; i++) {
alTemp.add(al.get(i));
}
tS.addAll(alTemp);
for (Poke p : tS) {
System.out.println(p);
}
alTemp.clear();
tS.clear();
// 排序第二個人
System.out.println("第二個:");
for (int i = 17; i < 34; i++) {
alTemp.add(al.get(i));
}
tS.addAll(alTemp);
for (Poke p : tS) {
System.out.println(p);
}
alTemp.clear();
tS.clear();
// 排序第三個人
System.out.println("第三個:");
for (int i = 34; i < 51; i++) {
alTemp.add(al.get(i));
}
tS.addAll(alTemp);
for (Poke p : tS) {
System.out.println(p);
}
alTemp.clear();
tS.clear();
// 排序地主牌
System.out.println("地主牌:");
for (int i = 51; i < 54; i++) {
alTemp.add(al.get(i));
}
tS.addAll(alTemp);
for (Poke p : tS) {
System.out.println(p);
}
alTemp.clear();
tS.clear();
}
}
Poke.java:
package day_015.poke;
public class Poke {
private String poke;
private int weight;
public String getPoke() {
return poke;
}
public void setPoke(String poke) {
this.poke = poke;
}
public int getWeight() {
return weight;
}
public void setWeight(int weight) {
this.weight = weight;
}
public Poke(String poke, int weight) {
super();
this.poke = poke;
this.weight = weight;
}
@Override
public String toString() {
return "Poke:" + poke + ", weight:" + weight;
}
}