话不多说直接给大家上代码
package com.company;
import java.util.*;
/**
* 24点小游戏
* 游戏规则:系统自动生成4个1-10的随机整数,玩家通过加减乘除操作,得到结果为24,每个数字只能使用一次
*/
public class Game24Player {
final String[] patterns = {"nnonnoo", "nnonono", "nnnoono", "nnnonoo",
"nnnnooo"};
final String ops = "+-*/^";//存储运算符
String solution;//解题答案
List digits;
public static void main(String[] args) {
new Game24Player().play();
}
void play() {
digits = getSolvableDigits();
Scanner in = new Scanner(System.in);
while (true) {
System.out.println("24点小游戏:");
System.out.print("使用以下数字得出24点: ");
System.out.println(digits);
System.out.println("tips:输入q退出游戏,输入s打印解法以及出下一道题");
System.out.print("> ");
String line = in.nextLine();//获取控制台下一行输入的内容
if (line.equalsIgnoreCase("q")) {
System.out.println("\nThanks for playing");
return;
}
if (line.equalsIgnoreCase("s")) {
System.out.println(solution);
digits = getSolvableDigits();
continue;
}
char[] entry = line.replaceAll("[^*+-/)(\\d]", "").toCharArray();
try {
validate(entry);
if (evaluate(infixToPostfix(entry))) {
System.out.println("\n恭喜你,回答正确,请继续下一轮 ");
digits = getSolvableDigits();
} else {
System.out.println("\n答题错误,请重新答题");