Java练习——扑克牌发牌器

声明:学习自其他博主,感谢分享,这里自己也写了一下。

实现思路

- 构建一张扑克牌

- 构建一套扑克牌

- 测试

构建一张扑克牌

/***@author冬冬

* 定义一个单张扑克牌类

* 有花型,大小*/

public classCard {private String flower; //花型

private int daxiao; //点数

/**构造方法

*@paramflower

*@paramdaxiao*/

public Card(String flower, intdaxiao) {this.flower =flower;this.daxiao =daxiao;

}/*(non-Javadoc)

* @see java.lang.Object#toString()

* 获取本张卡牌的花型与大小,对于特殊的大小,如1——A,输出时进行转换*/

publicString toString() {

String daxiaoStr= "";switch(daxiao) {case 1: daxiaoStr = "A"; break;case 11: daxiaoStr = "J"; break;case 12: daxiaoStr = "Q"; break;case 13: daxiaoStr = "K"; break;default: daxiaoStr =String.valueOf(daxiao);

}return flower +daxiaoStr;

}

}

构建一套扑克牌

public classPoker {private static String[] flowers = {"黑桃", "红桃", "草花", "方块"};private static int[] daxiaos = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13};private Card[] cards;//卡片数组,应该有54张,这里去掉大小王,只52张

/*** 构造器

* 按顺序实例化52张扑克牌*/

publicPoker() {

cards= new Card[52];for(int i = 0; i < flowers.length; i++) {for(int j = 0; j < daxiaos.length; j++) {

cards[i* 13 + j] = newCard(flowers[i], daxiaos[j]);

}

}

}/*** 洗牌 (随机乱序)

* 对于52个Card实例数组随机乱序排列*/

public voidshuffle() {for(int i = 0, len = cards.length; i < len; i++) {int index = (int) (Math.random() *len);

Card temp=cards[index];

cards[index]=cards[i];

cards[i]=temp;

}

}/*** 发牌

*@paramindex 发牌的位置

**/

public Card deal(intindex) {returncards[index];

}

}

测试

public classTest {public static voidmain(String[] args) {

Poker poker= new Poker();//生成扑克牌

poker.shuffle(); //洗牌(乱序)

Card c1 = poker.deal(0); //发第一张牌//创建四个玩家,每个玩家13张空牌

Card [] person1=new Card[13];

Card [] person2=new Card[13];

Card [] person3=new Card[13];

Card [] person4=new Card[13];//为玩家的的空牌赋值

for(int i=1;i<=52;i++)

{if(i<=13) person1[i-1]=poker.deal(i-1);if(i>13&&i<=26) person2[i-1-13]=poker.deal(i-1);if(i>26&&i<=39) person3[i-1-26]=poker.deal(i-1);if(i>39&&i<=52) person4[i-1-39]=poker.deal(i-1);

}//打印

System.out.println("玩家1");for(Card card : person1) {

System.out.print(card+" ");

}

System.out.println("");

System.out.println("玩家2");for(Card card : person2) {

System.out.print(card+" ");

}

System.out.println("");

System.out.println("玩家3");for(Card card : person3) {

System.out.print(card+" ");

}

System.out.println("");

System.out.println("玩家4");for(Card card : person4) {

System.out.print(card+" ");

}

}

}

结果:

玩家1

红桃6 方块4 方块A 黑桃4 草花2 红桃Q 红桃J 红桃K 方块3 黑桃K 方块8 黑桃7 黑桃5

玩家2

草花A 黑桃2 红桃7 草花3 草花5 方块J 方块9 草花9 草花K 黑桃8 草花J 黑桃10 红桃8

玩家3

方块7 红桃4 红桃2 草花6 方块2 黑桃Q 黑桃9 黑桃A 草花10 草花7 红桃10 红桃A 方块Q

玩家4

红桃9 方块5 草花8 方块10 方块K 草花Q 黑桃3 红桃5 黑桃6 黑桃J 红桃3 方块6 草花4

注意事项

1. 不要忘记在Poker类里导入Card类,在Test类里面导入Poker和Card;

2. 自己想想,动手做一做才能真正理解。

