简单的猜拳小游戏
emmmmm
我居然水了这么长时间。。。。
/*
* finger-guessing game
* 作者:@wonder
* 猜拳游戏
* 0-石头
* 1-剪子
* 2-布
* */
package com.company;
import java.util.Scanner;
public class FingerGuessing {
static Scanner in = new Scanner(System.in);
static final String InfoText = "" +
"************************\n" +
"这是一个猜拳游戏\n" +
"请输入您的选择:\n" +
"0:石头\n" +
"1:剪子\n" +
"2:布\n" +
"************************\n";
public static void main(String[] args) throws InterruptedException {
// CheckRandom();
while (true) {
FingerGuessing game = new FingerGuessing();
game.Start();
System.out.println("现在输入1退出,输入其他重新游戏");
if(in.nextLine().equals("1")){
System.exit(0);
}
}
}
public void Start() throws InterruptedException {
PrintInfoText();
int cmdNum = GetCmdNum();
Thread.sleep(1000);
int computerNum = GetRandomNum();
int result = Check(cmdNum, computerNum);
Thread.sleep(2000);
PrintResult(result);
}
private void PrintInfoText() {
System.out.println(InfoText);
}
private int GetCmdNum() {
int cmdNum = -1;
Scanner in = new Scanner(System.in);
while (true) {
String cmdStr = in.nextLine();
try {
cmdNum = Integer.parseInt(cmdStr);
if (cmdNum < 0 || 2 < cmdNum) {
throw new Exception();
}
System.out.printf("你的选择是:%s\n", NumToType(cmdNum));
return cmdNum;
} catch (Exception e) {
System.out.println("请输入对应数字!");
}
}
}
private int GetRandomNum() {
int x = (int) (Math.random() * 3);
System.out.printf("计算机的选择是:%s\n",NumToType(x));
return x;
}
//-1左边胜利,0平局,1右边胜利
//玩家放左边
private int Check(int numA, int numB) {
if (numA == numB) return 0;
if ((numA + 1) % 3 == numB) return -1;
return 1;
}
private void PrintResult(int result) {
String resultStr;
switch (result) {
case -1:
resultStr = "你赢了!!!牛逼!!!";
break;
case 0:
resultStr = "平局!!!";
break;
case 1:
resultStr = "你输了!!!垃圾!!!";
break;
default:
resultStr = "数字转为对应出招类型错误!";
break;
}
System.out.println(resultStr+
"\n************************");
}
private String NumToType(int x) {
switch (x) {
case 0:
return "0:石头";
case 1:
return "1:剪子";
case 2:
return "2:布";
default:
System.out.println("数字转为对应出招类型错误!");
System.exit(0);
return "";
}
}
public static void CheckRandom(String[] args) {
FingerGuessing game = new FingerGuessing();
int[] count = {0, 0, 0};
for (int i = 0; i < 10000; i++) {
int x = game.GetRandomNum();
count[x]++;
}
System.out.printf("0:%d\n1:%d\n2:%d\n", count[0], count[1], count[2]);
}
}