斗地主游戏

2023-11-16

牌属性类:

package Java_project_1;

import java.util.Objects;

public class Card {
    private String size;//点数
    private String color;//花色
    private int index;//牌的真正大小

    public Card(String size, String color,int index) {
        this.size = size;
        this.color = color;
        this.index=index;
    }

    public int getIndex() {
        return index;
    }

    public void setIndex(int index) {
        this.index = index;
    }

    @Override
    public String toString() {
        return size+ color ;
    }

    @Override
    public int hashCode() {
        return Objects.hash(size, color);
    }

    public String getSize() {
        return size;
    }

    public void setSize(String size) {
        this.size = size;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public Card() {
    }
}

游戏运行主体类:

package Java_project_1;

import java.util.*;

public class GameDemo {
        public static List<Card> allCards=new ArrayList<>();
        static {
            String[] sizes={"3", "4","5","6","7","8","9","10","J","Q","K","A","2"};
            String[] colors={"♠","♥","♣","♦"};
            int index=0;
            for(String size:sizes){
                ++index;
                for (String color:colors){
                    Card c=new Card(size,color,index);
                    allCards.add(c);
                }
            }
            Card c1=new Card("","\uD83C\uDCCF",++index);//小王
            Card c2=new Card("","☠",++index);//大王
            Collections.addAll(allCards,c1,c2);
            System.out.println("新牌" + allCards);
        }
        public static void main(String[] args){
            Collections.shuffle(allCards);//洗牌
            System.out.println("洗牌后" + allCards);

            List<Card> linghuchong =new ArrayList<>();//第一位
            List<Card> jiumozhi =new ArrayList<>();//第二位
            List<Card> renyingying =new ArrayList<>();//第三位
            //分牌
            for (int i=0;i<allCards.size()-3;++i){
                Card c =allCards.get(i);
                if(i%3==0){
                    linghuchong.add(c);
                } else if (i%3==1) {
                    jiumozhi.add(c);
                } else if(i%3==2) {
                    renyingying.add(c);
                }
            }
            List<Card>lastThreeCards=allCards.subList(allCards.size()-3,allCards.size());//截取最后3张底牌
            //洗牌
            shortCard(linghuchong);
            shortCard(jiumozhi);
            shortCard(renyingying);
            //输出玩家的牌
            System.out.println("啊冲" + linghuchong);
            System.out.println("阿九" + jiumozhi);
            System.out.println("盈盈" + renyingying);
            System.out.println("三张底牌" + lastThreeCards);
        }

    /**
     * 牌排序
     * @param linghuchong
     */
    private static void shortCard(List<Card> cards) {
            Collections.sort(cards, new Comparator<Card>() {
                @Override
                public int compare(Card o1, Card o2) {
                    return o2.getIndex()- o1.getIndex();//降序
                }
            });
    }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

斗地主游戏 的相关文章

随机推荐

  • 【模型评估与选择】sklearn.model_selection.train_test_split

    1 描述 Split arrays or matrices into random train and test subsets 2 语法 train test split arrays options 3 参数 1 arrays sequ
  • 多版本php安装swoole失败问题

    问题描述 使用命令 pecl安装报错 查看报错提示使用的是低版本的php 问题原因 pecl设置的环境变量指向的路径是低版本的所以如果想使用高版本的php 需要使用全路径命令 解决方法 usr local php7 26 bin pecl
  • Ubuntu 安装elasticsearch集群

    环境准备 准备三台服务器搭建集群环境 node1 192 168 177 171 node2 192 168 177 172 node3 192 168 177 173 其中node1为master节点 node2 node3为slave节
  • 图像分割汇总

    Image Segmentation 图像分割 所谓图像分割是指根据灰度 彩色 空间纹理 几何形状等特征把图像划分成若干个互不相交的区域 使得这些特征在同一区域内表现出一致性或相似性 而在不同区域间表现出明显的不同 简单的说就是在一副图像中
  • Python——遗传算法简介及其在二次分配中的运用(含详细源代码)

    一 遗传算法简介 二 二次分配问题描述 三 Python代码实现 import math import random import matplotlib pyplot as plt def getPermutation n x n为全排列的
  • 集训第一周 Linux

    1 创建一个用户user1 用root身份给user1修改密码为redhat 提示 创建用户用useradd user1 2 切换到user1用户 给自己修改一个密码 密码任意 3 在 root 目录中创建一个以自己的汉语拼音为名字的文件
  • QML学习一:QtCreator编译器主题背景设置

