一、题目要求
1.从扑克中每次取出4张牌。使用加减乘除,第一个能得出24者为赢。(其 中,J代表11,Q代表12,K代表13,A代表1),按照要求编程解决24点游戏。
基本要求: 随机生成4个代表扑克牌牌面的数字字母,程序自动列出所有可能算出24的表达式。
2.提高要求:用户初始生命值为一给定值(比如3),初始分数为0。随机生成4个代表扑克牌牌面的数字或字母,由用户输入包含这4个数字或字母的运算表达式(可包含括号),如果表达式计算结果为24则代表用户赢了此局。使用计时器要求用户在规定时间内输入表达式,如果规定时间内运算正确则加分,超时或运算错误则进入下一题并减少生命值(不扣分)。
二、问题分析
1.抽牌:将13张牌打乱,从13张随机可重复抽取4张牌,即可模拟从52张牌中不可重复抽4张牌,完成抽牌阶段。
2.计算阶段:对4个数和计算要用的运算符进行排列组合,在适当的位置加上括号进行计算,判断计算结果是否为24,将结果为24的表达式输出即可。
3.提高要求:
(1)抽牌阶段:将13张牌打乱,从13张随机可重复抽取4张牌,即可模拟从52张牌中不可重复抽4张牌,完成抽牌阶段。
(2)输入阶段:在输入提示后开始计时,若计时结束尚未作答则生命值-1,重新进行游戏,在规定时间内输入正确表达式
(3)计算阶段:将输入的表达式进行计算,并进行正确性验证,若等于24,则分数+1,继续进行游戏,若不等于24,则生命值-1,继续游戏
(4)若生命值为0,则游戏结束,将用户命和分数保存至TopList.txt文件中
三、代码部分