石头剪刀布的示例
情景
小明和李华自创了一个双手石头、剪刀、布的游戏。他们背对背分别用左手和右手各出一个石头、剪刀、布的手势(双手出一样的),然后根据规则判断输赢。
基础规则:
-
一方出石头,一方出剪刀,则石头赢
-
如果一方出石头,一方出布。则布赢
-
如果一方出剪刀,一方出布。则剪刀赢
-
如果双方出的一样,则平局
双手规则:
-
如果小明的左手赢了李华的左手
-
如果小明的左手赢了李华的右手或平局,则小明赢
-
如果小明的左手输给了李华的右手
-
如果小明的右手赢了李华的右手,则小明赢
-
如果小明的右手输给了李华的右手或平局,则李华赢
-
-
-
如果小明的左手与李华的左手平局
-
如果小明的右手赢了李华的右手,则小明赢
-
如果小明的右手输给了李华的右手,则李华赢
-
如果小明的右手与李华的右手平局,则平局
-
-
如果小明的左手输给了李华的左手
-
如果小明的右手输给了李华的左手或平局,则李华赢
-
如果小明的右手赢了李华的左手
-
如果小明的右手赢了李华的右手或平局,则小明赢
-
如果小明的右手输给了李华的右手,则李华赢
-
-
输入输出规则:
输入:
-
第一行输入小明左手和右手的手势。
-
第二行输入李华的左手和右手的手势。
输出:
-
输出为一行
-
如果小明赢了,则输出
MINGMING -
如果李华赢了,则输出
LIHUALIHUA -
如果平局则输出
TIETIE
-
实现
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in).useDelimiter(" ");
// 实例化 scanner 并且以空格分割字符串
String [] input = new String[2];
// 声明一个获取输入的数组
String mingL = "";
String mingR = "";
String huaL = "";
String huaR = "";
// 分别声明 小明的左右手 和 李华的左右手
for (int i = 0; i < 2; i++) {
input = scanner.nextLine().split(" ");
// 循环获得输入
if (i == 0){
// 判断是否是第一次循环
mingL = input [0];
mingR = input [1];
// 如果是第一次循环则将值赋给小明
}else {
huaL = input[0];
huaR = input [1];
// 否则将值赋给李华
}
}
if (contrast(mingL,huaL) == 1){
// 如果 小明左手 赢了 李华左手
if (contrast(mingL,huaR) < 3){
// 如果 小明左手 赢了 李华右手
System.out.println("MINGMING");
// 输出小明赢了
}else {
// 否则
if (contrast(mingR,huaR) == 1){
// 如果 小明右手 赢了 李华右手
System.out.println("MINGMING");
// 输出小明赢了
}else {
// 否则
System.out.println("LIHUALIHUA");
// 输出 李华赢了
}
}
}else if (contrast(mingL,huaL) == 2){
// 如果 小明左手 和 李华左手 平局
if (contrast(mingR,huaR) == 1){
// 如果 小明右手 赢了 李华右手
System.out.println("MINGMING");
// 输出 小明赢了
}else if (contrast(mingR,huaR) == 3){
// 如果 小明右手 输给 李华右手
System.out.println("LIHUALIHUA");
// 输出 李华赢了
}else {
// 否则
System.out.println("TIETIE");
// 输出 平局
}
}else {
// 如果 小明左手 输给 李华左手
if (contrast(mingR,huaL) > 1){
// 如果 小明右手 输给 李华右手
System.out.println("LIHUALIHUA");
// 输出 李华赢了
}else {
// 如果 小明右手 赢了 李华左手
if (contrast(mingR,huaR) < 3){
// 如果 小明右手 赢了李华右手
System.out.println("MINGMING");
// 输出 小明赢了
}else {
// 否则
System.out.println("LIHUALIHUA");
// 输出 李华赢了
}
}
}
}
public static int contrast(String ming,String hua){
// 因为需要多次判断,所以直接将判断封装为方法
if (ming.equals("剪刀") && hua.equals("布") ||
ming.equals("石头") && hua.equals("剪刀") ||
ming.equals("布") && hua.equals("石头")
)
// 判断小明是否赢了李华
{
return 1;
// 如果小明赢了李华,则返回 1
}else if (ming.equals(hua)){
//判断小明和李华是否平局
return 2;
// 如果平局则返回 2
}else {
return 3;
// 否则返回 3
}
}
}