刘谦龙年春晚魔术模拟
守岁共此时
代码
直接贴代码了,异常处理有点问题,正常流程能跑通
package com.yuhan.snginx.util.chunwan;import java.util.*;/*** @author yuhan* @since 2024/02/10*/
public class CWMS {static String[] num = {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"};static String[] style = {"♠️", "♥️", "♣️", "♦️"};static String[] wang = {"大王", "小王"};public static List<String> listPoker = new ArrayList<>(54);public static List<String> choose = new ArrayList<>(4);public static HashMap<Integer, String> map = new HashMap<>();static {map.put(1, "南方");map.put(2, "北方");map.put(3, "二家岗子");}public static List<String> getAllPoker() {for (String string : style) {for (String s : num) {listPoker.add(string + s);}}listPoker.add(Arrays.toString(wang));return listPoker;}public static void choosePoker() {String styleIn, numIn;for (int i = 0; i < 4; i++) {System.out.println("\n请选择花色");Scanner scanner = new Scanner(System.in);styleIn = scanner.nextLine();System.out.println("请选择数字");numIn = scanner.nextLine();System.out.println("是否确认选择 ok or any keys");String sc = scanner.nextLine();if (!Objects.equals(sc, "ok")) {return;}while (Objects.isNull(styleIn) || Objects.isNull(numIn)) {System.out.println("输入错误,请重新输入");}String chPoker = styleIn + numIn;while (!listPoker.contains(chPoker)) {System.out.println("花色非法或不存在的数字");}System.out.println("\n 本次选择" + chPoker);choose.add(chPoker);}System.out.println("你选择的扑克分别为:");choose.forEach(System.out::println);}public static void suffer() {System.out.println("\n 请打乱刚刚选择的牌,按ok键进行 !");Scanner scanner = new Scanner(System.in);if ("ok".equalsIgnoreCase(scanner.nextLine())) {System.out.println("\n洗牌前顺序");choose.forEach(s -> System.out.println(s + " "));Collections.shuffle(choose);System.out.println("\n洗牌后顺序");choose.forEach(s -> System.out.println(s + " "));}}public static List<String> push() {System.out.println("请从中间撕碎扑克,按 ok 撕碎 !");Scanner scanner = new Scanner(System.in);if (!"ok".equalsIgnoreCase(scanner.nextLine())) {System.out.println("不撕就别玩,结束了");return choose;}ArrayList<String> result = new ArrayList<>(choose);for (String s : choose) {String str = s + "副本";result.add(str);}result.forEach(System.out::println);return result;}public static void nameSuffer(List<String> push) {System.out.println("请输入你的姓名,名字有几个字,就将最上面的牌放到最下边几次");Scanner scanner = new Scanner(System.in);String name = scanner.nextLine();if (Objects.isNull(name)) {System.out.println("姓名为空");return;}for (int i = 0; i < name.length(); i++) {String first = push.get(0);push.remove(0);push.add(first);}}public static void magicTime(List<String> push) {String magic = "见证奇迹的时刻";for (int i = 0; i < magic.length(); i++) {String first = push.get(0);push.remove(0);push.add(first);}}public static void suffer_3(List<String> push, boolean region, int regionChoose) {Random random = new Random();if (region) {regionChoose = (regionChoose < 1 || regionChoose > 3) ? 3 : regionChoose;}// 生成3到5之间的随机数int randomNum = region ? random.nextInt(4 + (3 - regionChoose)) : random.nextInt(4);System.out.println(randomNum);ArrayList<String> third = new ArrayList<>();for (int i = 0; i < 3; i++) {third.add(push.get(i));}
// third.forEach(System.out::println);
// System.out.println("third");if (!region) {push.remove(0);push.remove(0);push.remove(0);} else {for (int i = 0; i < regionChoose; i++) {push.remove(0);}}// push.forEach(System.out::println);
// System.out.println("removed");push.addAll(randomNum + 1, third);}public static String getFirst(List<String> suffered) {return suffered.get(0);}public static int region() {System.out.println("\n 请选择南北方人 ,如果你是南方人请输入 1;如果你是北方人请输入 2; 如果不能确认你是南北方人请输入 3");Scanner scanner = new Scanner(System.in);int i = scanner.nextInt();while (Objects.isNull(map.get(i))) {System.out.println("输入错误,请重新输入 !");i = scanner.nextInt();}System.out.println("你已选择" + map.get(i));return i;}public static void drop(List<String> pushed, int i) {for (int i1 = 0; i1 < i; i1++) {pushed.remove(0);}}public static int chooseSex() {Scanner scanner = new Scanner(System.in);System.out.println("请选择 性别 男:1 女:2");int i = scanner.nextInt();System.out.println(i == 1 ? "男" : "女");return i;}/*** 好运留下来** @param args*/public static void luck(List<String> push) {String first = push.get(0);push.remove(0);System.out.println("好运留下来");push.add(first);System.out.println("烦恼丢出去");push.remove(0);}private static void anyWay(List<String> pushed) {while (pushed.size() > 1) {luck(pushed);}}public static void main(String[] args) {// 获取完整扑克getAllPoker().forEach(t -> System.out.print(" " + t));// 从中选择四张choosePoker();// 打乱suffer();// 撕碎List<String> pushed = push();// namenameSuffer(pushed);// suffer_3suffer_3(pushed, false, 0);// 记住取出的第一张牌String first = getFirst(pushed);// 南北方人选择// 南方北方切牌suffer_3(pushed, true, region());// 男女选择int sex = chooseSex();drop(pushed, sex);// 见证奇迹的时刻magicTime(pushed);// 多来几次anyWay(pushed);// 对比System.out.println("第一张牌" + first);System.out.println("丢完剩下的" + pushed.get(0));}}相关文章:
刘谦龙年春晚魔术模拟
守岁共此时 代码 直接贴代码了,异常处理有点问题,正常流程能跑通 package com.yuhan.snginx.util.chunwan;import java.util.*;/*** author yuhan* since 2024/02/10*/ public class CWMS {static String[] num {"A", "2", &quo…...
re:从0开始的CSS学习之路 9. 盒子水平布局
0. 写在前面 过年也不能停止学习,一停下就难以为继,实属不应 1. 盒子的水平宽度 当一个盒子出现在另一个盒子的内容区时,该盒子的水平宽度“必须”等于父元素内容区的宽度 盒子水平宽度: margin-left border-left padding-lef…...
【MySQL基础】:深入探索DQL数据库查询语言的精髓(上)
🎥 屿小夏 : 个人主页 🔥个人专栏 : MySQL从入门到进阶 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言一. DQL1.1 基本语法1.2 基础查询1.3 条件查询1.3 聚合函数 🌤️ 全篇…...
JavaScript实现轮播图方法
效果图 先来看下效果图,嫌麻烦就不用具体图片来实现了,主要是理清思路。(自动轮播,左右按钮切换图片,小圆点切换图片,鼠标移入暂停轮播,鼠标移出继续轮播) HTML 首先是html内容&am…...
Web课程学习笔记--jsonp的原理与简单实现
jsonp的原理与简单实现 原理 由于同源策略的限制,XmlHttpRequest只允许请求当前源(域名、协议、端口)的资源,为了实现跨域请求,可以通过script标签实现跨域请求,然后在服务端输出JSON数据并执行回调函数&…...
第78讲 修改密码
系统管理实现 修改密码实现 前端 modifyPassword.vue: <template><el-card><el-formref"formRef":model"form":rules"rules"label-width"150px"><el-form-item label"用户名:&quo…...
Docker 容器网络:C++ 客户端 — 服务器应用程序。
一、说明 在下面的文章中, 将向您概述 docker 容器之间的通信。docker 通信的验证将通过运行 C 客户端-服务器应用程序和标准“ping”命令来执行。将构建并运行两个单独的 Docker 映像。 由于我会关注 docker 网络方面,因此不会提供 C 详细信息。…...
Android 识别车牌信息
打开我们心爱的Android Studio 导入需要的资源 gradle //开源车牌识别安卓SDK库implementation("com.github.HyperInspire:hyperlpr3-android-sdk:1.0.3")button.setOnClickListener(v -> {Log.d("Test", "");try (InputStream file getAs…...
C#在窗体正中输出文字以及输出文字的画刷使用
为了在窗体正中输出文字,需要获得输出文字区域的宽和高,这使用MeasureString方法,方法返回值为Size类型; 然后计算输出的起点的x和y坐标,就可以输出了; using System; using System.Collections.Generic; …...
二十、K8S-1-权限管理RBAC详解
目录 k8s RBAC 权限管理详解 一、简介 二、用户分类 1、普通用户 2、ServiceAccount 三、k8s角色&角色绑定 1、授权介绍: 1.1 定义角色: 1.2 绑定角色: 1.3主体(subject) 2、角色(Role和Cluster…...
【PTA|期末复习|编程题】数组相关编程题(一)
目录 7-1 乘法口诀数列 (20分) 输入格式: 输出格式: 输入样例: 输出样例: 样例解释: 代码 7-2 矩阵列平移(20分) 输入格式: 输出格式: 输入样例: 输出样例: …...
[office] 怎么在Excel2003菜单栏自定义一个选项卡 #其他#微信#知识分享
怎么在Excel2003菜单栏自定义一个选项卡 怎么在Excel2003菜单栏自定义一个选项卡 ①启动Excel2003,单击菜单栏--工具--自定义。 ②在自定义界面,我们单击命令标签,在类别中选择新菜单,鼠标左键按住新菜单,拖放到菜单栏…...
面试 JavaScript 框架八股文十问十答第六期
面试 JavaScript 框架八股文十问十答第六期 作者:程序员小白条,个人博客 相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新! ⭐点赞⭐收藏⭐不迷路!⭐ 1)use strict是什么…...
【Web】小白友好的Java内存马基础学习笔记
目录 简介 文件马与内存马的比较 文件马原理 内存马原理 内存马使用场景 内存马分类 内存马注入方式 这篇文章主要是概念性的,具体技术细节不做探究,重点在祛魅。 简介 内存马(Memory Shellcode)是一种恶意攻击技术&…...
Rust猜数字游戏
Rust进阶:猜数字游戏 Rust是一门现代的系统级编程语言,注重内存安全、并发性能以及表达力。在这篇博客中,我们将深入介绍一个更加复杂的猜数字游戏代码,展示Rust语言的一些高级特性。 代码示例 以下是一个升级版的Rust猜数字游…...
.gitlab-ci.yml文件参数配置和使用
天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…...
Go语言从基础到高级-目录
一、编程入门和Go语言简介 什么是编程和为什么要学习编程计算机编程的基本概念Go语言简介为什么选择Go语言 二、设置Go语言开发环境 如何安装Go语言设置环境变量Go语言的工作空间配置 三、Go语言基础 Hello, World!初体验变量和常量数据类型(整数、浮点数、字符…...
Linux CentOS stream 9 alias
alias命令在Linux中用于创建命令别名。它允许用户为常用的命令或命令组合创建短而易记的别名,从而提高工作效率。 alias命令与windows中的快捷方式相同,执行别名时,终端解释器就进行查询与转换,进而执行原来的完整命令。 熟练使用alias命令可以使我们将一长串命令或者一些…...
WebSocketServer+redis实时更新页面数据
redis 实现发布订阅功能具体实现_redis convertandsend-CSDN博客 主要看上面这个 使用redis做websocket分布式消息推送服务_websocket redis-CSDN博客 ClassCastException: java.lang.String cannot be cast to com.alibaba.fastjson.JSONObject 的解决办法_java.lang.class…...
快速掌握Vue.js框架:从入门到实战
一、引言 Vue.js,作为一款广受欢迎的渐进式JavaScript框架,以其轻量级、易用性和高效性在前端开发领域占据了一席之地。Vue.js遵循MVVM(Model-View-ViewModel)设计模式,它通过双向数据绑定机制简化了开发者对用户界面与底层数据模型之间关系的处理,使得构建现代Web应用变…...
网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...
UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...
Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...
python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...
OD 算法题 B卷【正整数到Excel编号之间的转换】
文章目录 正整数到Excel编号之间的转换 正整数到Excel编号之间的转换 excel的列编号是这样的:a b c … z aa ab ac… az ba bb bc…yz za zb zc …zz aaa aab aac…; 分别代表以下的编号1 2 3 … 26 27 28 29… 52 53 54 55… 676 677 678 679 … 702 703 704 705;…...
【深度学习新浪潮】什么是credit assignment problem?
Credit Assignment Problem(信用分配问题) 是机器学习,尤其是强化学习(RL)中的核心挑战之一,指的是如何将最终的奖励或惩罚准确地分配给导致该结果的各个中间动作或决策。在序列决策任务中,智能体执行一系列动作后获得一个最终奖励,但每个动作对最终结果的贡献程度往往…...
