NOI的1.7.4石头剪子布

描述
石头剪子布,是一种猜拳游戏。起源于中国,然后传到日本、朝鲜等地,随着亚欧贸易的不断发展它传到了欧洲,到了近现代逐渐风靡世界。简单明了的规则,使得石头剪子布没有任何规则漏洞可钻,单次玩法比拼运气,多回合玩法比拼心理博弈,使得石头剪子布这个古老的游戏同时用于“意外”与“技术”两种特性,深受世界人民喜爱。

游戏规则:石头打剪刀,布包石头,剪刀剪布。

现在,需要你写一个程序来判断石头剪子布游戏的结果。

输入
输入包括N+1行:
第一行是一个整数N,表示一共进行了N次游戏。1 <= N <= 100。
接下来N行的每一行包括两个字符串,表示游戏参与者Player1,Player2的选择(石头、剪子或者是布):
S1 S2
字符串之间以空格隔开S1,S2只可能取值在{“Rock”, “Scissors”, “Paper”}(大小写敏感)中。
输出
输出包括N行,每一行对应一个胜利者(Player1或者Player2),或者游戏出现平局,则输出Tie。
样例输入
3
Rock Scissors
Paper Paper
Rock Paper
样例输出
Player1
Tie
Player2
提示
Rock是石头,Scissors是剪刀,Paper是布。

解法1:(利用字符串的首字符来判断)

import java.util.Scanner;
public class Main {
public static void main(String[] args) {
	Scanner in=new Scanner(System.in);
	int N=in.nextInt();
	String n=in.nextLine();
	for(int i=0;i<N;i++) {	
	String	a=in.next();
	String	b=in.next();
		char e=a.charAt(0);
		char f=b.charAt(0);
		if(e=='R') {
			if(f=='S') {
				System.out.println("Player1");
			}
			else if(f=='P') {
				System.out.println("Player2");
			}
			else {
				System.out.println("Tie");
			}	
		}
		else if(e=='S') {
			if(f=='P') {
				System.out.println("Player1");
			}
			else if(f=='R') {
				System.out.println("Player2");
			}
			else {
				System.out.println("Tie");
			}	
		}
		else if(e=='P') {
			if(f=='R') {
				System.out.println("Player1");
			}
			else if(f=='S') {
				System.out.println("Player2");
			}
			else {
				System.out.println("Tie");
			}	
		}	
			}
		}
	}

解法2:(直接用字符串进行判断)

import java.util.Scanner;
public class Main {
public static void main(String[] args) {
	Scanner in=new Scanner(System.in);
	int N=in.nextInt();
	String a[]=new String[N];
	String b[]=new String[N];
	for(int i=0;i<N;i++) {		
		a[i]=in.next();
		b[i]=in.next();
			}
	for(int i=0;i<N;i++) {
		if(a[i].equals("Rock")) {
			if(b[i].equals("Scissors")){
				System.out.println("Player1");
			}
			else if(b[i].equals("Paper") ){
				System.out.println("Player2");
			}
			else {
				System.out.println("Tie");
			}	
		}
		else if(a[i].equals("Scissors")) {
			if(b[i].equals("Paper")){
				System.out.println("Player1");
			}
			else if(b[i].equals("Rock") ){
				System.out.println("Player2");
			}
			else {
				System.out.println("Tie");
			}	
		}
		else if(a[i].equals("Paper") ){
			if(b[i].equals("Rock") ){
				System.out.println("Player1");
			}
			else if(b[i].equals("Scissors") ){
				System.out.println("Player2");
			}
			else {
				System.out.println("Tie");
			}	
		}	
			}
		}
	}

解法2中需注意的地方:

1.字符串输入时需要使用String a=in.next();而不是String a=in.nextLine();(同样解法1也需要注意)
2.在if语句中,if(a[i]= =“Rock”)该语句中的a[i]= ="Rock"为false,应该改为a[i].equals(“Rock”).
3.对于2中的解释:
一般两个字符串判断是否是相等的(以字符串a与b为例),推荐使用a.equals(b),equals比较的才是真正的内容
解释例子:
(1)String a=“hello”;
String b=“hello”;
则a==b为true
且a.equals(b)也为true

(2)String c=new String(“hello”);
String d=new String(“hello”);
则c=c=d为false
但c.equals(d)为true
(3)String a=in.nextLine;
String b=in.nextLine();
a==b为false
但是a.equals(b)为true

发布了56 篇原创文章 · 获赞 51 · 访问量 1298

猜你喜欢

转载自blog.csdn.net/weixin_45455503/article/details/104359656