Java、游戏之剪刀、石头、布

编写可以玩流行的剪刀-石头-布游戏的程序。(剪刀可以剪布,石头可以砸剪刀,而布可以包石头。)程序提示用户随机产生一个数,这个数为 0、 1 或者 2,分别表示石头、剪刀和布。程序提示用户输入值 0、1 或者 2,然后显示一条消息,表明用户和计算机谁赢了游戏,谁输了游戏,或是打成平手。


package pack2;

import java.security.SecureRandom;
import java.util.Scanner;

public class Game {

	public static void main(String[] args) {
		try(Scanner input = new Scanner(System.in);) {
			char flag;
			do {
				System.out.print("\nscissor (0), rock (1), paper (2): ");
				System.out.println(game(input.nextInt()));
				
				System.out.print("是否继续?(y/n): ");
				flag = input.next().charAt(0);
			}while(flag == 'Y' || flag == 'y');
		}
	}

	//剪刀、石头、布游戏
	public static String game(int guess) {
		String[] g = {"scissor", "rock", "paper"};
		int computer = new SecureRandom().nextInt(3);
		
		if(guess < 0 || guess > 2)
			throw new IllegalArgumentException("Error Guess: "+guess);
		
//		if(guess == computer)	//使用if-else语句处理判断
//			return "The computer is "+g[computer]+". You are "+g[guess]+
//                    " too. It is a draw";
//		else if(guess - computer == 1 || guess - computer == -2)
//			return "The computer is "+g[computer]+". You are "+g[guess]+". You won";
//		else
//			return "The computer is "+g[computer]+". You are "+g[guess]+". You lost";
		
		//创建一个字符串缓冲器并赋值引用
		StringBuffer stringBuffer =
             new StringBuffer("The computer is "+g[computer]+". You are "+g[guess]);
		switch(guess - computer) {	//使用switch语句处理判断
			case 0: return stringBuffer.append(" too. It is a draw").toString();
			case 1:
			case -2:return stringBuffer.append(". You won").toString();
			default:return stringBuffer.append(". You lost").toString();
		}
	}
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值