Java集合,扑克牌的小项目练习

2小时学完了类与集合,一直二倍加跳过,集合和类的学习我觉得得多实践中去记住,光靠背,永远也背不完,学的时候记一下常用的,特殊的就行了,用的时候再查,多写代码才能会,哈哈哈,学的很糙,所以来实践了,这是扑克牌,需要码牌,洗牌,开牌,看牌(经典小品在这里太符合了)~~

这里我们需要满足一个条件和一个小细节~~

  • 需要每个玩家拿到牌的时候排好序了,就相当于你玩斗地主的时候,你本能会把牌排序方便你构思牌路
  • 留3张底牌,玩游戏的时候肯定要抢地主对吧,哈哈哈~~

直接贴源码了,因为使用类这方面的学习都还是挺简单的(懂的都懂,不懂的永远都不懂,数据结构和算法,永远的神),思路贴出来就行了,不用再给大家写详细注释了~~

package com.zaunekko.blog.project;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.TreeSet; public class PokerDemo { public static void main(String[] args) { //创建HashMap,键是编号,值是牌
HashMap<Integer, String> hashMap = new HashMap<>(); //创建ArrayList,存储编号
ArrayList<Integer> arrayList = new ArrayList<>(); //创建花色数组和点数数组 String[] colors = {"","","",""};
String[] numbers = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"}; //hashmap存入编号和牌,arraylist存入编号
int index = 0; for (String number : numbers){
for (String color : colors) {
hashMap.put(index,color + number);
arrayList.add(index);
++index;
}
}
hashMap.put(index,"小王");
arrayList.add(index);
++index;
hashMap.put(index,"大王");
arrayList.add(index); //洗牌
Collections.shuffle(arrayList); //发牌
TreeSet<Integer> txxSet = new TreeSet<>();
TreeSet<Integer> fybSet = new TreeSet<>();
TreeSet<Integer> yySet = new TreeSet<>();
TreeSet<Integer> downSet = new TreeSet<>(); for (int i = 0; i < arrayList.size(); i++) {
int temp = arrayList.get(i);
if (i >= arrayList.size() - 3){
downSet.add(temp);
}else if (i % 3 == 0){
txxSet.add(temp);
}else if (i % 3 == 1){
fybSet.add(temp);
}else{
yySet.add(temp);
}
} //看牌 lookPoker("TXX",txxSet,hashMap);
lookPoker("FYB",fybSet,hashMap);
lookPoker("YY",yySet,hashMap);
lookPoker("底牌",downSet,hashMap); } private static void lookPoker(String name, TreeSet<Integer> nameSet,HashMap<Integer,String> hashMap){
System.out.print(name + "的牌:" );
for (Integer key : nameSet){
String poker = hashMap.get(key);//0开始遍历键取值
System.out.print(poker + " ");
}
System.out.println();
} }

结果是这样的

最下面的人牌最好,我就不说谁是谁了,哈哈~~

