zoukankan      html  css  js  c++  java
  • java——斗地主小游戏之洗牌发牌

    遇到的问题:

      1.int和Integer的区别?

        1)Integer是int的包装类,int则是java的一种基本数据类型 。

        2)Integer变量必须实例化后才能使用,而int变量不需要 。

        3)Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值 。

        4)Integer的默认值是null,int的默认值是0。

    Cards.java:

    import java.util.*;
    public class Card{
        public static void main(String[] args){
            ArrayList<String> color = new ArrayList<String>();
            ArrayList<String> num = new ArrayList<String>();
            color.add("♠️");
            color.add("♥️");
            color.add("◇");
            color.add("♣️");
            for(int i=2; i<=10; i++){
                //很神奇,可以把add()里面的数据变成字符串
                num.add(i+ "");
            }
            num.add("J");
            num.add("A");
            num.add("K");
            num.add("Q");//map是一副牌 54张
            HashMap<Integer, String> map = new HashMap<Integer, String>();
            int index = 0;
            for (String thisColor: color){
                for (String thisNum: num){
                    map.put(index++, thisColor + thisNum);
                }
            }
            map.put(index++, "小王");
            map.put(index++, "大王");
            ArrayList<Integer> cards = new ArrayList();
            //这里就是int
            for(int i=0; i<54; i++){
                cards.add(i);
            }
            //将cards顺序打乱
            Collections.shuffle(cards);
            //System.out.println(cards);
            //System.out.println(map);
    
            //创建三个玩家
            ArrayList<Integer> player1 = new ArrayList();
            ArrayList<Integer> player2 = new ArrayList();
            ArrayList<Integer> player3 = new ArrayList();
            ArrayList<Integer> SecreatCards = new ArrayList();
            for(int i=0; i<cards.size(); i++){
                if(i>50){
                    SecreatCards.add(cards.get(i));
                }else if(i%3 == 0){
                    player1.add(cards.get(i));
                }else if(i%3 == 1){
                    player2.add(cards.get(i));
                }else {
                    player3.add(cards.get(i));
                }
            }
            Collections.sort(player1);
            Collections.sort(player2);
            Collections.sort(player3);
            ArrayList<String> sPlayer1 = new ArrayList<String>();
            ArrayList<String> sPlayer2 = new ArrayList<String>();
            ArrayList<String> sPlayer3 = new ArrayList<String>();
            for(Integer key : player1){
                //这里的key应该是object类,所以用Integer而不是int
                sPlayer1.add(map.get(key));
            }
            for(Integer key : player2){
                sPlayer2.add(map.get(key));
            }
            for(Integer key : player3){
                sPlayer3.add(map.get(key));
            }
            System.out.println("player1:" + sPlayer1);
            System.out.println("player2:" + sPlayer2);
            System.out.println("player3:" + sPlayer3);
            System.out.println("底牌:" + SecreatCards);
        }
        
    }

    还是蛮有意思的~

     

  • 相关阅读:
    Elasticsearch 检索
    Elasticsearch 基本操作
    Elasticsearch 集群
    Elasticsearch 插件head和kibana
    Elasticsearch 安装
    CentOS 安装JDK
    前端登录密码加密传输
    springboot2.0 快速集成kafka
    原来自定义模型绑定器还可以这么玩
    Value cannot be null or empty. 参数名: contentPath
  • 原文地址:https://www.cnblogs.com/gaoquanquan/p/9620066.html
Copyright © 2011-2022 走看看