Java——集合(模拟斗地主洗牌和发牌进行排序)
生活随笔
收集整理的這篇文章主要介紹了
Java——集合(模拟斗地主洗牌和发牌进行排序)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
//改進版,沒有進行按牌的地位從小到大排序
package com.yy.test;import java.util.ArrayList;
import java.util.Collections;public class Test2 {/*** * A:案例演示* 模擬斗地主洗牌核發牌,牌沒有排序* * 分析:* 1,買一副撲克,其實就是自己創建一個集合對象,將撲克牌存儲進去* 2,洗牌 shuffle方法* 3,發牌* 4,看牌* */public static void main(String[] args) {//1,買一副撲克,其實就是自己創建一個集合對象,將撲克牌存儲進去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)); //s1.concate(s2) :連接s1和s2兩個字符串}}
// System.out.println(poker); //打印52張牌
// System.out.println(poker.size()); //查看一共有多少張牌poker.add("小王"); //添加小王poker.add("大王"); //添加大王//2,洗牌Collections.shuffle(poker);
// System.out.println(poker);//3,發牌ArrayList<String> 高進 = new ArrayList<>();ArrayList<String> 龍五 = new ArrayList<>();ArrayList<String> 諺語 = new ArrayList<>();ArrayList<String> 底牌 = new ArrayList<>();for(int i = 0 ;i<poker.size();i++){if(i >= poker.size() - 3){底牌.add(poker.get(i)); //將三張底牌存儲在底牌集合中}else if(i % 3 == 0){高進.add(poker.get(i));}else if(i % 3 == 1){龍五.add(poker.get(i));}else {諺語.add(poker.get(i));}}//4,看牌System.out.println(高進);System.out.println(龍五);System.out.println(諺語);System.out.println(底牌);}}
//完整版,進行按牌的地位從小打到大進行排序
package com.yy.test;import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.TreeSet;public class Test3 {/*** * A:案例演示* 模擬斗地主洗牌核發牌,牌沒有排序* * 分析:* 1,買一副撲克,其實就是自己創建一個集合對象,將撲克牌存儲進去* 2,洗牌 shuffle方法* 3,發牌* 4,看牌* */public static void main(String[] args) {//1,買一副撲克,其實就是自己創建一個集合對象,將撲克牌存儲進去String [] num = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};String [] color = {"紅桃","黑桃","方片","梅花"};HashMap<Integer, String> hm = new HashMap<>(); //存儲索引和撲克牌ArrayList<Integer> list = new ArrayList<>(); //存儲索引int index = 0; //定義一個索引值 //拼接撲克牌并將索引和撲克牌存儲在HashMap中for(String s1 : num){ //獲取數字for(String s2 : color){ //獲取顏色hm.put(index, s2.concat(s1));list.add(index); //將索引0到51添加到list集合中index++;}}
// System.out.println(index);//將小王添加到雙列集合中hm.put(index, "小王");list.add(index); //將52索引添加到集合中index++;hm.put(index, "大王"); //將53索引添加到集合中list.add(index);
// System.out.println(hm);
// System.out.println(list);//2,洗牌Collections.shuffle(list);
// System.out.println(list);//3,發牌TreeSet<Integer> 高進 = new TreeSet<>();TreeSet<Integer> 龍五 = new TreeSet<>();TreeSet<Integer> 諺語 = new TreeSet<>();TreeSet<Integer> 底牌 = new TreeSet<>();for(int i = 0; i <list.size();i++){if(i >= list.size() - 3){底牌.add(list.get(i)); //將三張底牌存儲在底牌集合中}else if(i % 3 == 0){高進.add(list.get(i));}else if(i % 3 == 1){龍五.add(list.get(i));}else {諺語.add(list.get(i));}}//4,看牌 重復動作抽取方法lookPoker(hm,高進,"高進");lookPoker(hm,龍五,"龍五");lookPoker(hm,諺語,"諺語");lookPoker(hm,底牌,"底牌");
}/*** 看牌* 1,返回值類型void* 2,參數列表HashMap,TreeSet,String name* */public static void lookPoker(HashMap<Integer,String> hm , TreeSet<Integer> ts , String name){System.out.print(name + "的牌是:");for (Integer i : ts) { //i代表雙列集合中的每一個鍵System.out.print(hm.get(i) + " ");}System.out.println();}
}
總結
以上是生活随笔為你收集整理的Java——集合(模拟斗地主洗牌和发牌进行排序)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 摩尔庄园神秘湖在哪
- 下一篇: 塑钢窗多少钱一平啊?