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 web随机抽取_java实现随机抽取奖品工具类

    本文实例为大家分享了java实现随机抽取奖品工具类的具体代码,供大家参考,具体内容如下 随机抽取奖品 整体思路: 1.奖品集合 + 概率比例集合 2.将奖品按集合中的顺序概率计算成所占比例区间,放入比 ...

  4. java生成随机时间_Java生成某段时间内的随机时间

    上代码: import java.text.SimpleDateFormat; import java.util.Date; public class DateUtil { /** * 生成随机时间 ...

  5. java生成随机数组_JAVA生成随机数组10个数字并求和

    JAVA生成随机数组10个数字并求和 本文最终结果大概是这样的',使用java技术随机生成10个数,然后填充一个数组并在消息框中显示数组内容,接着对数组求和输出,将结果显示在消息框中. 设计思路:可以 ...

  6. java边界布局东南西北_JAVA swing布局管理器实例解析

    组件在容器(比如Jframe)中的位置和大小是由布局管理器来决定的.所有的容器都会使用一个布局管理器,通过它来自动进行组件的布局管理. 种类 java共提供了五种布局管理器,只介绍三种是最常见的布局管 ...

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

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

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

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

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

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

最新文章

  1. 【Android】ViewPager实现无限循环滚动
  2. 机器学习中激活函数和模型_探索机器学习中的激活和丢失功能
  3. scala元组 数组_Scala中的数组
  4. 计算机综合基础作业,《计算机网络基础》综合作业(参考答案).doc
  5. 北京市交管局联合高德地图发布北京中考出行提示
  6. linux命令行安装libxml,Ubuntu 14.04下libxml2的安装和使用
  7. css 语音,纯CSS打造(无图像无js)的非常流行的讲话(语音)气泡效果
  8. PHP下简单交换两个变量
  9. C语言小游戏 源码 推箱子
  10. 汽车行业如何进行数字化转型
  11. linux压力测试脚本,一种基于shell脚本的CPU压力测试方法与流程
  12. uni-app创建并运行微信小程序项目
  13. 怎么写解题步骤——FIRST集、FOLLOW集、LL(1)分析法【编译原理之语法分析】
  14. 揭秘玛雅预言--根本没这回事
  15. 无线模块怎么上传服务器,物联网WiFi模块如何进行数据传输
  16. 带来计算机领域的先进,美国普渡大学David Yau教授到深圳先进院交流
  17. 服务器端编程心得(七)——开源一款即时通讯软件的源码
  18. 学习笔记整理——vim,vim文件编码,vim配置文件
  19. [宋史学习] 结合水浒传看职役
  20. Ubuntu中完全卸载MySQL所有相关文件

热门文章

  1. django实训报告
  2. C++基础概念(初步代码示例英石与磅单位互换)
  3. 桌面管理landesk太古案例
  4. Cadence DSP 算子开发上手指南
  5. 国内银行英文简称及全称
  6. 卸载Resharper
  7. java中计算三角形的角度
  8. AI产品经理能力模型的重点素质:人文素养和灵魂境界
  9. idea 2020.1 连接MySQL数据库的两种方法
  10. 破解希沃立知课堂——查看课件篇