模拟斗地主

需求:通过程序实现斗地主过程中的洗牌,发牌,看牌

        思路:

                创建一个牌盒,也就是定义一个集合对象,用ArrayList集合实现

                往牌盒里装牌

                洗牌,也就是把牌打散,用Collections的shuffle()方法实现

                发牌,也就是遍历集合,给三个玩家发牌

                看牌,也就是三个玩家分别遍历自己的牌

代码实现:

package com.aynu4;

//需求:通过程序实现斗地主过程中的洗牌,发牌,看牌
//        思路:
//            创建一个牌盒,也就是定义一个集合对象,用ArrayList集合实现
//            往牌盒里装牌
//            洗牌,也就是把牌打散,用Collections的shuffle()方法实现
//            发牌,也就是遍历集合,给三个玩家发牌
//            看牌,也就是三个玩家分别遍历自己的牌

import java.util.ArrayList;
import java.util.Collections;

public class PokerDemo {
    public static void main(String[] args) {

        //            创建一个牌盒,也就是定义一个集合对象,用ArrayList集合实现
        ArrayList<String> array = new ArrayList<String>();

        //          往牌盒里装牌
        /*
         *   ♦2,♦3,..♦K,♦A
         *   ♣2,......
         *   ♥2......
         *   ♠2......
         *   大王,小王
         * */
        //定义花色数组
        String[] colors = {"♦", "♣", "♥", "♠"};
        //定义点数数组
        String[] numbers = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A"};
        for (String color : colors) {
            for (String number : numbers) {
                array.add(color + number);
            }
        }
        //大王,小王
        array.add("小王");
        array.add("大王");

        //            洗牌,也就是把牌打散,用Collections的shuffle()方法实现
        Collections.shuffle(array);
//        System.out.println(array);

        //            发牌,也就是遍历集合,给三个玩家发牌
        ArrayList<String> lqxArray = new ArrayList<String>();
        ArrayList<String> lyArray = new ArrayList<String>();
        ArrayList<String> fqyArray = new ArrayList<String>();
        ArrayList<String> dpArray = new ArrayList<String>();

        for (int i = 0; i < array.size(); i++) {
            String poker = array.get(i);
            if (i >= array.size() - 3) {
                dpArray.add(poker);
            } else if (i % 3 == 0) {
                lqxArray.add(poker);
            } else if (i % 3 == 1) {
                lyArray.add(poker);
            } else if (i % 3 == 2) {
                fqyArray.add(poker);

            }
        }

//        看牌,也就是三个玩家分别遍历自己的牌
        //调用看牌的方法
        lookpoker("林青霞", lqxArray);
        lookpoker("柳岩", lyArray);
        lookpoker("风清扬", fqyArray);
        lookpoker("底牌", dpArray);
    }

    //看牌的方法
    public static void lookpoker(String name, ArrayList<String> array) {
        System.out.print(name + "的牌是:");
        for (String poker : array) {
            System.out.print(poker + " ");
        }
        System.out.println();
    }
}

林青霞的牌是:♠2 ♠J ♥5 ♥J ♣10 ♥K ♣2 ♠7 大王 ♣3 ♥6 ♠Q ♥9 ♦2 ♣J ♦5 ♠3 
柳岩的牌是:♥10 ♦A 小王 ♦K ♠5 ♦J ♣A ♥4 ♦3 ♠4 ♥3 ♥2 ♦7 ♥A ♦8 ♦Q ♦10 
风清扬的牌是:♣6 ♦6 ♣Q ♣7 ♠9 ♠8 ♣5 ♠A ♠K ♦4 ♣K ♥7 ♣9 ♥8 ♦9 ♣4 ♠6 
底牌的牌是:♠10 ♣8 ♥Q 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/3654.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【c++】:list模拟实现“任意位置插入删除我最强ƪ(˘⌣˘)ʃ“

文章目录 前言一.list的基本功能的使用二.list的模拟实现总结前言 1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭代。2. list的底层是双向链表结构&#xff0c;双向链表中每个元素存储在互不相关的独立节点中&#xff0…

【Linux】进程理解与学习Ⅲ-环境变量

环境&#xff1a;centos7.6&#xff0c;腾讯云服务器Linux文章都放在了专栏&#xff1a;【Linux】欢迎支持订阅&#x1f339;相关文章推荐&#xff1a;【Linux】冯.诺依曼体系结构与操作系统【Linux】进程理解与学习Ⅰ-进程概念浅谈Linux下的shell--BASH【Linux】进程理解与学习…

【李宏毅】-各种各样的self-attention

如何使自注意力机制变得高效&#xff1f; 在这篇博客中有讲关于注意力机制&#xff0c;其中&#xff0c;我们需要计算三个矩阵——Q&#xff0c;K&#xff0c;V &#xff0c;如果序列长度为N&#xff0c;那么三个矩阵的大小都是NxN&#xff0c;这将导致注意力机制计算量很大&a…

Linux上搭建Discuz论坛

一.准备工作 1.下载php*&#xff0c;mariadb-server 2.上传Discuz3.5压缩包并解压 二.搭建过程 基于redhat 9 版本和Discuz3.5&#xff0c;php8.0&#xff0c;mariadb10.5演示 一.准备工作 1.下载php*&#xff0c;mariadb-server [rootredhat9 aaa]# yum install -y php*…

软件测试基础篇

一、软件测试的生命周期 需求分析计划阶段&#xff1a;范围、时间、人员、工具&#xff1b;测试设计/开发&#xff1a;编写测试用例&#xff1b;测试执行&#xff1a;执行并补充测试用例&#xff1b;测试评估&#xff1a;覆盖范围&#xff08;测试了哪些功能&#xff0c;哪些没…

