JAVA实现24点游戏输入数字,得出所有表达式

本文介绍了如何使用JAVA实现24点游戏的算法。首先,详细阐述了游戏的题目要求,即根据四个数字通过加减乘除运算得出24。接着,分析了问题的关键在于穷举数字的组合并计算表达式的值。流程设计和算法实现部分虽然未展开,但可以推测作者设计了递归或回溯的方法来生成所有可能的表达式。最后,作者从该编程挑战中学习了ArrayList的操作、随机数生成以及程序模块化的思维方式。
摘要由CSDN通过智能技术生成

一. 题目要求

24点游戏是经典的纸牌益智游戏。
常见游戏规则:
从扑克中每次取出4张牌。使用加减乘除,第一个能得出24者为赢。(其中,J代表11,Q代表12,K代表13,A代表1),按照要求编程解决24点游戏。
基本要求: 随机生成4个代表扑克牌牌面的数字字母,程序自动列出所有可能算出24的表达式,用擅长的语言(C/C++/Java或其他均可)实现程序解决问题。
1.程序风格良好(使用自定义注释模板)
2.列出表达式无重复。

二. 题目分析

穷举4个整数的所有可能表达式,然后对表达式求值。

表达式求值: exp=(exp|num) operator (exp|num)

将四个数字的运算分解为两两运算,选择两个数运算的结果作为一个新数字和另一个数字进行运算,直至四个数都参与运算。

三. 流程设计

在这里插入图片描述

四. 算法实现

import java.util.ArrayList;
import java.util.Random;

public class Main {
   

	public static void main(String[] args) {
   
		
		Random rd =new Random();
		Thinker ti = new Thinker();
		//随机生成10种数据求符合要求的表达式
		for(int j=1;j<11;j++){
   
			ArrayList<Integer> card = new ArrayList<Integer>();
			System.out.println("第"+j+"组数据为:");
			int t;
			for (int i = 0; i < 4; i++) {
   
				t = rd.nextInt(13)+1;
				card.add(t);
				System.out.print(t+" ");
			}
				System.out.println();
			ti.count(card, card.size() - 1, 24);
			System.out.println();
		}
		
	}
}

// 输出表达式类
class Expression {
   
	ArrayList<Integer> num = new ArrayList<Integer>();
	ArrayList<String> sign = new ArrayList<String>();

	// 重载add()方法对集合增加元素
	void add(int n) {
   
		num.add(n);
	}

	void add(String str) {
   
		sign.add(str
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值