扑克牌java发牌_Java练习——扑克牌发牌器相关推荐

  1. java扑克牌随机发牌_Java练习——扑克牌发牌器

    Java练习--扑克牌发牌器 声明:学习自其他博主,感谢分享,这里自己也写了一下. 实现思路 - 构建一张扑克牌 - 构建一套扑克牌 - 测试 构建一张扑克牌 /***@author冬冬 * 定义一个 ...

  2. java 随机发牌_java实现扑克牌发牌器

    Java练习--扑克牌发牌器,供大家参考,具体内容如下 声明:学习自其他博主,感谢分享 实现思路 构建一张扑克牌 构建一套扑克牌 测试 构建一张扑克牌 /** * @author 冬冬 * 定义一个单 ...

  3. 发扑克牌java程序_Java实现简易扑克牌游戏

    功能描述 1.创建扑克牌.包括四种花色(黑桃,红心,梅花,方块),十三种点数(2-10,J,Q,K),不考虑大小王. 2.创建两个玩家.包括玩家id.姓名.手牌等集合,手牌为扑克牌的集合. 3.洗牌. ...

  4. java按顺序发牌_Java实现斗地主发牌功能(含按顺序发牌和玩家牌排序显示等功能)...

    斗地主是全国范围内的一种桌面游戏,尽管全国各种类型,但大同小异,今天我们先来实现一下斗地主中的发牌功能,为了程序的可读性以及可拓展性,此次我们使用面向对象的方法来实现此功能. 首先,斗地主要求有扑克和 ...

  5. java斗地主随机发牌_java实现斗地主发牌功能

    本文实例为大家分享了java实现斗地主发牌的具体代码,供大家参考,具体内容如下 参考斗地主的游戏规则,完成一个发牌的功能(54张牌,考虑点数,花色:三名玩家,其中地主比其他玩家多3张牌) 代码如下: ...

  6. java斗地主发牌_java实现斗地主发牌系统

    本文实例为大家分享了java实现斗地主发牌系统的具体代码,供大家参考,具体内容如下 玩家类 package com.softeem.example; import java.util.ArrayLis ...

  7. Java项目:模拟扑克牌洗牌发牌排序

    用JAVA实现简单的扑克牌洗牌发牌并排序,首先写代码之前需要明确需要分哪些步骤: 创建一个HashMap集合对象 创建一个ArrayList集合对象 生成一副扑克牌 将扑克牌按照键值关系添加到Hash ...

  8. 用JAVA实现简单的扑克牌洗牌发牌并排序

    用JAVA实现简单的扑克牌洗牌发牌并排序,首先写代码之前需要明确需要分哪些步骤: 创建一个HashMap集合对象 创建一个ArrayList集合对象 生成一副扑克牌 将扑克牌按照键值关系添加到Hash ...

  9. 洗牌、发牌算法 (打乱扑克牌顺序)

      #include <stdio.h> #include <stdlib.h> #include <time.h> int  d[6]; int  i,n,a,b ...

最新文章

  1. 关于XP进程问题(转载)
  2. 阿里云中间件技术 促进互联网高速发展
  3. 文件系统:Ext3和Ext4
  4. 【卷积码系列2】(n,k,m)卷积码的生成多项式矩阵系数转网格图描述(不使用MATLAB库函数)
  5. RabbitMQ交换器Exchange介绍与实践
  6. 网络是怎样连接的pdf
  7. 7年了,为什么智慧城市还不智慧?
  8. matlab中做出球面和圆柱面,matlab画柱面与球面切线
  9. Windows中 配置DHCP服务器
  10. 思科 接入点 本地转发_H3C无线AP本地转发配置教程2016
  11. 抖音小店为什么没生意?万顿思教育
  12. java swing 多行文本,Java Swing JTextArea
  13. 深度学习基础-经典模型总结
  14. Android Dialer--通讯整体过程分析
  15. gis统计百分比_[ARCGIS]地统计分析(二)
  16. 项目管理:跟「政商大亨」虞洽卿学干系人管理
  17. 互动投影-投影解决方案
  18. 哪个软件唱歌打分测试,唱歌评分软件哪个好_唱歌评分软件电脑版
  19. iphone5信号无服务器,你的iPhone信号不好?那是因为你没有这样设置,设置后信号满格...
  20. 安装部署vcenter

热门文章

  1. ida如何识别linux内核函数,如何识别IDA反汇编中动态链接库中的函数
  2. 雷电2接口_雷电3和TYPE-C都是干什么的?一文读懂全部
  3. 前端实现登录拼图验证
  4. Office2007中简繁体转换功能按钮消失解决
  5. LVS 负载均衡集群(一)| 超详细!一文带你了解 LVS 负载均衡集群
  6. SAP-MM知识精解-自动科目记账(04-2)- 业务事物之“科目分组代码”的影响
  7. java高级架构师年薪,深度集成!
  8. slack 开源系统_Slack团队聊天的5种开源替代品
  9. 【Python】利用python进行数据分析——以新型冠状病毒疫情为例
  10. 行业寒冬:java生成微信支付二维码