一.题目分析
实现24点经典游戏
题目要求:
1:随机生成4个代表扑克牌面的数字,程序能够列出构成24点的表达式
2.用户拥有起始生命值和起始分数,通过给出的4个数,输入能够构成24点的表达式
3.通过程序能够判断多项式的值是否等于24
4.通过计时方法计算出用户计算过程中的使用的时间,只有在答对且未超时的时候,才会加分
5.将所有成绩均可记录在TopList.txt文件中
二.算法设计思路
1.由于只有4个数,三个表达式,所以可以通过穷举法来判断这四个数字的计算方法的每一种情况的值是否等于24,然后通过多重循环将从1到13所以的每一种4个数的排列组合都进行验证,如果能构成24点存入一个二维数组中
2.设计一个Game的类,来执行这个游戏。设置成员变量生命值以及分数。并由用户输入玩家游戏名字
3.先将用户输入的字符串中的数据和运算符提取成中缀表达式,然后将中缀表达式转换成后缀表达式来计算多项式的值,转化步骤如下
(1).初始化俩个栈:运算符栈S1和存储中序结果的栈S2;
(2).从左至右扫描中缀表达式
(3).遇到操作数时,将其压至s2
(4).遇到运算符时,比较其与s1栈顶运算符的优先级
(5).重复3,4的步骤,直到表达式的最右边
(6).将s1中剩余的运算符依次弹入并压入s2;
(7).依次弹出s2中的元素并输出
4.用时间方法计算出用户的时间
三.调试、测试、及运行结果
测试计算多项式
调试随机生成任意四个能构成24点的数
测试时间方法:
运行结果:
将计算结果存入文件中
四.总结:
1.在写程序的时候,将实现不同功能的代码分到不同的方法或类中,便于他人观看理解和自己的调试
2.写完程序以后,可以在网上看看其他人所写的程序。对比一下自己与别人的区别,总结一下各自代码的优缺点。
3.写完程序以后,及时的对一些代码进行注释,方便自己和别人理解。
程序源代码:
package play24CountGame;
import java.io.FileWriter;
import java.io.IOException;
import java.util.*;
//进行运算的类
class Operation{
private static int ADDITION=1;//设置私有成员变量:+
pr