刘谦龙年春晚魔术模拟
守岁共此时
代码
直接贴代码了,异常处理有点问题,正常流程能跑通
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应用变…...
idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...
docker详细操作--未完待续
docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...
微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...
visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...
CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...
用docker来安装部署freeswitch记录
今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...
