【顺序表使用练习】发牌游戏

news/2024/12/23 7:21:14/

【顺序表使用练习】发牌游戏

  • 1. 介绍游戏
  • 2. 实现52张牌
  • 3. 实现洗牌
  • 4. 实现发牌
  • 5. 效果展示

1. 介绍游戏

首先先为大家介绍一下设计要求

  1. 实现52张牌(这里排除大小王)
  2. 洗牌——打乱牌的顺序
  3. 发牌——3个人,1人5张牌

2. 实现52张牌

  1. 创建Code对象
  2. 创建codelist顺序表,储存52张牌

下面是代码演示:

java">public class Code {//创建Code类String suit;//定义花色int number;//定义数字//创建一个数组储存4种花色public static final String[] suits={"❤","♠","♦","♣"};@Override//重写输出格式public String toString() {return "Code{" +suit +number +'}';}public Code() {}public Code(String suit, int number) {this.suit=suit;this.number=number;}public static List<Code> buycode(){//初始化牌面List<Code> codeList=new ArrayList<>();//创建顺序表for (int i = 0; i < 13; i++) {for (int j = 0; j < 4; j++) {String suit=suits[j];int number=i;Code code=new Code(suit,number);//创建codecodeList.add(code);//将每次创建的code都add尾插到顺序表中//实现52张牌的存储}}return codeList;}

3. 实现洗牌

如何实现洗牌? 第一时间大部分人都会想到随机数,那么如何使用随机数实现洗牌呢?
在这里插入图片描述

下面是代码实现

java"> public static List<Code> randcode(List<Code> codeList){//洗牌Random random=new Random();for (int i = codeList.size()-1; i>0; i--) {int a=random.nextInt(i);swap(codeList,i,a);}return codeList;}

4. 实现发牌

创建一个二维顺序表h
在这里插入图片描述
h1 h2 h3 分别是三个人被分到的牌

下面是代码实现

java">public static List<List<Code>> play(List<Code> codeList){List<Code> h1=new ArrayList<>();List<Code> h2=new ArrayList<>();List<Code> h3=new ArrayList<>();List<List<Code>> h=new ArrayList<>();h.add(h1);h.add(h2);h.add(h3);for (int i = 0; i < 3; i++) {for (int j = 0; j < 5; j++) {Code code=codeList.remove(0);h.get(i).add(code);}}return h;}

5. 效果展示

main函数

java">public class Test {public static void main(String[] args) {Code code=new Code();//初始化牌面List<Code> codeList=code.buycode();System.out.println("初始化牌面:"+codeList);//洗牌System.out.println("洗牌:"+code.randcode(codeList));//发牌List<List<Code>> h=code.play(codeList);System.out.println("发牌:");for (int i = 0; i < h.size(); i++) {System.out.println(h.get(i));}}
}

在这里插入图片描述


http://www.ppmy.cn/news/1531484.html

相关文章

在unity资源中发现无效引用

本文主要解决在不打开unity的情况下搜索出无效引用的资源的方法 1. 概述 一般只要遍历一下目录里所有资源,判空一下就好了但有些情况下,不希望打开unity, 尤其希望是在资源整合时,想更快验证资源的合法性, 这对合并提交及出包验证时,都要较大的需求 2. 简单的验证方法 简单来…

安全审计与监控的核心作用!确保网络安全等级保护的有效性

安全审计和监控是确保网络安全等级保护有效实施的关键手段。通过定期审计系统的安全性和实时监控网络活动&#xff0c;可以及时发现潜在的安全问题和异常行为。本文将探讨安全审计和监控在网络安全等级保护中的作用&#xff0c;介绍实施审计和监控的最佳实践&#xff0c;并提供…

走进上海郭培高定会馆:以冠珠华脉、华珍筑就至臻至性的艺术空间

“我热爱高级时装&#xff0c;因为她是一种生命的停驻。我希望我的高级时装成为馆藏级的精品&#xff0c;殿堂级的珍宝&#xff0c;成为传世杰作。” ——郭培 中国唯一一位法国高定公会受邀会员&#xff0c;曾荣登《TIME》时代周刊全球100位最具影响力人物榜单。纽约时报评价…

搜索引擎onesearch3实现解释和升级到Elasticsearch v8系列(四)-搜索

搜索 搜索内容比较多&#xff0c;onesearch分成两部分&#xff0c;第一部分&#xff0c;Query构建&#xff0c;其中包括搜索词设置&#xff0c;设置返回字段&#xff0c;filter&#xff0c;高亮&#xff1b;第二部分分页和排序。第一部分是映射引擎负责&#xff0c;映射通用表…

XXL-JOB:将accessToken扩展为动态

背景&#xff1a; xxl-job版本&#xff1a;2.0.2 xxl-rpc-core版本&#xff1a;1.4.0 springboot版本&#xff1a;1.5.20.RELEASE Kingbase版本&#xff1a;V8R6 针对业务上的需求&#xff0c;做一些个性化扩展&#xff1a; 1、启用accessToken&#xff0c;并且使用SM2加密&…

Serilog文档翻译系列(六) - 可用的接收器、增强器、格式化输出

01、提供的接收器 Serilog 使用接收器将日志事件以各种格式写入存储。许多接收器由更广泛的 Serilog 社区开发和支持&#xff1b;可以通过在 NuGet 上搜索 serilog 标签找到。 02、增强器 日志事件可以通过多种方式增强属性。通过 NuGet 提供了一些预构建的增强器&#xff…

pyhton语法 正则表达式

pyhton语法 正则表达式 1.正则表达式介绍1.1 正则表达式入门1.2 正则替换 2.正则效验2.1正则-校验单个字符2.2正则-校验多个字符2.3 正则-校验开头和结尾2.4 正则-校验分组2.5 正则校验邮箱2.6正则获取分组后的数据2.7 引用指定组的内容 总结 1.正则表达式介绍 1.1 正则表达式…

1.MySQL的安装

目录 下载安装包 安装前环境的准备 正式安装 下载安装包 MySQL安装网址:https://www.mysql.com/cn/ 进去之后就是上面这个页面&#xff0c;进行汉化的时候将这个网页拉至最下&#xff0c;右下角点成中文就可以&#xff0c;如下这个页面。 回到页面顶端&#xff0c;点击下载&a…