java小游戏之扑克牌
思路
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小游戏之扑克牌相关推荐
- 各种经典java小游戏_Java是这个世界上最好的语言!
为什么? 请看TIOBE最新发布的编程语言排行榜: TIOBE开发语言排行榜每月更新一次,其结果可以用来检阅开发者的编程技能能否跟上趋势,或是否有必要作出战略改变,以及什么编程语言是应该及时掌握的. ...
- Java小游戏:模仿微信群发红包
Java小游戏:模仿微信群发红包 微信群主发普通红包,普通红包规则: 群主的一笔金额,从群主余额中扣除,平均分成n等分,让群员领取. 成员领取红包后,保存到余额中. 请根据规则,完成案例中所有类的定义 ...
- 《Java小游戏实现》:坦克大战
<Java小游戏实现>:坦克大战 前面写了一个简单的聊天小程序,今天开始就写一个坦克大战的游戏,算是对Java相关小知识点的一个应用. 这个游戏的完成,我们也是分步完成,逐步累加,一个一个 ...
- java小游戏-超级玛丽
java小游戏-java小游戏-超级玛丽 1 创建窗口 2 创建并完成常量类 3 创建背景类 4 绘制背景类 5 创建障碍物 6 第一关的设计 7 第二关的设计 8 第三关的设计 9 创建马里奥类 1 ...
- java小游戏-java小游戏-大鱼吃小鱼
java小游戏-java小游戏-大鱼吃小鱼 1 创建窗口 2 添加背景图 3 启动封面 4 启动页面的点击事件 5 游戏开始时的背景添加 6 双缓存解决闪屏问题 7 地方第一条小鱼的添加 8 敌方左方 ...
- java小游戏之捕鱼达人,学了java,妈妈不再担心我去网吧游戏厅了!
Java小项目捕鱼达人 跪求关注,祝关注我的人都:身体健康,财源广进,福如东海,寿比南山,早上贵子,从不掉发! 捕鱼达人这款游戏,相信和我年纪相仿的朋友,肯定很熟悉.在当时半智能手机和智能手机刚刚出现 ...
- java小游戏——飞翔的小鸟(java初学作品)
注:学习了java基础后,做出来的一个小作品,可以用来巩固学习 概述: 飞翔的小鸟能够作为Java基础的收官之作,包涵了Java很多的基础知识,在学习完Java基础后,尝试编写一些东西,能够起到很好的 ...
- java小游戏------Flappy Bird(飞翔的小鸟含源码)
前言:本小游戏可作为java入门阶段收尾创作. 需:掌握面向对象的使用,了解多线程和异常处理等知识. 如上图所示:我们需要绘制背景,小鸟,障碍物,当然也包括游戏开始界面以及死亡界面. 一:思路解析: ...
- java小游戏-飞翔的小鸟
java小游戏-ava小游戏-飞翔的小鸟 1 游戏窗口的显示 2 游戏背景添加 3 背景颜色的添加 4 屏幕中绘制小鸟 5 实现小鸟上下移动 6 解决屏幕闪烁问题 7 云彩的添加与移动 8 云彩的自动 ...
最新文章
- Ril分析五——ril学习总结
- 小眼睛适合大框还是小框眼镜_北京潘家园眼镜城良心商家推荐
- jQuery源码分析系列(37) : Ajax 总结
- 已知三角形三点坐标求角度_2019高考数学:解三角形——正弦定理和余弦定理的解题技巧和模型...
- 360安全卫士 导致MySQL 5.0.24 自动关闭
- 北京科技大学研究生考试 《工程热力学》(2003年-2011年)
- bzoj2957:楼房重建
- Linux kernel 本地拒绝服务漏洞
- WKWebview加载本地图片时出现路径问题
- python线程通信 消息传递_Python并发编程之线程消息通信机制/任务协调(四)
- Git—代码管理、提交及冲突解决流程的思考
- python解决现实问题的思想_高级语言程序设计(Python)
- Atitit.编程语言原理---方法重载的实现与设计 调用方法的原理
- cs1.6服务器怎么注册,CS服务器登录与管理工具
- DataBufferLimitException: Exceeded limit on max bytes to buffer :262144
- RK3566-LPDDR4-EVB EDP屏幕调试
- AS更换背景主题以及背景图片
- 新词发现的学习和代码
- PCM和G711A(PCMA)声音播放器和采集器
- 天猫、淘宝商品详情、库存、价格抓包