javase模拟斗地主洗牌和发牌(54)
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                javase模拟斗地主洗牌和发牌(54)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                1、使用Arraylist集合:
1 package com.it18zhang.day08; 2 3 import java.util.ArrayList; 4 import java.util.Collections; 5 6 public class PokerDemo { 7 8 public static void main(String[] args) { 9 // TODO Auto-generated method stub 10 //牌合 11 ArrayList<String> al = new ArrayList<>(); 12 String[] colors={ "?", "?", "?", "?" }; 13 String[] nums={ "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", 14 "J", "Q", "K" }; 15 for (String color : colors) { 16 for (String num : nums) { 17 String pai=color.concat(num); 18 al.add(pai); 19 } 20 } 21 al.add("大王"); 22 al.add("小王"); 23 ArrayList<String> p1 = new ArrayList<>(); 24 ArrayList<String> p2 = new ArrayList<>(); 25 ArrayList<String> p3 = new ArrayList<>(); 26 ArrayList<String> dipai = new ArrayList<>(); 27 Collections.shuffle(al); 28 for(int i=0;i<al.size();i++){ 29 if(i>=al.size()-3){ 30 dipai.add(al.get(i)); 31 } 32 else if(i%3==0){ 33 p1.add(al.get(i)); 34 } 35 else if(i%3==1){ 36 p2.add(al.get(i)); 37 } 38 else if(i%3==2){ 39 p3.add(al.get(i)); 40 } 41 } 42 lookPoker("p1", p1); 43 lookPoker("p2", p2); 44 lookPoker("p3", p3); 45 } 46 public static void lookPoker(String name,ArrayList<String> array){ 47 System.out.println(name+"的牌是:"); 48 for (String string : array) { 49 System.out.print(string+" "); 50 } 51 System.out.println(); 52 } 53 }2、使用HashMap集合
1 package com.lianxi1; 2 3 import java.util.ArrayList; 4 import java.util.Collections; 5 import java.util.HashMap; 6 import java.util.TreeSet; 7 8 public class PokerDemo { 9 10 public static void main(String[] args) { 11 //牌盒,用于存放牌及編號 12 HashMap<Integer, String> map = new HashMap<>(); 13 //集合,用于存放編號 14 ArrayList<Integer> list = new ArrayList<>(); 15 //花色數組 16 String[] colors={"?", "?", "?", "?"}; 17 //點數數組 18 String[] nums={"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", 19 "K", "A", "2", }; 20 int index=0; 21 //分別存放牌及編號到集合中 22 for (String color : colors) { 23 for (String num : nums) { 24 String pork=color.concat(num); 25 map.put(index, pork); 26 list.add(index); 27 index++; 28 } 29 } 30 map.put(index, "小王"); 31 list.add(index); 32 index++; 33 map.put(index, "大王"); 34 list.add(index); 35 //洗牌(對編號集合進行) 36 Collections.shuffle(list); 37 //定義四個集合,用于存放底牌及玩家的手牌編號(由于排序,使用treeSet) 38 TreeSet<Integer> dipai = new TreeSet<>(); 39 TreeSet<Integer> p1 = new TreeSet<>(); 40 TreeSet<Integer> p2 = new TreeSet<>(); 41 TreeSet<Integer> p3 = new TreeSet<>(); 42 //發牌,實際是編號 43 for(int i=0;i<list.size();i++){ 44 if(i>=(list.size()-3)){ 45 dipai.add(list.get(i)); 46 } 47 else if(i % 3==0){ 48 p1.add(list.get(i)); 49 } 50 else if(i % 3==1){ 51 p2.add(list.get(i)); 52 } 53 else if(i % 3==2){ 54 p3.add(list.get(i)); 55 } 56 } 57 //看牌 58 lookPork("p1", p1, map); 59 lookPork("p2", p2, map); 60 lookPork("p3", p3, map); 61 lookPork("dipai", dipai, map); 62 63 } 64 //對人的牌進行遍歷 65 public static void lookPork(String name,TreeSet<Integer> ts,HashMap<Integer, String> map){ 66 System.out.println(name+"的手牌是:"); 67 for (Integer key : ts) { 68 System.out.print(map.get(key)+" "); 69 } 70 System.out.println(); 71 } 72 }?
轉載于:https://www.cnblogs.com/yihaifutai/p/6754353.html
總結
以上是生活随笔為你收集整理的javase模拟斗地主洗牌和发牌(54)的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 【VBA】多条件去重
 - 下一篇: 柠檬视频php源码,最新柠檬视频完整开源