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 ----------------------------------------------- ...
随机推荐
- c++拷贝构造和编译优化
#include <iostream> using namespace std; class MyClass { public: MyClass(); MyClass(int i); My ...
- I/O 函数总结
经过一段时间的学习,发现字符处理时或者文件处理时,经常需要进行输入(读入)和输出,而可供选择的函数很多,现在反而容易搞混淆,下面就对常用的7个 输入输出函数 进行总结和比较,以便于区分和熟练掌握. 标 ...
- 关于一些对map和整行读取文件操作
public static void main(String[] args) { Map<String, String> map = new HashMap<String, Stri ...
- sh 测试网段在线主机
yum install nmap nmap -sP 192.168.21.1/24 查看网段在线主机 grep -vwf file1 file2 文件内容比较 #!/bin/bash # day=` ...
- WINFORM时间控件(DATATIMEPICKER)的显示格式设置
将DateTimePicker控件拖出来后打开属性,找到Format属性,选择Costum选项: 然后找到CustomFormat属性,按照你要显示的格式来输入,示例如下: 若系统时间为:2016年1 ...
- JHChart iOS图表工具库1.0.3新版本详解
前言. 从2016年4月14日开始,本人着手开发了JHChart图表工具库.经过断断续续的开发,截止到现在,已经实现了折线图.柱状图.饼状图.环形图和表格样式的图表功能.为了方便使用,我已经将一个简单 ...
- spring自动扫描、DispatcherServlet初始化流程、spring控制器Controller 过程剖析
spring自动扫描1.自动扫描解析器ComponentScanBeanDefinitionParser,从doScan开始扫描解析指定包路径下的类注解信息并注册到工厂容器中. 2.进入后findCa ...
- centos6.5安装elasticsearch
java下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htmles下载地址 : ...
- hadoop2.6.4 搭建伪分布式
安装jdk1.7 http://www.cnblogs.com/zhangXingSheng/p/6228432.html ------------------------------------- ...
- 基于AgileEAS.NET SOA 中间件领域模型数据器快速打造自己的代码生成器
一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...