java模拟实现斗地主发牌小程序
一副扑克有54张牌:大小王+4*13,接下来我们来模拟一下斗地主的发牌过程
首先,我们需要买牌,新买来的牌都是按顺序摆放的,因此下一步是洗牌,最后就是发牌了,不过发牌的时候要注意还要在最后留三张底牌。
主要使用的类有 ArrayList:用来存储扑克,Collections用来洗牌。
import java.util.ArrayList; import java.util.Collections; /* * 模拟斗地主发牌 一共54张牌 * 买牌 * 洗牌 * 发牌 * */ public class DouDIZhuDemo { public static void main(String[] args) { // 花色 数组 String[] arr = { "黑桃", "红桃", "梅花", "方片" }; String[] arr2 = { "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K" }; // 买牌 ArrayList<String> box = new ArrayList<String>(); // 添加牌 // 获取花色 for (int i = 0; i < arr.length; i++) // 获取数值 for (int j = 0; j < arr2.length; j++) box.add(arr[i] + arr2[j]); // 大小王 box.add("大王"); box.add("小王"); // 洗牌 Collections.shuffle(box); // 发牌 三张底牌给地主,剩51张,每人17张 // 三个拿牌打牌的 ArrayList<String> 七宝 = new ArrayList<String>(); ArrayList<String> 八宝 = new ArrayList<String>(); ArrayList<String> 九宝 = new ArrayList<String>(); for (int i = 0; i < box.size() - 3; i++) { if(i%3==0) 七宝.add(box.get(i)); else if(i%3==1) 八宝.add(box.get(i)); else if(i%3==2) 九宝.add(box.get(i)); } System.out.println("七宝:"+七宝); System.out.println("八宝:"+八宝); System.out.println("九宝:"+九宝); //底牌 for(int i=box.size()-3;i<box.size();i++) System.out.println(box.get(i)); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Java实现斗地主案例
本文实例为大家分享了Java实现斗地主的具体代码,供大家参考,具体内容如下 import java.util.ArrayList; import java.util.Collections; public class DemoPoker { public static void main(String[] args) { /** *一.准备牌 普通牌:2 A K...3 花色:♥ ♠ ♣ ♦ 王牌:大王 小王 创建一个集合,把牌组装之后存进去 */ String[] numbers = {"2&
-
java实现斗地主游戏
感想: 第一次写博客,感觉编辑器挺复杂厉害的,感觉自己的内容挺简单的.有什么问题请多多指教! 思路: 1.创建一个扑克牌的实体类Poker,设置了四个参数:花色.数字.牌值(判断大小).是否地主牌,实现getset方法和构造方法: 2.创建一个玩家的实体类Player,设置了四个参数: 初始牌集合,排序后牌集合,牌值集合,是否地主,实现getset方法和构造方法: 3.洗牌:循环嵌套花色数组跟数字数组生成52个Poker,手动加入大小王Poker,放进map(int,Poker)里面,利用Col
-
java实现模仿斗地主发牌
本文实例为大家分享了java斗地主发牌的具体代码,供大家参考,具体内容如下 分析 这是一个模仿斗地主发牌的例子: 按照斗地主的规则,完成洗牌发牌的动作. 具体规则: 用0~53分别对应相应的花色和牌面值: 用shuffle随机打乱排序好的数字,起到洗牌的作用: 使用54张牌打乱顺序,三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌. 实现方式 准备牌: 牌可以设计为一个ArrayList,每个字符串为一张牌. 每张牌由花色数字两部分组成,我们可以使用花色集合与数字集合嵌套迭代完成每
-
详解java_ 集合综合案例:斗地主
案例介绍 按照斗地主的规则,完成洗牌发牌的动作. 具体规则: 使用54张牌打乱顺序,三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌. 案例分析 1.准备牌: 牌可以设计为一个ArrayList,每个字符串为一张牌. 每张牌由花色数字两部分组成,我们可以使用花色 集合与数字集合嵌套迭代完成每张牌的组装. 牌由Collections类的shuffle方法进行随机排序. 2.发牌 将每个人以及底牌设计为ArrayList,将最后3张牌直接存放于底牌,剩余牌通过对3取模依次发牌. 3.看
-
java模拟实现斗地主发牌小程序
一副扑克有54张牌:大小王+4*13,接下来我们来模拟一下斗地主的发牌过程 首先,我们需要买牌,新买来的牌都是按顺序摆放的,因此下一步是洗牌,最后就是发牌了,不过发牌的时候要注意还要在最后留三张底牌. 主要使用的类有 ArrayList:用来存储扑克,Collections用来洗牌. import java.util.ArrayList; import java.util.Collections; /* * 模拟斗地主发牌 一共54张牌 * 买牌 * 洗牌 * 发牌 * */ public cl
-
Java模拟实现斗地主发牌
本文实例为大家分享了Java模拟实现斗地主发牌的具体代码,供大家参考,具体内容如下 题目: 模拟斗地主的发牌实现,54张牌,每张牌不同的花色(红心,黑桃,方块,梅花),牌的点数(3,4,5,6,7,8,9,10,J,Q,K,A,2,King,Queen),另有三名玩家,要求(使用面向对象的方式实现): 1.随机产生一名地主 2.随机向三名玩家发牌,最后的底牌自动发给地主 3.显示出每名玩家手中的牌 4.要求根据点数自动对玩家手中的牌排序实现(*) 提示:玩家类,牌类,游戏类(算法) 步骤分析:
-
java实现发牌小程序
本文实例为大家分享了java实现发牌小程序的具体代码,供大家参考,具体内容如下 关键字:掌握Java数组.方法的基本定义 内容要求: 编写程序,项目名和类名均为PokerGame. 实现功能: (1) 共有m幅扑克牌,每幅扑克牌不包括大王和小王共52张牌. (2) 可能有n个人参与扑克游戏,2<=n<=52. (3) 程序运行时输入扑克牌幅数m和人数n,然后所有牌分别依次分发给n个人.不能整除时,每个人的牌数可以不同,如3个人1幅牌,则第1个人18张,第2个和第3个人17张牌. (4) 发牌完
-
java实现扑克牌牌面小程序
本文实例为大家分享了java实现扑克牌牌面小程序的具体代码,供大家参考,具体内容如下 本周分享一个扑克牌牌面小程序如下: package com.softeem.lmg.one2.work1; import java.util.Objects; /**首先是牌面类 * 5.参考斗地主的游戏规则,完成一个发牌的功能(54张牌,考虑点数,花色:三名玩家,其中地主比其他玩家多3张牌) * @author admin */ public class Card { /**牌面值*/ private Str
-
java简单实现斗地主发牌功能
本文实例为大家分享了java简单实现斗地主发牌的具体代码,供大家参考,具体内容如下 问题: 参考斗地主的游戏规则,完成一个发牌的功能(54张牌,考虑点数,花色:三名玩家,其中地主比其他玩家多3张牌) 要求实现以下功能: 1.洗牌 2.发牌(发牌按照常规方式A-B-C-A-B-C-A-,不允许一次性随机17张给某个玩家) 3.玩家手中牌的展示(要求按点数实现排序) 分析 运用面向对象的程序设计思维分为扑克.玩家和游戏三部分,扑克类属性有花色,点数,次序:玩家类属性有玩家id,昵称,是否地主,牌的集
-
Java模拟QQ实现聊天互动程序
目录 介绍 功能演示 运用到的知识点 核心代码 服务端 客户端 介绍 实现的功能.步骤: 1.定义JFrame窗体中的组件 2.在构造方法中初始化窗体的组件 3.使用网络编程完成数据的传输(TCP,UDP协议) 4.实现发送按钮的监听点击事件 5.实现回车键发送数据 功能演示 没有点发送,数据却发送出去了是因为按了回车键 运用到的知识点 GUI:java实现窗体.Swing.其实JAVA Swing的GUI目前企业中已经不用了,主要是一些学校和培训机构用来教导学生写一些游戏.小项目,练练手的.
-
JS模拟超市简易收银台小程序代码解析
废话不多说了,直接给大家贴代码了,具体代码如下所示: <script type="text/javascript"> // 1.编写一个程序,计算增加后的工资.要求基本工资大于等于1000元,增加20%的工资;若小于1000元且大于等于800元,则增加15%,若小于800元,则增加10%工资. var basepay = parseInt(prompt("请输入您的工资:"));//初始工资 var pay1 = basepay+(basepay*0.2
-
C语言实现洗牌发牌小程序
本文实例为大家分享了C语言实现洗牌发牌小程序的具体代码,供大家参考,具体内容如下 构建一副扑克牌,并实现洗牌发牌. 代码 #include <stdio.h> #include <time.h> #include <stdlib.h> #define NUM 10000 //洗牌混乱度 char color[7][7] = {"空白","红桃","黑桃","草花","方片"
-
基于Java SSM的健康管理小程序的实现
目录 一.系统的简介 二.系统实现的主要功能 三.系统的界面演示 四.核心代码展示 一.系统的简介 开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 浏览器:谷歌浏览器 二.系统实现的主要功能 (1)用户管理.主要实现了健康管理小程序的用户管理功能. (2)登录注册.小程序端可以登录注册. (
-
Java后端对接微信支付(小程序、APP、PC端扫码)包含查单退款
首先我们要明确目标,我们点击微信支付官网,我们主要聚焦于这三种支付方式,其中JSPAI与APP主要与uniapp开发微信小程序与APP对接,而NATIVE主要与网页端扫码支付对接 1.三种支付统一准备工作 建议导入这个jar,里面一些提供map和xml互转以及生成签名的函数,使用非常方便. <dependency> <groupId>com.github.wxpay</groupId> <artifactId>wxpay-sdk</artifactId
随机推荐
- 使用python实现省市三级菜单效果
- Erlang中的注册进程使用实例
- Ubuntu下安装redis的2种方法分享
- JS实现的简单轮播图运动效果示例
- ios开发加载webview显示进度条实例
- 浅谈Unicode与JavaScript的发展史
- js 获取元素下面所有li的两种方法
- Python 操作MySQL详解及实例
- Go语言写入字符串到文件的方法
- Android编程使用pull方式解析xml格式文件的方法详解
- 详解MySQL中concat函数的用法(连接字符串)
- Android唤醒、解锁屏幕代码实例
- php中print(),print_r(),echo()的区别详解
- js实现可兼容IE、FF、Chrome、Opera及Safari的音乐播放器
- js利用prototype调用Array的slice方法示例
- Android自定义控件实现优雅的广告轮播图
- Android gradle打包并自动上传的方法
- Zend Framework实现将session存储在memcache中的方法
- C#事件实例详解
- 100分钟,我教你配CISCO RIP