模擬鬥地主洗牌和發牌並對牌進行排序
阿新 • • 發佈:2018-12-10
package com.luffy.map; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.TreeSet; public class Demo2 { public static void main(String[] args) { // TODO Auto-generated method stub // 1撲克 String[] num = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2"}; String[] color = {"紅桃", "黑桃", "方塊", "梅花"}; HashMap<Integer, String> poker = new HashMap<>(); ArrayList<Integer> pokerIndex = new ArrayList<>(); int index = 0; for (String s1 : num) { for (String s2 : color) { poker.put(index, s2.concat(s1)); pokerIndex.add(index); index += 1; } } System.out.println(index); // 洗牌 對index進行亂序 Collections.shuffle(pokerIndex); // for (Integer key : pokerIndex) { // System.out.println(poker.get(key) ); // } // 發牌 TreeSet會自動對index進行排序 TreeSet<Integer> number1 = new TreeSet<>(); TreeSet<Integer> number2 = new TreeSet<>(); TreeSet<Integer> number3 = new TreeSet<>(); TreeSet<Integer> dipai = new TreeSet<>(); for (int index2 = 0; index2 < poker.size() - 3; index2++) { if (index2 % 3 == 0) { number1.add(pokerIndex.get(index2)); } else if (index2 % 3 == 1) { number2.add(pokerIndex.get(index2)); } else { number3.add(pokerIndex.get(index2)); } } dipai.add(pokerIndex.get(poker.size()-3)); dipai.add(pokerIndex.get(poker.size()-2)); dipai.add(pokerIndex.get(poker.size()-1)); // 看牌 lookPoker("numbr1", number1, poker); lookPoker("number2", number2, poker); lookPoker("numbr3", number3, poker); lookPoker("dipai", dipai, poker); } private static void lookPoker(String name, TreeSet<Integer> number1, HashMap<Integer, String> poker) { // TODO Auto-generated method stub System.out.println("name" + "=" + name); for (Integer integer : number1) { System.out.print(poker.get(integer)); } System.out.println(); } }