Java练习题 2022 -4

news2024/11/26 15:34:42

皖北流行一种叫做“干瞪眼”的扑克牌游戏,使用的扑克牌牌面数值包括:A(1),2,3,4,5,6,7,8,9,T(10),J(11),Q(12),K(13)。这里10用T替换,暂时不考虑大鬼和小鬼。

两手牌的大小规则如下(暂不考虑其他规则):

a)单牌:只有两张牌刚好大一个点时才能进行比较,比较顺序为:A>K>Q>J>T>9>8>7>6>5>4>3。

比如:6大于5,但是不比4大,6和4不能比较。单牌2属于特殊牌,可以和其他所有普通单牌比较,并且是最大的。

b) 对子:即两张牌的点数相同,规则和单牌相似,两个2是特殊对子,可以大于所有的其他对子。注意:对子和单牌不能进行比较。

c) 炸弹:3个点数相同的牌。炸弹可以大于任何单张和对子,炸弹之间的比较与单牌和对子不同,只要满足:222>AAA>KKK>QQQ>JJJ>TTT>…>333的规则的即可。即222是最大的,AAA可以大于KKK,也可以大于333。

编写一个方法实现两手牌的比较:

int compareCards (String firstCards, String secondCards)

参数:firstCards是需要比较的第一手牌,secondCards是需要比较的第二手牌

返回:int型数据,如果firstCards和secondCards一样大,返回0;如果firstCards大于secondCards,返回1;如果firstCards小于secondCards,返回-1;如果firstCards和secondCards无法比较,返回2。

输入说明:要比较的两手牌,中间以空格隔开。每一手牌可能是任何大小的单牌、对子或炸弹。不符合规则的输入情况不需考虑。

输出说明:两手牌的比较结果

输入时两手牌之间用空格隔开。
输入样例1:J T
输入样例2:J 8

输出样例1:1
输出样例2:2

package _2022Ti;

import javax.persistence.criteria.CriteriaBuilder;
import javax.print.DocFlavor;
import java.util.Scanner;

public class Test4 {
public static int cardSize = 0;

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String st = sc.nextLine();
cardSize = st.length();


String[] s = st.split(" ");


System.out.println(compareCards(s[0], s[1]));
}

public static int compareCards(String firstCards, String secondCards) {

//有炸弹情况
if (firstCards.length() !=3 && secondCards.length()!=3) {




//单牌情况



if (cardSize == 3) {

// 判断相等情况
if (firstCards.equals(secondCards)) {
return 0;
}

if (firstCards.equals("2")) {
return 1;
}
if (secondCards.equals("2")) {
return -1;
}


// 转换数值
//相差一个点可以比较
if (firstCards.equals("J")) {
firstCards = "11";
} else if (secondCards.equals("J")) {
secondCards = "11";
}

if (firstCards.equals("Q")) {
firstCards = "12";
} else if (secondCards.equals("Q")) {
secondCards = "12";
}
if (firstCards.equals("K")) {
firstCards = "13";
} else if (secondCards.equals("K")) {
secondCards = "13";
}
if (firstCards.equals("A")) {
firstCards = "14";
} else if (secondCards.equals("A")) {
secondCards = "14";
}
if (firstCards.equals("T")) {
firstCards = "10";
} else if (secondCards.equals("T")) {
secondCards = "10";
}

if (Integer.parseInt(firstCards) + 1 == Integer.parseInt(secondCards) || Integer.parseInt(secondCards) + 1 == Integer.parseInt(firstCards)) {

return Integer.parseInt(firstCards) > Integer.parseInt(secondCards) ? 1 : -1;


} else {
return 2;
}

}
// 对子情况
//
if (cardSize == 5) {

//相等
if (firstCards.equals(secondCards)) {
return 0;
}

if (firstCards.equals("22")) {
return 1;
}
if (secondCards.equals("22")) {
return -1;
}



// 转换数值
//相差一个点可以比较
if (firstCards.equals("JJ")) {
firstCards = "1111";
} else if (secondCards.equals("JJ")) {
secondCards = "1111";
}

if (firstCards.equals("QQ")) {
firstCards = "1212";
} else if (secondCards.equals("QQ")) {
secondCards = "1212";
}
if (firstCards.equals("KK")) {
firstCards = "1313";
} else if (secondCards.equals("KK")) {
secondCards = "1313";
}
if (firstCards.equals("AA")) {
firstCards = "1414";
} else if (secondCards.equals("AA")) {
secondCards = "1414";
}
if (firstCards.equals("TT")) {
firstCards = "1010";
} else if (secondCards.equals("TT")) {
secondCards = "1010";
}

// 判断牌数 为 10 以上的
if (firstCards.length() == 4 && secondCards.length() == 4) {
int a = Integer.parseInt(firstCards.substring(0, 2));
int b = Integer.parseInt(secondCards.substring(0, 2));
if (a + 1 == b || b + 1 == a) {
if (a > b) {
return 1;
}
if (a < b) {
return -1;
}

}

}

// 判断牌数其中有一个是10 以上的 也就 99 TT 1010这种

if (firstCards.length() == 4 || secondCards.length() == 4) {
if (firstCards.length() == 4) {
return 1;
}
if (secondCards.length() == 4) {
return -1;
}
}

//都是单拍 11 - 99 情况
if (firstCards.length() == 2 && secondCards.length() == 2) {
int a = Integer.parseInt(firstCards.substring(0, 1));
int b = Integer.parseInt(secondCards.substring(0, 1));
if (a + 1 == b || b + 1 == a) {
if (a > b) {
return 1;
}
if (a < b) {
return -1;
}
}

}
}
//有炸弹
}else{
if (firstCards.equals(secondCards)){
return 0;
}

if (firstCards.length() ==3 && secondCards.length() !=3){
return 1;

}

if (secondCards.length() ==3 && firstCards.length() != 3){
return -1;
}

if (firstCards.length() ==3 && secondCards.length() ==3){
// 转换数值
//相差一个点可以比较
if (firstCards.equals("JJJ")) {
firstCards = "111111";
} else if (secondCards.equals("JJJ")) {
secondCards = "111111";
}

if (firstCards.equals("QQQ")) {
firstCards = "121212";
} else if (secondCards.equals("QQQ")) {
secondCards = "121212";
}
if (firstCards.equals("KKK")) {
firstCards = "131313";
} else if (secondCards.equals("KKK")) {
secondCards = "131313";
}
if (firstCards.equals("AAA")) {
firstCards = "141414";
} else if (secondCards.equals("AAA")) {
secondCards = "141414";
}
if (firstCards.equals("TTT")) {
firstCards = "101010";
} else if (secondCards.equals("TTT")) {
secondCards = "101010";
}

int a=Integer.parseInt(firstCards);
int b = Integer.parseInt(secondCards);

if (a> b){
return 1;
}
if (a<b){
return -1;
}


}


}

return 0;
}

}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

