Java 用LinkdeList实现52张扑克牌
用LinkdeList实现52张扑克牌(不含大小王)的洗牌功能。提示:花色 ,和数字分别用数组存储。
import java.util.LinkedList;
import java.util.Random; class Poker{ String color;//花色
String num;//数字 public Poker(String color,String num){ this.color = color;
this.num = num;
} @Override
public String toString() {
// TODO Auto-generated method stub
return "{"+color+num+"}";
}
} public class HomeWork3 { /**
* @param args
* 用LinkdeList实现52张扑克牌(不含大小王)的洗牌功能。
* 提示:花色 ,和数字分别用数组存储。
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
// 1.创建扑克牌
LinkedList list = creatPoker();
//2.洗牌
shufflePoker(list);
//3.显示
showPoker(list); //4.发牌的功能。 } //洗牌的功能
public static void shufflePoker(LinkedList poker){ //1.产生一个随机数
Random rangdom = new Random(); for(int i = 0 ;i<100;i++){ //随机获取两个索引值:
int index1 = rangdom.nextInt(poker.size());
int index2 = rangdom.nextInt(poker.size());
Poker p1 = (Poker) poker.get(index1);
Poker p2 = (Poker) poker.get(index2);
//交换用set方法
poker.set(index1, p2);
poker.set(index2, p1); } } public static void showPoker(LinkedList list){ for(int i = 0;i<list.size();i++){ System.out.print(list.get(i));
if( i % 13 == 12){ System.out.println();
} } } public static LinkedList creatPoker(){
//创建集合对象用来存放扑克牌
LinkedList list = new LinkedList();
//定义花色和数字
String[] colors = {"黑桃","红桃","方块","梅花"};
String[] nums = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"}; for(int i = 0 ;i<nums.length ;i++){ for(int j = 0;j<colors.length;j++){ list.add(new Poker(colors[j], nums[i]));
}
} return list;
} }
Java 用LinkdeList实现52张扑克牌的更多相关文章
- 理解面向对象编程---C#控制台实现52张扑克牌的分法
52张牌随机分给4个玩家,要求每个玩家的牌用一个一维数组表示. 我们采用模拟大法.初始化一副扑克牌,洗牌,发牌. using System; using System.Collections.Gene ...
- SwiftUI:看我展示52张扑克牌,“很快啊!”
目录 思路 效果图 相关代码解析 枚举创建扑克牌号码 枚举创建扑克牌类型 viewModel逻辑 UI实现 源码 感受 思路 使用 SwiftUI 创建 UI 结构: 使用 swift 的枚举和结构体 ...
- 52张扑克牌快速生成js
function* generatePoker() { const points = ['A', 2, 3, 4, 5, 6, 7, 8, 9, 10, 'J', 'Q', 'K']; yield* ...
- Java基础练习——读心术(扑克牌魔术——21张扑克牌)
Java基础练习--读心术(扑克牌魔术--21张扑克牌) 用到了Scanner,for循环,if-else语句,集合,线程的Thread.sleep()方法 话不多说,直接上代码!
- 贝叶斯公式52张牌猜黑桃A策略
贝叶斯公式52张牌猜黑桃A策略 考虑有208平行世界,其中有4个世界(1/52)的黑桃A方在第一张牌的位置,余下204个世界中,有4个世界的黑桃A在第2张牌的位置,4个世界在第3张牌的位置..... ...
- 【Java】 剑指offer(61) 扑克牌的顺子
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连 ...
- Effective Java 第三版——52. 明智而审慎地使用重载
Tips 书中的源代码地址:https://github.com/jbloch/effective-java-3e-source-code 注意,书中的有些代码里方法是基于Java 9 API中的,所 ...
- 【Oracle/Java】批量删除16张十万数据的表 单线程耗时45秒 多线程耗时38秒
昨天做了插入的单线程多线程比较,今天做个删除的. 单线程批量删除类代码: package com.hy.delete.singlethread; import java.sql.Connection; ...
- 【Oracle/Java】给十六张表各插入十万条数据 单线程耗时半小时 多线程耗时一刻钟
测试机Oracle版本: SQL> select * from v$version; BANNER ----------------------------------------------- ...
随机推荐
- PEAR安装
看到PEAR章节,提到安装PEAR需要go-pear.bat,我机器上的PHP(v7.0.8)目录下,并没有go-pear.bat这个文件,网上查了一遍,怎么说的都有,最后还是在官网上找到解决方案. ...
- iOS self
如果self在对象方法中 那么self就代表调用当前对象方法的那个对象 如果self在类方法中 那么self就代表调用当前类方法的那个类 总结:self的使用只需关注self在哪个方法中 如果在类方法 ...
- myabatis oracle 调用存储过程返回list结果集
Mapper.xml 配置 <resultMap type="emp" id="empMap"> <id property="emp ...
- <css系列>之css--float总结
一.float的历史 float的设计初衷是实现文字环绕效果. 如下图,对图片添加float,文字实现环绕效果. 二.float特性 1.包裹性,表现:收缩.坚挺.隔绝.具有包裹性的属 ...
- mysql 创建用户、授权等操作
一, 创建用户: 命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 说明:username - 你将创建的用户名, host - 指 ...
- Linux posix线程库总结
由于历史原因,2.5.x以前的linux对pthreads没有提供内核级的支持,所以在linux上的pthreads实现只能采用n:1的方式,也称为库实现. 线程的实现,经历了如下发展阶段: Linu ...
- OE学习笔记流水
Terrain.cpp中的getWorldCoordsUnderMouse函数,进行标记.
- dbca建库sys用户被锁
奇怪问题:dbca建库sys用户被锁, 点击密码管理报账户被锁 而且在服务器上无法进行操作系统验证登陆,经过一番检查发现oracle用户和grid用户没有在dba组里 解决: 1.把oracle用户和 ...
- Python debug
- Mvc HtmlHelper 方法扩展 DropDownListFor
项目中遇到表单提交中遇到枚举,忽然想起1年前的1小段代码结合HtmlHelper在扩展一下 便于开发中使用 public static class HtmlHelperExtensions { p ...