遇到的问题:

  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();//这里就是intfor(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);}}

还是蛮有意思的~

转载于:https://www.cnblogs.com/gaoquanquan/p/9620066.html

java——斗地主小游戏之洗牌发牌相关推荐

  1. 斗地主小游戏之洗牌发牌

    代码 public class PokerShuffleCards {public static void main(String[] args) {// 准备花色ArrayList<Strin ...

  2. 通过程序实现斗地主过程中的洗牌,发牌和看牌(简约版)

    需求:通过程序实现斗地主过程中的洗牌,发牌和看牌 思路: 创建一个牌盒,也就是定义一个集合对象,用ArrayList集合实现 往牌盒里面装牌 洗牌,也就是说把牌打撒,用Collections的shuf ...

  3. Java项目:模拟扑克牌洗牌发牌排序

    用JAVA实现简单的扑克牌洗牌发牌并排序,首先写代码之前需要明确需要分哪些步骤: 创建一个HashMap集合对象 创建一个ArrayList集合对象 生成一副扑克牌 将扑克牌按照键值关系添加到Hash ...

  4. 用JAVA实现简单的扑克牌洗牌发牌并排序

    用JAVA实现简单的扑克牌洗牌发牌并排序,首先写代码之前需要明确需要分哪些步骤: 创建一个HashMap集合对象 创建一个ArrayList集合对象 生成一副扑克牌 将扑克牌按照键值关系添加到Hash ...

  5. 用JAVA编程实现斗地主小游戏(建牌,发牌,选地主,排序)

    JAVA编程实现斗地主小游戏 主程序 排序算法 主程序 public static void main(String[] args) {//牌List<String> pokes = ne ...

  6. JAVA控制台扑克牌游戏,洗牌,发牌,比较大小

    此游戏是一个简单的并且很基础的java控制台程序.这个扑克牌游戏主要的游戏过程是:首先创建一副扑克牌,创建好了后要进行洗牌,牌洗好了,需要玩家来玩,接下来就创建玩家.有洗好的牌,也有玩家了,那么就开始 ...

  7. Java斗地主小游戏有序版

    题目 斗地主综合案例:有序版 1.准备牌:大王小王 52张牌:循环嵌套遍历两个集合,组装52张牌 可以使用Map<Integer,String>集合储存牌的索引+组装好的牌.创建一个Lis ...

  8. Java斗地主小游戏代码

    package com.map; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; ...

  9. 【案例 6-4】斗地主洗牌发牌

    [案例介绍] 1.任务描述 斗地主的扑克牌游戏,相信许多人都会玩,本例要求编写一个斗地主的洗牌发牌程序,要求按照斗地主的规则完成洗牌发牌的过程.一副扑克总共有 54 张牌,牌面由花色和数字组成(包括 ...

最新文章

  1. yii2-Ueditor百度编辑器
  2. python使用什么来表示不同级别的语句块-python通过什么来区分不同的语句块?
  3. 等值数目-------2012年12月26日
  4. Qt Creator使用文本编辑宏
  5. 【linux】查看内存使用情况
  6. 报表怎样实现滚动的公告效果?
  7. 狭义上讲侠义计算机安全,狭义的会计电算化是什么
  8. Hibernate常用的Java数据类型映射到mysql和Oracle
  9. Bootstrap 排版强调
  10. 蓝桥杯 入门训练 圆的面积
  11. android selector 的item/不能是空节点
  12. 端口映射内网穿透——网络通
  13. 【介绍了Sentaurus TCAD结构编辑器中可用的网格掺杂操作】
  14. 强化学习:Markov Decision Process (基于南大俞扬博士演讲的修改和补充)
  15. Prometheus(普罗米修斯)监控系统
  16. InnoDB的MVCC如何解决不可重复读和快照读的幻读,当前读用next-key解决幻读
  17. 2019年第三季度 公链发展状况研究报告 |链塔智库
  18. 成功项目策划“四要素”
  19. 编写函数long fun(int high,int n),功能是:计算并返回high以内(不包含high)最大的n个素数之和。若不足n个,则到最小素数2为止。例如:若high=100,n=10,则函数
  20. HIFI音频解码芯片ES9023

热门文章

  1. 【Android入门】零二、Gradle配置(国内镜像、jetpack)
  2. CSS3 transition实现超酷图片墙动画效果
  3. Pr:制作片尾滚动字幕(旧版标题法)
  4. pr制作片尾滚动字幕
  5. acwing 838. 堆排序 (手写一个堆)
  6. 最长公共子序问题 ( LCS, Longest Commom Subsequence )POJ-1458
  7. dpm hsc_HSC的完整形式是什么?
  8. editplus 一些快捷键
  9. Linux安装搜狗输入法(for ubuntu)
  10. 考研英语二计算机国家线,考研计算机历年国家线_2021研究生招生信息网