阿里云服务器—ECS快速入门

这里对标阿里云的课程&#xff0c;一步步学习&#xff0c;链接在下面&#xff0c;学习完考试及格即可获取阿里云开发认证和领取证书&#xff0c;大家可以看看这个&#xff0c;这里我当作笔记&#xff0c;记一下提升印象&#xff01; 内容很长&#xff0c;请耐心看完&#xff0…

视频特效制作软件 After Effects 2023 mac中文版介绍说明

After Effects 2023 mac是一款专业视频特效和动态图形设计软件。ae2023被广泛应用于电影、电视节目、广告和网络媒体等领域&#xff0c;可以创建各种令人惊叹的视觉效果。 在After Effects 2023中&#xff0c;用户可以使用强大的工具和功能来制作复杂的特效和动画。新版本引入了…

EASYX动画效果实现

eg1:绘制小球的动画效果 通过一下的代码实现小球从左向右移动效果&#xff0c;计算小球的移动速度和帧率实现移动效果平和造成视觉上的错觉 #include <stdio.h> #include <easyx.h> #include <iostream> #include <math.h> #define PI 3.14 // 1PI …

Word批量删除文档属性和个人信息方法图解

投标文件中设计敏感信息&#xff0c;在投标前必须删除&#xff0c;Word批量删除文档属性和个人信息方法图解&#xff1a; 右键word文件属性--详细信息&#xff0c;可以查看如下信息&#xff1b; 删除上述信息的办法&#xff1a; 1.打开word文件---文件 2.检查文档、检查文档 检…

Kubernetes的hostpath创建pv和pvc的验证---以部署halo博客系统为例

结论&#xff1a;hostapath作为一种存储类型是支持使用pv及pvc声明使用的。 缘由&#xff1a;最近在寻求云计算方向的运维管理岗位&#xff0c;周五晚上参加了一个头部大厂的西安岗位电面&#xff0c;面试人似乎不情愿作为本场考评的面试官&#xff0c;我在电子会议等了大约17分…

C++ 动态规划 DP教程 (一)思考过程(*/ω\*)

动态规划是一种思维方法&#xff0c;大家首先要做的就是接受这种思维方法&#xff0c;认同他&#xff0c;然后再去运用它解决新问题。 动态规划是用递推的思路去解决问题。 首先确定问题做一件什么事情&#xff1f; 对这件事情分步完成&#xff0c;分成很多步。 如果我们把整件…

【0基础学Java第三课】-- 运算符

3. 运算符 3.1 什么是运算符3.2 算术运算符3.2.1 **基本四则运算符&#xff1a;加减乘除模( - * / %&#xff09;**3.2.2 增量运算符 - * %3.2.3 自增/自减运算符 -- 3.3 关系运算符3.4逻辑运算符(重点)3.4.1 逻辑与 &&3.4.2 逻辑 ||3.4.3逻辑非 !3.4.4 短路求值 3.5 …

