首先要想然电脑随机产生中文就要定义一个枚举,如下
/*
* 定义一个中文的石头剪刀布枚举
*/
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;
}
}
}
游戏结束!