用户名同QQ号

 

java之斗地主

hashmap集合+ArrayList集合+Collections集合工具类shuffle()和sort()
hashmap中get(key)、put(key/value)
Arraylist中的add()、get(下标值),此时ArrayLIST集合相当于hashmap中的set集合,可以使用迭代器或者增强for遍历内容
或者不使用Arraylist,直接使用entryset得到Map.entry<E>,使用getkey和getvalue得到key值
1
package com.oracle.demo01; 2 import java.util.ArrayList; 3 import java.util.Collections; 4 import java.util.HashMap; 5 6 public class Doudizhu { 7 public static void main(String[] args) { 8 //定义扑克牌Map 默认按照key值从小到大排序 9 HashMap<Integer,String> pooker=new HashMap<Integer,String>(); 10 //定义装有扑克牌号的集合 单独的与map集合数字一致2 11 ArrayList<Integer> pookerNum=new ArrayList<Integer>(); 12 //封装数据 4种花色(13个牌)+大小王 13 String[] color={"","","",""};//点击选择utf-8保存 14 String[] number={"2","A","K","Q","J","10","9","8","7","6","5","4","3"}; 15 //嵌套for循环,先数字,后花色 16 int index=2; 17 for(String n:number){ 18 for(String c:color){ 19 pooker.put(index,c+n); 20 pookerNum.add(index); 21 index++; 22 } 23 } 24 //封装大小王 25 pooker.put(0, "大王"); 26 pooker.put(1, "小王"); 27 pookerNum.add(0); 28 pookerNum.add(1); 29 30 //测试 31 // System.out.println(pooker); 32 //洗牌 33 Collections.shuffle(pookerNum); 34 //创建四个容器 35 ArrayList<Integer> player1=new ArrayList<Integer>(); 36 ArrayList<Integer> player2=new ArrayList<Integer>(); 37 ArrayList<Integer> player3=new ArrayList<Integer>(); 38 ArrayList<Integer> bottom=new ArrayList<Integer>(); 39 for(int i=0;i<pookerNum.size();i++){ 40 if(i<3){ 41 bottom.add(pookerNum.get(i)); 42 }else if(i%3==0){ 43 player1.add(pookerNum.get(i)); 44 }else if(i%3==1){ 45 player2.add(pookerNum.get(i)); 46 }else if(i%3==2){ 47 player3.add(pookerNum.get(i)); 48 } 49 } 50 //排序 51 Collections.sort(player1); 52 Collections.sort(player2); 53 Collections.sort(player3); 54 Collections.sort(bottom); 55 //遍历看牌 56 System.out.println(); 57 look("1",pooker,player1); 58 look("2",pooker,player2); 59 look("3",pooker,player3); 60 look("底牌",pooker,bottom); 61 } 62 //通用的方法 63 public static void look(String Name,HashMap<Integer,String> pooker, 64 ArrayList<Integer> bottom){ 65 System.out.print(Name+":"); 66 for(Integer number:bottom){ 67 System.out.print(pooker.get(number)+" "); 68 } 69 System.out.println(); 70 } 71 }
 1 package com.oracle.demo01;
 2 
 3 import java.util.ArrayList;
 4 import java.util.Collections;
 5 import java.util.HashMap;
 6 import java.util.Iterator;
 7 
 8 public class DouDiZhu3 {
 9 public static void main(String[] args) {
10     //定义map集合
11     HashMap<Integer,String> big=
12             new HashMap<Integer,String>();
13     ArrayList<Integer> arr=new ArrayList<Integer>();
14     //封装数据,通过内外循环,拼接字符串
15     String[] arr1={"","","",""};
16     String[] arr2={"2","A","K","Q","J","10","9","8","7","6","5","4","3"};
17     //拼接字符串,并存入map集合中
18     int index=2;
19     for(String r2:arr2){
20         for(String r1:arr1){
21             //必须创建不同的对象,进行存储
22             arr.add(index);
23             //System.out.println(arr);
24             big.put(index, r1+r2);
25         /*    //对arr进行整体的清空
26             arr.clear();*/
27             index++;
28         }
29     }
30     //封装大小王  
31     big.put(0, "大王");
32     big.put(1, "小王");
33     arr.add(0);
34     arr.add(1);
35     //此时为一个对象,会出现值覆盖问题
36     /*big.put(new ArrayList<Integer>(0), "大王");
37     big.put(new ArrayList<Integer>(1), "小王");*/
38     //测试是否存储成功,map自己调用tostring()
39     System.out.print(big);
40      //洗牌
41     Collections.shuffle(arr);
42     //创建四个容器
43     ArrayList<Integer>  player1=new  ArrayList<Integer>();
44     ArrayList<Integer>  player2=new  ArrayList<Integer>();
45     ArrayList<Integer>  player3=new  ArrayList<Integer>();
46     ArrayList<Integer>  bottom=new  ArrayList<Integer>();
47     for(int i=0;i<arr.size();i++){
48      if(i<3){
49       bottom.add(arr.get(i));
50      }else if(i%3==0){
51       player1.add(arr.get(i));
52      }else if(i%3==1){
53       player2.add(arr.get(i));
54      }else if(i%3==2){
55       player3.add(arr.get(i));
56      }
57     }
58     //排序
59     Collections.sort(player1);
60     Collections.sort(player2);
61     Collections.sort(player3);   
62     Collections.sort(bottom);
63     //遍历看牌
64     System.out.println();
65     look("1",big,player1);
66     look("2",big,player2);
67     look("3",big,player3);
68     look("底牌",big,bottom);
69    }
70    //通用的方法
71    public static void look(String Name,HashMap<Integer,String>  big,
72      ArrayList<Integer>  bottom){
73     System.out.print(Name+":");
74    //创建迭代器对象  数据类型与要遍历的集合数据类型一致
75     Iterator<Integer> i=bottom.iterator();
76     while(i.hasNext()){
77         int ii=i.next();//对象调用
78         System.out.print(big.get(ii)+"   ");
79     }
80    System.out.println();
81    }
82 }

posted on 2020-01-06 10:11  用户名同QQ号  阅读(328)  评论(1编辑  收藏  举报

导航