本文笔者将用Java实现简易的扑克牌打乱以及分发,还有展示未被抽走的扑克牌的功能,有兴趣的朋友可以接着往下写有关于扑克牌的玩法

 我们先创建一副扑克牌,类中要包含扑克牌花色和点数,他的构造方法和toString方法

class Card {private int rank;//点数private String suit;//花色public Card(int rank, String suit) {this.rank = rank;this.suit = suit;}@Overridepublic String toString() {return "["+this.suit+":"+this.rank+"]";}
}

给牌创建花色,并给它创建上数字

private static final String[] suits = {"♠","♥","♣","♦"};public static List<Card> buyCard(){ArrayList<Card> cards =new ArrayList<>();for (int i = 0; i < 4; i++) {for (int j = 1; j <= 13; j++) {/*String suit = suits[i];int rank = j;Card card = new Card(rank,suit);cards.add(card);*/cards.add(new Card(j,suits[i]));//这边是阴影部分的简写,不理解的朋友可以看看阴影部分}}return cards;}

将这副牌随机打乱

private static void swap(List<Card> cards,int i,int j){Card tmp = cards.get(i);cards.set(i,cards.get(j));cards.set(j,tmp);}private static void shuffle(List<Card> cards){int size = cards.size();for(int i = size-1;i > 0;i--){Random random = new Random();int rand = random.nextInt(i);//括号中的i是给它一个打乱的范围,比如这里就是从0~1随机选一个数swap(cards,i,rand);}}

在写一个主函数方便我们判断牌在那个人手中,同时知道牌堆里还有一些什么牌

public static void main(String[] args) {List<Card> cards = buyCard();System.out.println("买牌"+cards);shuffle(cards);System.out.println("洗牌"+cards);ArrayList<List<Card>> hand = new ArrayList<>();List<Card> hand1 = new ArrayList<>();List<Card> hand2 = new ArrayList<>();List<Card> hand3 = new ArrayList<>();hand.add(hand1);hand.add(hand2);hand.add(hand3);//每个人轮流揭牌for (int i = 0; i < 5; i++) {for (int j = 0; j < 3; j++) {Card card = cards.remove(0);hand.get(j).add(card);}}System.out.println("第1个人的牌:"+hand1);System.out.println("第2个人的牌:"+hand2);System.out.println("第3个人的牌:"+hand3);System.out.println("剩下的牌"+cards);}
}

用Java实现扑克牌的简易功能相关推荐

  1. 简单java socket_基于Java Socket实现一个简易在线聊天功能(一)

    最近做了一个项目,其中有一个在线网页交流的需求,好久没写代码了,手都生疏了,于是先写demo练练手,分享到脚本之家平台,以此做个记录,方便自己和大家使用. 先给大家说下实现步骤分这样几大步: 1.使用 ...

  2. 利用java swing编写一个简易的计算器,实现了括号,优先级,三角函数,阶乘等功能

    利用java swing编写一个简易的计算器 背景 效果图 一.默认图 二.计算三角函数 三.阶乘运算 四.常见的四则运算(实现了优先级) 代码 本文借鉴了"初识Java,实现简易计算器(带 ...

  3. 微信字 签到 java_java微信签到功能实现:java做的一个简易的微信签到系统

    java微信签到功能实现,现在微信签到功能很流行,这个签到功能帮助微信用户更好的管理自己的微信公众号,那你想知道java微信签到功能如何实现呢,今天小编就特意为大家分享一个关于java微信签到功能实现 ...

  4. java设计按月每天签到_java微信签到功能实现:java做的一个简易的微信签到系统的案例...

    java微信签到功能实现,现在微信签到功能很流行,这个签到功能帮助微信用户更好的管理自己的微信公众号,那你想知道java微信签到功能如何实现呢,今天小编就特意为大家分享一个关于java微信签到功能实现 ...

  5. 扑克牌游戏java代码_java实现简易扑克牌游戏

    本文实例为大家分享了java实现扑克牌游戏的具体代码,供大家参考,具体内容如下 游戏功能描述 1.创建一副扑克牌: 包括四种花色:黑桃,红桃,梅花,方片 包括十三种点数:2-10,J,Q,K,A 2. ...

  6. 如何使用 Java AWT 创建一个简易计算器

    本文分享自华为云社区<手把手教你使用 Java AWT 创建一个简易计算器>,作者:海拥 . 关于AWT AWT (抽象窗口工具包)是一个有助于构建 GUI 的 API (图形用户界面)基 ...

  7. 基于Java Swing编写的简易运费计算工具

    两年前给媳妇儿做的一个基于Java Swing编写的简易运费计算工具,现开源,关键是思路(https://github.com/honghailiang/FreightSystem).主要有两个部分实 ...

  8. java学生管理系统(简易)(三)---教师端的登录主页面

    教师端的登录界面就比较清晰了...可能就我自己认为,以为前面写的太乱了...蒙圈 // 学会了先布局,在完善部分代码,嘤嘤嘤...之前那个学生的感觉凉凉啊~ // 有些代码中可能有main函数,有些没 ...

  9. 华北科技学院java考试题_华北科技学院java课程设计报告简易计算器

    华北科技学院java课程设计报告简易计算器 华北科技学院计算机系综合性实验 实 验 报 告 课程名称 Java程序设计B 实验学期 2011 至 2012 学年 第 1 学期 学生所在系部 计算机学院 ...

最新文章

  1. Linux无法启动(一)
  2. linux 隧道服务器,两台linux服务器上建立ip隧道 | 菜鸟博客
  3. 特定场景下SQL的优化
  4. Flex 序列化自定义类 解决 sharedObject 保存自定义对象
  5. C++:连接MySQL
  6. js 判断时区, 时区过滤
  7. redis的list类型
  8. 软件工程导论团队介绍——信科吴彦组
  9. 奶爸业余单片机学习之:C语言基础——for循环及for嵌套
  10. ubuntu18.04新体验
  11. EXCLE调用REFPROP操作以及问题
  12. android版本升级功能,手机安卓系统怎么升级 安卓系统更新升级的三种方法介绍...
  13. 建网站购买服务器,建网站购买服务器
  14. 如何写好高考英语作文
  15. 80页4万字政务综合服务平台建设项目方案书(完整版)
  16. Android 音频可视化
  17. 小周SEO:网站关键词【杭州SEO】排名到前3名SEO技巧
  18. SQL Server-------安全机制1
  19. 英文不好的人如何阅读外文文献?
  20. Linux(Ubuntu)安装Django

热门文章

  1. 如何解决Android 安卓版 QQ 卡顿耗电?
  2. 【矩阵】- “之”字形打印
  3. Python 将长度32的UUID 压缩为长度为22的字符串
  4. 【Excel函数】Office 365 之Excel函数之Left函数
  5. Matlab出现无法访问系统剪切板问题
  6. 【Rust 日报】2021-03-12 Yew+Bevy 组合在一起的魔术
  7. 浦发银行重庆分行应届生实习面试
  8. Win11系统无用的临时文件怎么清理教学
  9. 迈克菲实验室报告揭示:网络犯罪锁定医疗保健系统
  10. 一对一视频聊天app开发借助了哪些CDN的服务功能?...