思路
1、组装一副牌
2、在遍历组装好的扑克牌前先把大小王存储起来
3、打乱扑克牌的顺序
4、遍历扑克牌
5、首先把三张底牌抽取出来存储
6、依次给三个玩家发牌
7、看牌

组装前的准备工作

        //存储牌和索引Map<Integer,String> poker = new HashMap<>();//存储纸牌索引List<Integer> pokerIndex = new ArrayList<>();//花色和数字List<String> colors = List.of("♠","♥","♣","♦");List<String> nums = List.of("A","2","3","4","5","6","7","8","9","10","J","Q","K");

存储大小王

        //索引int index = 0;//先把大王和小王存储poker.put(index,"大王");pokerIndex.add(index);index += 1;poker.put(index,"小王");pokerIndex.add(index);index += 1;

开始组装

        for (String num : nums) {for (String color : colors) {poker.put(index,num+color);pokerIndex.add(index);index += 1;}}

打乱顺序

Collections.shuffle(pokerIndex);

发牌给玩家(先存储三张底牌)

        List<Integer> player01 = new ArrayList<>();List<Integer> player02 = new ArrayList<>();List<Integer> player03 = new ArrayList<>();List<Integer> downPoker = new ArrayList<>();for (int i = 0; i < pokerIndex.size(); i++) {Integer integer = pokerIndex.get(i);if (i >= 51){downPoker.add(integer);}else if (i % 3 == 0){player01.add(integer);}else if (i % 3 == 1){player02.add(integer);}else if (i % 3 == 2){player03.add(integer);}}

看牌的方法

    public static void seePoker(String name,Map<Integer,String> poker,List<Integer> pokerIndex){System.out.print(name+":");for (Integer key : pokerIndex) {String value = poker.get(key);System.out.print(value+" ");}System.out.println();}

效果

源代码

public class Poker {public static void main(String[] args) {//存储牌和索引Map<Integer,String> poker = new HashMap<>();//存储纸牌索引List<Integer> pokerIndex = new ArrayList<>();//花色和数字List<String> colors = List.of("♠","♥","♣","♦");List<String> nums = List.of("A","2","3","4","5","6","7","8","9","10","J","Q","K");//索引int index = 0;//先把大王和小王存储poker.put(index,"大王");pokerIndex.add(index);index += 1;poker.put(index,"小王");pokerIndex.add(index);index += 1;for (String num : nums) {for (String color : colors) {poker.put(index,num+color);pokerIndex.add(index);index += 1;}}List<Integer> player01 = new ArrayList<>();List<Integer> player02 = new ArrayList<>();List<Integer> player03 = new ArrayList<>();List<Integer> downPoker = new ArrayList<>();Collections.shuffle(pokerIndex);for (int i = 0; i < pokerIndex.size(); i++) {Integer integer = pokerIndex.get(i);if (i >= 51){downPoker.add(integer);}else if (i % 3 == 0){player01.add(integer);}else if (i % 3 == 1){player02.add(integer);}else if (i % 3 == 2){player03.add(integer);}}Collections.sort(player01);Collections.sort(player02);Collections.sort(player03);Collections.sort(downPoker);seePoker("玩家A",poker,player01);seePoker("玩家B",poker,player02);seePoker("玩家C",poker,player03);seePoker("底 牌",poker,downPoker);}public static void seePoker(String name,Map<Integer,String> poker,List<Integer> pokerIndex){System.out.print(name+":");for (Integer key : pokerIndex) {String value = poker.get(key);System.out.print(value+" ");}System.out.println();}
}

java小游戏之扑克牌相关推荐

  1. 各种经典java小游戏_Java是这个世界上最好的语言!

    为什么? 请看TIOBE最新发布的编程语言排行榜: TIOBE开发语言排行榜每月更新一次,其结果可以用来检阅开发者的编程技能能否跟上趋势,或是否有必要作出战略改变,以及什么编程语言是应该及时掌握的. ...

  2. Java小游戏:模仿微信群发红包

    Java小游戏:模仿微信群发红包 微信群主发普通红包,普通红包规则: 群主的一笔金额,从群主余额中扣除,平均分成n等分,让群员领取. 成员领取红包后,保存到余额中. 请根据规则,完成案例中所有类的定义 ...

  3. 《Java小游戏实现》:坦克大战

