JAVA斗地主案例(单列)
JAVA斗地主案例(单列)
- 一、案例分析
- 二、代码实现
一、案例分析
- 准备牌
扑克牌:54张
特殊派:大王,小王
花色:“♥”,“♠”,“♣”,“♦”
数字:“A”,“2”,“K”…“3”
我们只需要嵌套遍历花色和数字的数组,并且两两组合,就可以得到牌的点数。
- 洗牌
使用集合工具类Collections的shuffle()方法对指定数据源进行随机置换。打乱集合中元素的顺序
- 洗牌
分析:每人17张牌,剩余3张牌为底牌
选择判断条件:选择三种结果,即索引%3 其条件为0 1 2,分别对应三位玩家
当索引>=51时变为底牌
- 看牌
打印存储玩家和底牌的集合
二、代码实现
代码如下(示例):
public static void main(String[] args) {//创建扑克牌集合ArrayList<String> poker = new ArrayList<>();//花色集合String [] colors = {"♠","♥","♣","♦"};//数字集合String [] numbers = {"2","A","K","Q","J","10","9","8","7","6","5","4","3"};//加入特殊牌poker.add("大王");poker.add("小王");//循环嵌套花色和数字集合进行组合for (String number: numbers) {for (String color:colors) {//将组合后的点数存入扑克牌集合poker.add(color+number);}}//打乱扑克牌集合顺序Collections.shuffle(poker);System.out.println(poker);//四种牌堆集合ArrayList<String> play1 = new ArrayList<>();ArrayList<String> play2 = new ArrayList<>();ArrayList<String> play3 = new ArrayList<>();ArrayList<String> dipai = new ArrayList<>();//遍历集合for (int i=0;i<poker.size();i++){String p=poker.get(i);//进行发牌判断if(i>=51){dipai.add(p);}else if (i%3==0){play1.add(p);}else if (i%3==1) {play2.add(p);}else if (i%3==2) {play3.add(p);}}//打印每个人的点数System.out.println("周星驰:"+play1);System.out.println("吴尊:"+play2);System.out.println("李连杰:"+play3);System.out.println("底牌:"+dipai);}
结果如下:
扑克牌:[♣A, ♦K, ♦J, ♦4, ♥K, ♦A, ♦3, ♥J, ♠A, ♣4, ♠J, ♥10, ♠6, ♣10, ♥8, ♥6, ♠Q, ♦10, ♠4, ♣Q, ♥3, 大王, ♥Q, ♠5, ♣K, ♥4, 小王, ♠3, ♥7, ♠7, ♥5, ♦Q, ♦9, ♥2, ♠K, ♣7, ♣8, ♦2, ♣6, ♠10, ♥9, ♦8, ♦7, ♠9, ♣2, ♣3, ♠8, ♠2, ♦5, ♦6, ♣5, ♥A, ♣9, ♣J]
周星驰:[♣A, ♦4, ♦3, ♣4, ♠6, ♥6, ♠4, 大王, ♣K, ♠3, ♥5, ♥2, ♣8, ♠10, ♦7, ♣3, ♦5]
吴尊:[♦K, ♥K, ♥J, ♠J, ♣10, ♠Q, ♣Q, ♥Q, ♥4, ♥7, ♦Q, ♠K, ♦2, ♥9, ♠9, ♠8, ♦6]
李连杰:[♦J, ♦A, ♠A, ♥10, ♥8, ♦10, ♥3, ♠5, 小王, ♠7, ♦9, ♣7, ♣6, ♦8, ♣2, ♠2, ♣5]
底牌:[♥A, ♣9, ♣J]
JAVA斗地主案例(单列)相关推荐
- Java(斗地主案例)
斗地主案例的需求分析 斗地主案例的代码实现 package com.itheima.demo04.Test;import java.util.ArrayList; import java.util.C ...
- java 斗地主 案例
package zyr.doudizhu;/* * 54张牌 3个玩家 没人17张牌 最后3张留作底牌 * 1准备牌 * 2洗牌 * 3发牌 * 4看牌 * */import java.util.Ar ...
- java斗地主案例,没有界面
import java.util.ArrayList; import java.util.Collections; public class Duodizhu { /* 准备牌 定义一个放52张牌的集 ...
- 阶段1 语言基础+高级_1-3-Java语言高级_04-集合_03 斗地主案例(单列)_1_斗地主案例的需求分析...
洗牌用到集合工具类.Collections里面有个shuffle的方法 完整的需求分析 转载于:https://www.cnblogs.com/wangjunwei/p/11232480.html
- 斗地主 java思路_使用Java实现简单的斗地主案例
使用Java实现简单的斗地主案例 案例说明:使用Java实现简单的斗地主洗牌发牌的操作: 具体规则: 共有54张牌,顺序打乱: 三个玩家参与游戏,三人交替摸牌,每人17张牌,最后留三张为底牌(地主牌) ...
- Java实现简单的斗地主案例(超详细代码)
案例说明:使用Java实现简单的斗地主洗牌发牌的操作 具体规则: 共有54张牌,顺序打乱: 三个玩家参与游戏,三人交替摸牌,每人17张牌,最后留三张为底牌(地主牌). 源码实现: /** 斗地主案例: ...
- java基础-Map集合、Collections集合、斗地主案例
1.Map集合 1.1Map集合概述和特点 Map集合概述 interface Map<K,V> K:键的类型:V:值的类型 Map集合的特点 (1)键值对映射关系 (2)一个键对应一个值 ...
- string转map集合_Map、斗地主案例
一.Map方法 import java.util.HashMap; import java.util.Map; public class Demo01 {public static void main ...
- Map案例总结-斗地主案例
Map案例总结-斗地主案例 Map集合元素是成对存在,每个元素分为键和值两部分,合在一起则称"键值对". Map斗地主这个案例用HashMap集合将54张扑克牌存储,然后随 ...
最新文章
- 如何破解汽车-快速的速成课程
- 盛会再临,2018中国大数据技术大会(BDTC)首曝日程及议题
- PIL:python图像处理库的介绍
- java多线程的同步
- CTFshow 反序列化 web266
- 程序员数学基础【二、时间复杂度】(Python版本)
- 利用CSS变量实现炫酷的悬浮效果
- STL - Unorderedset - 自定义哈希函数
- Android应用性能优化(3)---加快应用启动速度
- 基于typescript的rtsp客户端实现
- 无人机图像的目标检测的学习
- 编程珠玑 啊哈 算法
- 第一篇博客--大学成长指南
- 揭秘微信红包:架构、抢红包算法、高并发和降级方案
- 关于linux中limits的一些总结
- 为什么Windows的文件名不能超过255个英文字符,求解答
- 添加企业微信免验证设置
- UVM基础-Sequence、Sequencer(一)
- Java常见的线程安全工具容器类(待完善)
- 人机交互课堂分享 手势交互与体感交互
热门文章
- 最小编辑距离算法及python实现
- VMware 如何调整Linux系统窗口大小
- kl压缩 matlab,KL 变换实习matlab代码
- [Wi-Fi抓包篇]1. Omnipeek——抓包前准备工作
- 改变DataGridView中的DataGridViewButtonCell单元格的背景色.
- 一站式开发一个安卓APP-原型设计篇
- Cisco之show ip arp 与 show mac-address-table
- python动画库_创造生动有趣的动画,Matplotlib库大显身手
- GAppProxy-2.0.0安装使用手册
- 此计算机上未安装sql2000,MDAC及SQL SERVER 2000安装失败的原因及解决方法