1. 简介
随机产生的数字1-10之间, J Q K算1 ,出现3张牌,不算11,12,13,只算1电脑随机出4张牌,4张牌经过用户输入和差积商,结果24电脑检验用户输入的算式是否正确
2. 算法流程
下面是实现二十四点游戏算法的流程,可以用表格展示:
步骤 描述
1 电脑随机显示四个数字
2 用户输入算式
3 电脑检查算式结果是否为24
如果是24,则输出结果正确
如果不是24,则输出结果错误,请重新输入
4 返回满足条件的结果
接下来,我们将逐步实现每一个步骤。
import java.util.Random; import java.util.Scanner; public class Puke2 { public static void main(String[] args) { int[] userCards = generateRandomCards(3); int[] computerCards = generateRandomCards(4); System.out.println("电脑的牌:"); printCards(computerCards); System.out.println("请输入你的算式(使用+、-、*、/运算符):"); Scanner scanner = new Scanner(System.in); String input = scanner.nextLine(); if (evaluateExpression(input, userCards) == 24) { System.out.println("你的算式正确!"); } else { System.out.println("你的算式不正确!"); } scanner.close(); } private static int[] generateRandomCards(int count) { int[] cards = new int[count]; Random random = new Random(); for (int i = 0; i < count; i++) { cards[i] = random.nextInt(10) + 1; } return cards; } private static void printCards(int[] cards) { for (int card : cards) { System.out.print(card + " "); } System.out.println(); } private static int evaluateExpression(String expression, int[] cards) { String[] tokens = expression.split(" "); int result = cards[0]; for (int i = 1; i < tokens.length; i += 2) { String operator = tokens[i]; int operand = cards[i / 2 + 1]; switch (operator) { case "+": result += operand; break; case "-": result -= operand; break; case "*": result *= operand; break; case "/": result /= operand; break; } } return result; } }
结果为: