输入中文来跟电脑网石头剪刀布游戏

本文介绍如何使用Java实现一个石头剪刀布游戏,通过枚举类型定义游戏元素,利用随机数生成电脑的选择,并与玩家输入进行比较,得出游戏结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先要想然电脑随机产生中文就要定义一个枚举,如下

        /*
	 * 定义一个中文的石头剪刀布枚举
	 */
	private enum Computer{
		SHITOU("石头",0),JIANDAO("剪刀",1),BU("布",2);
		
		//成员变量
		String name;
		int index ;
		
		//构造方法
		private Computer(String name , int index) {
			this.name = name;
			this.index = index;
		}
		
		//普通方法
		private static String getName(int index) {
			for(Computer c : Computer.values() ) {
				if(c.getIndex() == index) {
					return c.name;
				}
			}
			return null;
		}
		
		public String getName() {
			return name;
		}
		public void setName(String name) {
			this.name = name;
		}
		public int getIndex() {
			return index;
		}
		public void setIndex(int index) {
			this.index = index;
		}
		
	}

这样就可以使用computer.getName(Index)这个方法来获取电脑随机产生的中文了,得到之后拿去跟你输入的中文对比就得到游戏结果了

1、都知道其实电脑是不能产生中文的,只是利用它产生的数字作为你自己定义的每个中文的游标,再获取该游标对应的中文。

产生随机数:

//定义一个(0-2)随机数产生函数
Random random = new Random();
int computerInt = random.nextInt(3);

这就产生0、1、2这三个随机数

2、你的输入:

//定义一个输入扫描函数
Scanner scanner = new Scanner(System.in);
String youInput = scanner.next();

然后对比两个值就ok了:

//判断你的输入是否有误
if(youInput.equals("石头")||youInput.equals("剪刀")||youInput.equals("布")) {
	switch (youInput) {
	    case "石头":
	        switch (Computer.getName(random.nextInt(3))) {
		    case "石头":
			System.out.println("电脑出石头,平手");
		    break;
		    case "剪刀":
			System.out.println("电脑出剪刀,你赢了");
		    break;
		    case "布":
			System.out.println("电脑出布,你输了");
		    break;
		    default: System.out.println("出错");
       		    break;
	        }
				
	    break;
	    case "剪刀":
	        switch (Computer.getName(random.nextInt(3))) {
	            case "石头":
			System.out.println("电脑出石头,你输了");
		    break;
		    case "剪刀":
			System.out.println("电脑出剪刀,平手");
		    break;
		    case "布":
			System.out.println("电脑出布,你赢了");
		    break;
		    default: System.out.println("出错");
		    break;
	        }
	    break;
	    case "布":
		switch (Computer.getName(random.nextInt(3))) {
		    case "石头":
			System.out.println("电脑出石头,你赢了");
		    break;
		    case "剪刀":
			System.out.println("电脑出剪刀,你输了");
		    break;
		    case "布":
			System.out.println("电脑出布,平手");
		    break;
		    default: System.out.println("出错");
		    break;
		 }
	    break;
	    default: System.out.println("出错");
	    break;
	}
}else if(youInput.equals("退出")) {
    System.out.println("游戏已经结束");
    System.exit(0);
}
else System.out.println("你的输入有误,请重新输入!");

最后来个整体的代码:

package com.fade.shitoujiandaobu;

import java.util.Random;
import java.util.Scanner;

public class STJDBGame {
	
	public static void main(String [] agrs) {
		
		System.out.println("石头剪刀布游戏");
		
		//定义一个(0-2)随机数产生函数
		Random random = new Random();
		//定义一个输入扫描函数
		Scanner scanner = new Scanner(System.in);
		//开始循环游戏
		do {
			System.out.println("请用中文输入你要出的拳,(石头、剪刀、布),要想退出请输入‘退出’ ");
			String youInput = scanner.next();
			//判断你的输入是否有误
			if(youInput.equals("石头")||youInput.equals("剪刀")||youInput.equals("布")) {
				switch (youInput) {
				case "石头":
					switch (Computer.getName(random.nextInt(3))) {
					case "石头":
						System.out.println("电脑出石头,平手");
						break;
					case "剪刀":
						System.out.println("电脑出剪刀,你赢了");
						break;
					case "布":
						System.out.println("电脑出布,你输了");
						break;
					default:System.out.println("出错");
						break;
					}
					
					break;
				case "剪刀":
					switch (Computer.getName(random.nextInt(3))) {
					case "石头":
						System.out.println("电脑出石头,你输了");
						break;
					case "剪刀":
						System.out.println("电脑出剪刀,平手");
						break;
					case "布":
						System.out.println("电脑出布,你赢了");
						break;
					default:System.out.println("出错");
						break;
					}
					break;
				case "布":
					switch (Computer.getName(random.nextInt(3))) {
					case "石头":
						System.out.println("电脑出石头,你赢了");
						break;
					case "剪刀":
						System.out.println("电脑出剪刀,你输了");
						break;
					case "布":
						System.out.println("电脑出布,平手");
						break;
					default:System.out.println("出错");
						break;
					}
					break;
				default:System.out.println("出错");
					break;
				}
			}else if(youInput.equals("退出")) {
				System.out.println("游戏已经结束");
				System.exit(0);
			}
			else System.out.println("你的输入有误,请重新输入!");
			
		} while (true);
		
	}
	
	/*
	 * 定义一个中文的石头剪刀布枚举
	 */
	private enum Computer{
		SHITOU("石头",0),JIANDAO("剪刀",1),BU("布",2);
		
		//成员变量
		String name;
		int index ;
		
		//构造方法
		private Computer(String name , int index) {
			this.name = name;
			this.index = index;
		}
		
		//普通方法
		private static String getName(int index) {
			for(Computer c : Computer.values() ) {
				if(c.getIndex() == index) {
					return c.name;
				}
			}
			return null;
		}
		
		public String getName() {
			return name;
		}
		public void setName(String name) {
			this.name = name;
		}
		public int getIndex() {
			return index;
		}
		public void setIndex(int index) {
			this.index = index;
		}
		
		
	}

}

游戏结束!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值