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));

 }

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 详解java_ 集合综合案例:斗地主

    案例介绍 按照斗地主的规则,完成洗牌发牌的动作. 具体规则: 使用54张牌打乱顺序,三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌. 案例分析 1.准备牌: 牌可以设计为一个ArrayList,每个字符串为一张牌. 每张牌由花色数字两部分组成,我们可以使用花色 集合与数字集合嵌套迭代完成每张牌的组装. 牌由Collections类的shuffle方法进行随机排序. 2.发牌 将每个人以及底牌设计为ArrayList,将最后3张牌直接存放于底牌,剩余牌通过对3取模依次发牌. 3.看

  • java实现斗地主游戏

    感想: 第一次写博客,感觉编辑器挺复杂厉害的,感觉自己的内容挺简单的.有什么问题请多多指教! 思路: 1.创建一个扑克牌的实体类Poker,设置了四个参数:花色.数字.牌值(判断大小).是否地主牌,实现getset方法和构造方法: 2.创建一个玩家的实体类Player,设置了四个参数: 初始牌集合,排序后牌集合,牌值集合,是否地主,实现getset方法和构造方法: 3.洗牌:循环嵌套花色数组跟数字数组生成52个Poker,手动加入大小王Poker,放进map(int,Poker)里面,利用Col

  • java实现模仿斗地主发牌

    本文实例为大家分享了java斗地主发牌的具体代码,供大家参考,具体内容如下 分析 这是一个模仿斗地主发牌的例子: 按照斗地主的规则,完成洗牌发牌的动作. 具体规则: 用0~53分别对应相应的花色和牌面值: 用shuffle随机打乱排序好的数字,起到洗牌的作用: 使用54张牌打乱顺序,三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌. 实现方式 准备牌: 牌可以设计为一个ArrayList,每个字符串为一张牌. 每张牌由花色数字两部分组成,我们可以使用花色集合与数字集合嵌套迭代完成每

  • 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模拟实现斗地主发牌小程序

    一副扑克有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

随机推荐