    <Java小游戏实现>:坦克大战 前面写了一个简单的聊天小程序,今天开始就写一个坦克大战的游戏,算是对Java相关小知识点的一个应用. 这个游戏的完成,我们也是分步完成,逐步累加,一个一个 ...

  4. java小游戏-超级玛丽

    java小游戏-java小游戏-超级玛丽 1 创建窗口 2 创建并完成常量类 3 创建背景类 4 绘制背景类 5 创建障碍物 6 第一关的设计 7 第二关的设计 8 第三关的设计 9 创建马里奥类 1 ...

  5. java小游戏-java小游戏-大鱼吃小鱼

    java小游戏-java小游戏-大鱼吃小鱼 1 创建窗口 2 添加背景图 3 启动封面 4 启动页面的点击事件 5 游戏开始时的背景添加 6 双缓存解决闪屏问题 7 地方第一条小鱼的添加 8 敌方左方 ...

  6. java小游戏之捕鱼达人,学了java,妈妈不再担心我去网吧游戏厅了!

    Java小项目捕鱼达人 跪求关注,祝关注我的人都:身体健康,财源广进,福如东海,寿比南山,早上贵子,从不掉发! 捕鱼达人这款游戏,相信和我年纪相仿的朋友,肯定很熟悉.在当时半智能手机和智能手机刚刚出现 ...

  7. java小游戏——飞翔的小鸟(java初学作品)

    注:学习了java基础后,做出来的一个小作品,可以用来巩固学习 概述: 飞翔的小鸟能够作为Java基础的收官之作,包涵了Java很多的基础知识,在学习完Java基础后,尝试编写一些东西,能够起到很好的 ...

  8. java小游戏------Flappy Bird(飞翔的小鸟含源码)

    前言:本小游戏可作为java入门阶段收尾创作. 需:掌握面向对象的使用,了解多线程和异常处理等知识. 如上图所示:我们需要绘制背景,小鸟,障碍物,当然也包括游戏开始界面以及死亡界面. 一:思路解析: ...

  9. java小游戏-飞翔的小鸟

    java小游戏-ava小游戏-飞翔的小鸟 1 游戏窗口的显示 2 游戏背景添加 3 背景颜色的添加 4 屏幕中绘制小鸟 5 实现小鸟上下移动 6 解决屏幕闪烁问题 7 云彩的添加与移动 8 云彩的自动 ...

最新文章

  1. Ril分析五——ril学习总结
  2. 小眼睛适合大框还是小框眼镜_北京潘家园眼镜城良心商家推荐
  3. jQuery源码分析系列(37) : Ajax 总结
  4. 已知三角形三点坐标求角度_2019高考数学:解三角形——正弦定理和余弦定理的解题技巧和模型...
  5. 360安全卫士 导致MySQL 5.0.24 自动关闭
  6. 北京科技大学研究生考试 《工程热力学》(2003年-2011年)
  7. bzoj2957:楼房重建
  8. Linux kernel 本地拒绝服务漏洞
  9. WKWebview加载本地图片时出现路径问题
  10. python线程通信 消息传递_Python并发编程之线程消息通信机制/任务协调(四)
  11. Git—代码管理、提交及冲突解决流程的思考
  12. python解决现实问题的思想_高级语言程序设计(Python)
  13. Atitit.编程语言原理---方法重载的实现与设计 调用方法的原理
  14. cs1.6服务器怎么注册,CS服务器登录与管理工具
  15. DataBufferLimitException: Exceeded limit on max bytes to buffer :262144
  16. RK3566-LPDDR4-EVB EDP屏幕调试
  17. AS更换背景主题以及背景图片
  18. 新词发现的学习和代码
  19. PCM和G711A(PCMA)声音播放器和采集器
  20. 天猫、淘宝商品详情、库存、价格抓包

热门文章

  1. Bus Hound的简单介绍
  2. 网游策划案例:魔兽世界—细节决定成败
  3. 认识高通8155(开发板介绍)
  4. 熔化极氩弧焊(MIG,MAG)
  5. 柯李思高阶聊天2.0
  6. 句柄(Handler)到底是什么?
  7. 猫鼠游戏,一个刷票老千看在线投票项目的防范与取舍
  8. 优麒麟16.10(Ubuntu Kylin)首个Alpha版本发布
  9. 金融行业机房监控4大难题?你中招了吗
  10. Linux运维面试题2