    效果如下 QML学习一 QtCreator编译器主题背景设置 前言 一 工具栏菜单栏背景设置 二 文本编辑区域设置 总结 前言 工欲善其事必先利其器 为了更好地开发代码 我们先将QtCreator界面改为模仿Vs2019主题样式 这样开发起
  • Unity3d中所有特殊的文件夹

    1 Editor Editor文件夹可以在根目录下 也可以在子目录里 只要名子叫Editor就可以 比如目录 xxx xxx Editor 和 Editor 是一样的 无论多少个叫Editor的文件夹都可以 Editor下面放的所有资源文件
  • svn清理本地已经删除的文件,注意事项

    点击项目目录下空白处点击trotoiseSVN后点击检查修改 在里面删除你想要删除的已删除文件即可 分支操作注意事项 在切换分支前记得提交本地代码的修改 否则会合并到切换后的分支去 切记 哎
  • Java使用MongoTemplate实现多条件、模糊查询、排序、范围、分页查询

    场景 查询客户列表 不同条件之间取交集 且的关系 单个条件内取并集 或的关系 实现细节如下 1 全等于 手机号全字匹配 2 模糊查询 客户名称模糊搜索 3 单个条件查询多个字段 客户编号 4 日期范围 近期消费时间 5 数值范围 消费总金额
  • Ubuntu使用haar+adaboost训练进行手势识别

    手势识别开源代码千千万 为啥我要用此方法 原因有三 首先 我们项目要求这个手势识别是不分环境的 也就是半夜三更黑灯瞎火也能用 这一下子就把纯RGB的方式给去除了 而且也要考虑用户戴手套 手套颜色不限制 使用 那么肤色过滤什么的咱们再见 其次
  • 毕业设计 2023-2024年最新python毕设选题题目推荐汇总

    文章目录 0 前言 1 python 算法类 毕设选题 2 python 数据挖掘 毕设选题 3 python 大数据处理 云计算 区块链 毕设选题 4 python 网络安全 毕设选题 5 python 游戏设计 动画设计类 毕设选题 适
  • Java实现Kruskal算法

    一 kruskal算法简介 克鲁斯卡尔算法是求连通网的最小生成树的另一种方法 与prim算法不同 它的时间复杂度为O eloge e为网中的边数 所以 适合于求边稀疏的网的最小生成树 二 实现步骤 部分流程图 废话不多说 直接上代码 这张图
  • python绘制余弦曲线图_Python可视化中的Matplotlib绘图(1.画图,网格,子图,画正余弦图,坐标轴界限,画圆,)...

    1 一张基本的图标包含的元素 x轴和y轴 以及他们的刻度线 标签 绘图区域 import matplotlib pyplot as plt 导入绘图模块 import numpy as np 导入需要生成数据的numpy模块 只有一个曲线图
  • 计算机网络常见面试题总结(二)

    本文主要内容转载自 http blog csdn net u013408431 article details 62442670 locationNum 10 fps 1 面试中网络方面的知识被问到的概率很大 尤其是互联网公司 要熟悉osi
  • 垃圾短信识别python步骤详细_python数据挖掘第三篇-垃圾短信文本分类

    文本分类总体上包括8个步骤 数据探索分析 数据抽取 文本预处理 分词 去除停用词 文本向量化表示 分类器 模型评估 重要python库包括numpy 数组 pandas 用于处理结构化数据 matplotlib 绘制词云 便于直观表示 sk
  • java压缩包打不开_java.util.zip.ZipException: error in opening zip file 问题处理

    java util zip ZipException error in opening zip file 这个问题的字面意思是压缩包打不开 我这出现的问题是jar包损坏 打不开 linux系统可以使用命令判断jar 是否正常 jar vtf
  • Axure RP 万能的标签切换面板-动态面板切换

    切换面板在网页中算是非常常见的 如视频网站的电视剧分类标签 资讯网站的资讯分类等 这些交互效果都可以利用动态面板的几个状态来进行相互切换得来 下面来介绍一下如何制作这样的标签 步骤1 从部件库中拖拽一个动态面板到线框图编辑区中 并在 部件交
  • STM32Cube HAL库——ADC电压采集

    STM32Cube HAL库 ADC电压采集 一 ADC基本介绍 模拟数字转换器 即A D转换器 或简称ADC Analog to Digital Converter 通常是指一个将模拟信号转变为数字信号的电子元件 通常的模数转换器是将一个
  • 斗地主游戏

    牌属性类 package Java project 1 import java util Objects public class Card private String size 点数 private String color 花色 pr