用Java实现扑克牌的简易功能
本文笔者将用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实现扑克牌的简易功能相关推荐
- 简单java socket_基于Java Socket实现一个简易在线聊天功能(一)
最近做了一个项目,其中有一个在线网页交流的需求,好久没写代码了,手都生疏了,于是先写demo练练手,分享到脚本之家平台,以此做个记录,方便自己和大家使用. 先给大家说下实现步骤分这样几大步: 1.使用 ...
- 利用java swing编写一个简易的计算器,实现了括号,优先级,三角函数,阶乘等功能
利用java swing编写一个简易的计算器 背景 效果图 一.默认图 二.计算三角函数 三.阶乘运算 四.常见的四则运算(实现了优先级) 代码 本文借鉴了"初识Java,实现简易计算器(带 ...
- 微信字 签到 java_java微信签到功能实现:java做的一个简易的微信签到系统
java微信签到功能实现,现在微信签到功能很流行,这个签到功能帮助微信用户更好的管理自己的微信公众号,那你想知道java微信签到功能如何实现呢,今天小编就特意为大家分享一个关于java微信签到功能实现 ...
- java设计按月每天签到_java微信签到功能实现:java做的一个简易的微信签到系统的案例...
java微信签到功能实现,现在微信签到功能很流行,这个签到功能帮助微信用户更好的管理自己的微信公众号,那你想知道java微信签到功能如何实现呢,今天小编就特意为大家分享一个关于java微信签到功能实现 ...
- 扑克牌游戏java代码_java实现简易扑克牌游戏
本文实例为大家分享了java实现扑克牌游戏的具体代码,供大家参考,具体内容如下 游戏功能描述 1.创建一副扑克牌: 包括四种花色:黑桃,红桃,梅花,方片 包括十三种点数:2-10,J,Q,K,A 2. ...
- 如何使用 Java AWT 创建一个简易计算器
本文分享自华为云社区<手把手教你使用 Java AWT 创建一个简易计算器>,作者:海拥 . 关于AWT AWT (抽象窗口工具包)是一个有助于构建 GUI 的 API (图形用户界面)基 ...
- 基于Java Swing编写的简易运费计算工具
两年前给媳妇儿做的一个基于Java Swing编写的简易运费计算工具,现开源,关键是思路(https://github.com/honghailiang/FreightSystem).主要有两个部分实 ...
- java学生管理系统(简易)(三)---教师端的登录主页面
教师端的登录界面就比较清晰了...可能就我自己认为,以为前面写的太乱了...蒙圈 // 学会了先布局,在完善部分代码,嘤嘤嘤...之前那个学生的感觉凉凉啊~ // 有些代码中可能有main函数,有些没 ...
- 华北科技学院java考试题_华北科技学院java课程设计报告简易计算器
华北科技学院java课程设计报告简易计算器 华北科技学院计算机系综合性实验 实 验 报 告 课程名称 Java程序设计B 实验学期 2011 至 2012 学年 第 1 学期 学生所在系部 计算机学院 ...
最新文章
- Linux无法启动(一)
- linux 隧道服务器,两台linux服务器上建立ip隧道 | 菜鸟博客
- 特定场景下SQL的优化
- Flex 序列化自定义类 解决 sharedObject 保存自定义对象
- C++:连接MySQL
- js 判断时区, 时区过滤
- redis的list类型
- 软件工程导论团队介绍——信科吴彦组
- 奶爸业余单片机学习之:C语言基础——for循环及for嵌套
- ubuntu18.04新体验
- EXCLE调用REFPROP操作以及问题
- android版本升级功能,手机安卓系统怎么升级 安卓系统更新升级的三种方法介绍...
- 建网站购买服务器,建网站购买服务器
- 如何写好高考英语作文
- 80页4万字政务综合服务平台建设项目方案书(完整版)
- Android 音频可视化
- 小周SEO:网站关键词【杭州SEO】排名到前3名SEO技巧
- SQL Server-------安全机制1
- 英文不好的人如何阅读外文文献?
- Linux(Ubuntu)安装Django
热门文章
- 如何解决Android 安卓版 QQ 卡顿耗电?
- 【矩阵】- “之”字形打印
- Python 将长度32的UUID 压缩为长度为22的字符串
- 【Excel函数】Office 365 之Excel函数之Left函数
- Matlab出现无法访问系统剪切板问题
- 【Rust 日报】2021-03-12 Yew+Bevy 组合在一起的魔术
- 浦发银行重庆分行应届生实习面试
- Win11系统无用的临时文件怎么清理教学
- 迈克菲实验室报告揭示:网络犯罪锁定医疗保健系统
- 一对一视频聊天app开发借助了哪些CDN的服务功能?...