Lauterbach使用指南之RunTime功能

Lauterbach使用指南之RunTime功能 前言 首先&#xff0c;请问大家几个小小问题&#xff0c;你清楚&#xff1a; Lauterbach这个工具是干什么用的吗&#xff1f;在软件运行过程中如何测量两个运行point之间的runtime时间呢&#xff1f;Lauterbach的RunTime功能具体应当如何来操…

Linux中shell脚本的基础知识

目录 一、shell脚本的意义 二、如何创建shell脚本 三、如何执行shell脚本 四、如何对脚本进行调试 五、练习 一、shell脚本的意义 1、shell&#xff1a;脚本中命令的解释器 2、脚本的意义&#xff1a; 记录命令执行的过程和执行逻辑&#xff0c;以便以后重复执行脚本可以…

matlabR2021a正版免费使用

目录 matlab介绍&#xff1a; 安装&#xff1a; matlab介绍&#xff1a; MATLAB&#xff08;Matrix Laboratory的缩写&#xff09;是一种高级技术计算和编程环境&#xff0c;由MathWorks公司开发。它在科学、工程、数据分析和数学建模领域中广泛应用&#xff0c;为用户提供了…

【RTOS学习】互斥管理 | 调试 | 信息统计

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《RTOS学习》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 互斥管理 | 调试 | 信息统计 &#x1f349;互斥管理&#x1f330;屏蔽中断&#x1f330;暂停调度器…

VMware Horizon 8 2309 Enterprise虚拟桌面

VMware Horizon 8 2309 Enterprise虚拟桌面 一、虚拟桌面二、产品发布三、VMware Horizon 8 2309 Enterprise1.VMware Horizon 8 2309 Enterprise产品清单2.安装部署3. 优化工具总结 一、虚拟桌面 利用虚拟桌面和应用随时随地进行访问。 从云端进行管理 使用云端控制台和 Saa…

IO线程及相关函数

进程是资源分配的最小单位&#xff0c;线程是cpu调度的最小单位 一、概念&#xff1a; 线程指的是共享相同地址空间的多个任务 是一个轻量级的进程&#xff0c;为了提高系统的性能引入线程&#xff0c;线程和进程都参与统一的调度 在同一个进程中创建的线程共享该进程的地址空间…

预制菜配送小程序商城的效果如何

预制菜是近些年热度较高的新赛道&#xff0c;很多商家品牌入局&#xff0c;而投入到市场中也受到不少商家的喜欢&#xff0c;各种品牌和经销商层出不穷&#xff0c;目前各品牌主要以拓展市场和研究菜品为主&#xff0c;而线上无疑是很好的宣传销售渠道。 接下来让我们看看通过…

搭建gnn环境

1.无法激活 激活pytorch遇到报错usage: conda-script.py [-h] [--no-plugins] [-V] COMMAND ... conda-script.py: error: arg-CSDN博客 参考教程 【精选】手把手教你在windows10安装GNN相关环境&#xff08;torchtorch_geometricrdkitdeepchem&#xff09;_gnn环境相关的包-…

Docker Consul概述及构建

Docker Consul概述及构建 一、Consul概述1.1、什么是Consul1.2、consul 容器服务更新与发现1.3、服务注册与发现的含义1.4、consul-template概述1.5、registrator的作用 二、consul部署2.1、环境配置2.2、在主节点上部署consul2.3 、配置容器服务自动加入nginx集群2.3.1、安装G…

【Linux】:进程程序替换

进程程序替换 一.替换原理二.替换函数三.exec类函数 一.替换原理 用fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支)&#xff0c;子进程往往要调用一种exec函数以执行另一个程序。当进程调用一种exec函数时&#xff0c;该进程的用户空间代码和数据完全…

CleanMyMac X2024永久免费版mac电脑管家

日常使用中&#xff0c;很多用户忽略了Mac清除数据的重要性。当Mac运行速度越来越慢&#xff0c;发热严重&#xff0c;储存空间总是不足的时候&#xff0c;才意识到保持日常清理才是解决这些问题的根本。经常清理Mac&#xff0c;还有你意想不到的好处。 提高系统性能&#xff…

React-快速搭建开发环境

1.安装 说明&#xff1a;react-excise-01是创建的文件名 npx create-react-app react-excise-01 2. 打开文件 说明:we suggest that you begin by typing:下面即是步骤。 cd react-excise-01 npm start 3.显示

HIT_OS_LAB1 调试分析 Linux 0.00 引导程序

操作系统实验一 姓名&#xff1a;董帅学号&#xff1a;2021111547班级&#xff1a;21R0312 1.1 实验目的 熟悉实验环境掌握如何手写Bochs虚拟机的配置文件掌握Bochs虚拟机的调试技巧掌握操作系统启动的步骤 1.2 实验内容 1.2.1 掌握如何手写Bochs虚拟机的配置文件 boot: f…