QCefView编译配置(Windows-MSVC)(11)

QCefView编译配置&#xff08;Windows-MSVC&#xff09; 文章目录QCefView编译配置&#xff08;Windows-MSVC&#xff09;1、概述2、准备工作3、添加环境变量4、更换cef源码版本5、CMake构建6、Visual Studio编译7、安装编译后的文件8、验证编译结果更多精彩内容&#x1f449;个…

jwt 学习笔记

概述 JWT&#xff0c;Java Web Token&#xff0c;通过 JSON 形式作为 Web 应用中的令牌&#xff0c;用于在各方之间安全地将信息作为 JSON 对象传输&#xff0c;在数据传输过程中还可以完成数据加密、签名等相关处理 JWT 的作用如下&#xff1a; 授权&#xff1a;一旦用户登…

ChatGPT常用开源项目汇总

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️&#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

动态代理原理

一、案例分析 1、引出问题 回到Spring之初控制事务繁琐的问题。 回到Spring之初控制事务繁琐的问题. 考虑一个应用场景∶需要对系统中的某些业务方法做事务管理&#xff0c;拿简单的save和update操作举例。没有加上事务控制的代码如下。 加上事务代码&#xff0c;如下&#x…

【备战蓝桥杯】----01背包问题(动态规划)

&#x1f339;作者:云小逸 &#x1f4dd;个人主页:云小逸的主页 &#x1f4dd;Github:云小逸的Github &#x1f91f;motto:要敢于一个人默默的面对自己&#xff0c;强大自己才是核心。不要等到什么都没有了&#xff0c;才下定决心去做。种一颗树&#xff0c;最好的时间是十年前…

vue3 自定义message弹窗

1、定义一个Message.vue组件其内容如下 <template><Transition name"down"><div class"xtx-message" :style"style[type]" v-show"visible"><!-- 上面绑定的是样式 --><!-- 不同提示图标会变 :class"…

【数据结构】千字深入浅出讲解栈(附原码 | 超详解)

&#x1f680;write in front&#x1f680; &#x1f4dd;个人主页&#xff1a;认真写博客的夏目浅石. &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd; &#x1f4e3;系列专栏&#xff1a;C语言实现数据结构 &#x1f4ac;总结&#xff1a;希望你看完…

Centos7.6安装19C报错CRS-2674 CRS-2632

环境描述&#xff1a; 硬件平台&#xff1a;华为atlas服务器双机&#xff0c;华为Dorado存储&#xff0c;跨机房rac双活。 软件&#xff1a;Centos7.6安装19C 193000 报错&#xff1a;集群软件和数据库软件安装过程中均无报错&#xff0c;数据库安装最后一步无法启动节点2。 这…

mqtt协议

MQTT简介 MQTT&#xff08;消息队列遥测传输协议&#xff09;是基于Publish/Subscribe&#xff08;发布订阅&#xff09;模式的物联网通信协议。该协议构建于TCP/IP协议上。 优点&#xff1a;以极少的代码和有限的带宽&#xff0c;为远程连接设备提过实时可靠的消息服务&…

走进二叉树的世界 ———性质讲解

二叉树的性质和证明前言1.二叉树的概念和结构特殊的二叉树&#xff1a;二叉树的性质前言 本篇博客主要讲述的是有关二叉树的一些概念&#xff0c;性质以及部分性质的相关证明&#xff0c;如果大伙发现了啥错误&#xff0c;可以在评论区指出&#x1f618;&#x1f618; 1.二叉树…

一种LCD屏闪问题的调试

背景 项目使用ESP32-S3 RGB接口驱动的LCD, 框架 idf-v5.0, LVGL-v7.11 显示画面正常, 但肉眼可见的像是背光在闪烁, 背光电路是应用很久的经典电路, 且排查背光驱动无错, 但开机一段时间后, 闪烁会明显减轻 记录 这块屏的显示驱动芯片为ST7701S, 查看芯片手册有说明特定的上…

C语言小程序:通讯录(静态版)

哈喽各位老铁们&#xff0c;今天给大家带来一期通讯录的静态版本的实现&#xff0c;何为静态版本后面会做解释&#xff0c;话不多说&#xff0c;直接开始&#xff01;关于通讯录&#xff0c;其实也就是类似于我们手机上的通讯录一样&#xff0c;有着各种各样的功能&#xff0c;…

十九、全新的 Web 开发构建工具——Vite

本章概要 使用 Vite与 Vue CLI 的不同 Vite 是 Vue 的作者尤雨溪开发的 Web 开发构建工具&#xff0c;它是一个基于浏览器原生 ES 模块导入的开发服务器&#xff0c;在开发环境下&#xff0c;利用 浏览器解析 import &#xff0c;在服务器端按需编译返回&#xff0c;完全跳过…

五分钟带你了解 计算机操作系统——进程与线程(万字详解·图文)

进程线程可以说是操作系统基础&#xff0c;看过很多关于这方面知识的文章都是纯理论讲述&#xff0c;我准备用图解的形式带你学习和掌握进程、线程。文字力求简单明了&#xff0c;对于复杂概念做到一个概念一张图解&#xff0c;在操作系统课程的学习中&#xff0c;很多人对进程…

springboot复习(黑马)

学习目标基于SpringBoot框架的程序开发步骤熟练使用SpringBoot配置信息修改服务器配置基于SpringBoot的完成SSM整合项目开发一、SpringBoot简介1. 入门案例问题导入SpringMVC的HelloWord程序大家还记得吗&#xff1f;SpringBoot是由Pivotal团队提供的全新框架&#xff0c;其设计…
最新文章