java代码实现24点小游戏

24点游戏是经典的纸牌益智游戏。

常见游戏规则:

   从扑克中每次取出4张牌。使用加减乘除,第一个能得出24者为赢。(其中,J代表11,Q代表12,K代表13,A代表1),按照要求编程解决24点游戏。

基本要求: 随机生成4个代表扑克牌牌面的数字字母,程序自动列出所有可能算出24的表达式,用擅长的语言(C/C++/Java或其他均可)实现程序解决问题。

          1.程序风格良好(使用自定义注释模板)

          2.列出表达式无重复。

源代码包含三个包:

第一个包:com.xust.edu.listener:

Action类:用来给界面的组件写事件

 

第二个包:com.xust.edu.operation:

CalculateExpression类:计算用户输入的表达式

FindExpression类:给出四张扑克能组成24点的所有计算表达式

 

第三个包:com.xust.edu.view

MainFrame类:24点游戏的主界面

24点游戏思路:

  1. 随机发四张扑克牌,由于花色不同.该程序只选择了黑桃的A到K 一共13张扑克牌.用Math类的random方法产生4个1-13的随机数对应发出A-K中随机的4张扑克牌可以重复.4张扑克牌用Swing中的JLabel存放,点击开始发牌的JButton组件发牌

java代码实现24点小游戏java代码实现24点小游戏

 

  1. 显示所有结果,刚刚发牌产生的4个随机数存放到一个int类型的数组中,就可以对这四个数字进行穷举法.进行所有表达式的计算判断是否等于24,并记录到一个String类型的数组中,输出在JTextArea组件上

java代码实现24点小游戏

如果无解的话在JTextArea组件上显示的就是无解

java代码实现24点小游戏

 

  1. 用户可以输入一个计算表达式用JTextField组件去接收输入的表达式,进行格式判断,以及是否与扑克牌牌面符合进行对话框提示计算对错与否以及格式错误,计算过程是先去括号,再算乘除,再算加减

计算表达式的牌面与给出的扑克牌不符合:

java代码实现24点小游戏

计算结果不等于24:

java代码实现24点小游戏

 

计算结果等于24:

java代码实现24点小游戏

表达式格式错误:

java代码实现24点小游戏

4.点击结束按钮退出游戏