Java集合,扑克牌的小项目练习的更多相关文章

  1. java Socket(TCP)编程小项目

    package 服务器端相关操作; import java.io.Serializable; /* * 创建存储需要传输信息的对象,方便客户端向服务器端传送数据 */ public class Cli ...

  2. Java小项目--坦克大战(version1.0)

    Java小项目--坦克大战<TankWar1.0> 这个小项目主要是练习j2se的基础内容和面向对象的思想.项目实现了基本的简单功能,我方一辆坦克,用上下左右键控制移动方向,按F键为发射炮 ...

  3. IT咨询顾问:一次吐血的项目救火 java或判断优化小技巧 asp.net core Session的测试使用心得 【.NET架构】BIM软件架构02:Web管控平台后台架构 NetCore入门篇:(十一)NetCore项目读取配置文件appsettings.json 使用LINQ生成Where的SQL语句 js_jquery_创建cookie有效期问题_时区问题

    IT咨询顾问:一次吐血的项目救火   年后的一个合作公司上线了一个子业务系统,对接公司内部的单点系统.我收到该公司的技术咨询:项目启动后没有规律的突然无法登录了,重新启动后,登录一断时间后又无法重新登 ...

  4. 个人小项目——Java实现WC功能

    这个小项目用了两种方法解决了该功能的实现. 1.两种方法的功能和具体实现 代码可以成功运行,但是有一些情况考虑不完整,一种方法用了FileOutputStream输出流,为了解决空格无法统计问题,对文 ...

  5. Java学习笔记三十:Java小项目之租车系统

    Java小项目之租车系统 一:项目背景介绍: 根据所学知识,编写一个控制台版的“呱呱租车系统” 功能: 1.展示所有可租车辆: 2.选择车型.租车量: 3.展示租车清单,包含:总金额.总载货量以及其车 ...

  6. Java小项目之:五子棋,你下棋下得过电脑吗?

    Java小项目之:五子棋,你下棋下得过电脑吗? Java五子棋功能要求: 1.创建窗口和设计一个棋盘界面 2.实现鼠标点击,棋子出现,黑白棋轮流下 3.能够判断五子相连输赢 4.添加重新开始,悔棋,退 ...

  7. java小项目之:扫雷,这游戏没有你想的那么简单!

    扫雷 我之前分享的小项目和小游戏,电影购票.坦克大战.捕鱼达人.贪吃蛇等,虽然已经是耳熟能详人尽皆知的项目和游戏,但是保不齐真的有人没接触过. 今天分享的这个项目,我不相信没人接触过(仅限80后-00 ...

  8. java小项目之:植物大战僵尸,这个僵尸有点冷!内附素材源码

    Java小项目之:植物大战僵尸! <植物大战僵尸>是由PopCap Games开发的一款益智策略类单机游戏,于2009年5月5日发售,这款游戏可谓是无人不知无人不晓. 在我身边,上到40岁 ...

  9. Java小项目之:教你做个聊天系统!

    Java小项目之:聊天系统 今天给大家带来的java练手小项目是一个简单的聊天室,界面简单,操作不难. 分为注册系统,登录系统和聊天系统三部分,很适合java小白练手. 完整的源码和素材请关注并私信我 ...

随机推荐

  1. ES核心概念和原理

    ES:1:倒排索引 基于Document 关键词索引实现 . 根据关键词做索引 相关度 a. 数据结构 i. 包含关键词的Document List ii. 关键词在每个doc中出现的次数 词频 TF ...

  2. Go 中的 gRPC 入门详解

    目录 Go GRPC 入门 1,安装包 2,gRPC 服务端 3,gRPC 客户端 4,编译运行 5,其它 GRPC Protobuf buffer 字段类型 字段规则 Protobuf gRPC 四 ...

  3. OO第一单元感悟与体会

    第一单元的三次编程作业结束了,现在分享一些我对自己作业的分析和感想 1.程序结构的分析 第一次作业: 本次作业我的主要思路是,为每一项写一个正则表达式,在输入的字符串中匹配每一项,多项式类中保存着一个 ...

  4. 快速上手阿里云oss SDK

    使用阿里云oss SDK 依赖安装: pip install oss2 pip install aliyun-python-sdk-sts 版本最好是 2.7.5 或以上 如果要开启 crc64 循环 ...

  5. ELK查询命令详解总结

    目录 ELK查询命令详解 倒排索引 倒排索引原理 分词器介绍及内置分词器 使用ElasticSearch API 实现CRUD 批量获取文档 使用Bulk API 实现批量操作 版本控制 什么是Map ...

  6. openGL官方Glut库配置教程

    在配置前要先安装好Visual Stdio环境 官方下载网站 注:一台Windows操作系统中可以存在多版本的Visual Stdio,多个版本之间互不干扰但不共享插件库,且高版本向下兼容,因此笔者更 ...

  7. java面试-阻塞队列

    一.阻塞队列 当阻塞队列是空,从队列中获取元素的操作会被阻塞 当阻塞队列是满,往队列中添加元素的操作会被阻塞 二.为什么用,有什么好处? 我们不需要关心什么时候需要阻塞线程,什么时候需要唤醒线程,因为 ...

  8. Dynamics CRM各个版本的元数据浏览解决方案

    https://docs.microsoft.com/en-us/dynamics365/customerengagement/on-premises/developer/browse-your-me ...

  9. B1029/A1048 旧键盘损坏了,在输入一段文字时坏了的键不可以正常使用,现给出应输入的一段文字,和实际输出的文字,找出坏掉的键。

    #include<cstdio> #include<cstring> const int maxn = 1000; bool HashTable[maxn] = { false ...

  10. 第一个 vue-cli项目

    第一个 vue-cli项目 什么是vue-cli vue-cli官方提供的一个脚手架,用于快速生成一个vue的项目模板: 预先定义好的目录结构及基础代码,就好比咱们在创建Maven项目时可以选择创建一 ...