返回

#yyds干货盘点# 名企真题专题: 扎金花

发布时间:2023-01-01 02:44:53 357

1.简述:

描述
两个搜狐的程序员加了一个月班,终于放假了,于是他们决定扎金花渡过愉快的假期 。 游戏规则: 共52张普通牌,牌面为2,3,4,5,6,7,8,9,10,J,Q,K,A之一,大小递增,各四张; 每人抓三张牌。两人比较手中三张牌大小,大的人获胜。 对于牌型的规则如下: 1.三张牌一样即为豹子 2.三张牌相连为顺子(A23不算顺子) 3.有且仅有两张牌一样为对子 豹子>顺子>对子>普通牌型 在牌型一样时,比较牌型数值大小(如AAA>KKK,QAK>534,QQ2>10104) 在二人均无特殊牌型时,依次比较三张牌中最大的。大的人获胜,如果最大的牌一样,则比较第二大,以此类推(如37K>89Q) 如二人牌面相同,则为平局。

输入描述:

输入两个字符串代表两个玩家的牌(如"10KQ" "354"),先输入的作为玩家1,后输入的作为玩家2

输出描述:

1 代表 玩家1赢 0 代表 平局 -1 代表 玩家2赢 -2 代表不合法的输入

示例1

输入:

KQ3 3Q9 10QA 6102 5810 7KK 632 74J 10102 K77 JKJ 926 68K 27A

输出:

1 1 -1 -1 1 1 -1

2.代码实现:


public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextLine()) {
String[] str = in.nextLine().split("\\s+");
for (int i = 0; i < str.length; i = i + 2) {
String str1 = str[i];
String str2 = str[i + 1];
int[] num1 = charToInt(str1);
int[] num2 = charToInt(str2);
Arrays.sort(num1);
Arrays.sort(num2);
int grades1 = getGrades(num1);
int grades2 = getGrades(num2);
int res = 0 ;
if (grades1 > grades2) {
res = 1;
} else if (grades1 < grades2) {
res = -1;
} else {
res = 0;
}
System.out.print(res + " ");
}
System.out.println();
}
}

public static int getGrades(int[] arr) {
if (arr[0] == arr[1] && arr[1] == arr[2]) {
return arr[2] * 100000;
} else if (arr[0] + 1 == arr[1] && arr[1] + 1 == arr[2]) {
return arr[2] * 10000;
} else if (arr[0] == arr[1]) {
return arr[0] * 1000 + arr[2];
} else if (arr[1] == arr[2]) {
return arr[1] * 1000 + arr[0];
} else {
return arr[2] * 100 + arr[1] * 10 + arr[0];
}
}

public static int[] charToInt(String str) {
int[] arr = new int[3];
int count = 0;
for (int i = 0; i < str.length(); i++) {
switch (str.charAt(i)) {
case 'J':
arr[count++] = 11;
break;
case 'Q':
arr[count++] = 12;
break;
case 'K':
arr[count++] = 13;
break;
case '1':
arr[count++] = 10;
break;
case '0':
break;
default:
arr[count++] = str.charAt(i) - '0';
break;
}
}
return arr;
}
}
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线