这里写自定义目录标题
- 算法分析
题目: 24点游戏是经典的纸牌益智游戏。
24点游戏是经典的纸牌益智游戏。
常见游戏规则:
从扑克中每次取出4张牌。使用加减乘除,第一个能得出24者为赢。(其中,J代表11,Q代表12,K代表13,A代表1),按照要求编程解决24点游戏。
基本要求: 随机生成4个代表扑克牌牌面的数字字母,程序自动列出所有可能算出24的表达式,用擅长的语言(C/C++/Java或其他均可)实现程序解决问题。
提高要求:用户初始生命值为一给定值(比如3),初始分数为0。随机生成4个代表扑克牌牌面的数字或字母,由用户输入包含这4个数字或字母的运算表达式(可包含括号),如果表达式计算结果为24则代表用户赢了此局。
算法思路:
(1)利用Random()函数随机生成4个数,随机数范围与扑克牌相同(1~13)。
(2)生成一个change函数,将得到的随机数一一对应扑克牌的点数,即:A1,J11,Q12,K13。
(3)创建一个未知数用来表示最终点数count。创建三个变量m1,m2,m3,用来存放加减乘除四个符号输出式子。
(4)使用穷举法。使用多层for循环找出所有四个随机数生成的式子并计算结果,如果结果等于24点,输出式子与结果。
(5)设置一个int型变量a,在循环中每当点数到达24点时a+1,如果a为0,则无解。
- 概要设计(算法绘制流程图)

- 测试(设计测试用例或测试代码的设计与实现,测试结果截屏)
(1)当测试结果有解时:

(2)当测试结果无解时:

4.代码
import java.util.Random;
public class test {
public static void main(String[] args) {
Random r = new Random();
int r1 = r.nextInt(13) + 1;
int r2 = r.nextInt(13) + 1;
int r3 = r.nextInt(13) + 1;
int r4 = r.nextInt(13) + 1;
int[] num = new int[]{
r1, r2, r3, r4};
System.out.println("本次随机到的四张牌点数分别为:");
System.out.println(change(r1) + " " + change(r2) +
" " + change(r3