目录
24点游戏
游戏规则
游戏主要分为三部分
电脑出牌
用户输入算式
电脑判断胜负
总结
24点游戏
游戏规则:
- 54张扑克抽出大小王,剩余52张用来用于游戏;
- 每一轮从52张牌中随机抽出4张;
- 玩家运用加,减,乘,除方法对4张牌进行组合运算,得出24点即为胜利;
- 如果无法算出24点,可以弃牌,表示本轮失败。
游戏主要分为三部分:
- 电脑随机出4张牌;
- 玩家输入4张牌对应的算式;
- 电脑检验算式结果,决定游戏胜败情况。
电脑出牌
java知识点:
- 整形数组
- Math中的随机数
代码:
private static int[] dispathCard() {int[] card = new int[13];for(int i = 0; i < card.length; i++) {card[i] = i + 1;}int[] res_card = new int[4];for(int i = 0; i < res_card.length; i++){res_card[i] = card[(int)(Math.random()*card.length)];System.out.println("card " + i + " is " + res_card[i]);}return res_card;}
用户输入算式
java知识点:
- Scanner类的使用;
private static String input() {Scanner inputScanner = new Scanner(System.in);System.out.println("Please input your answer like(4-2*6*2):");return inputScanner.nextLine();}
电脑判断胜负
java知识点:
- 整形,字符型数组的使用;
- switch分支语句的使用。
private static boolean checkAnswer(String answer) {int[] card = new int[4];for(int i = 0; i < card.length; i++) {card[i] = answer.charAt(2*i) - '0';}char[] operator = new char[3];for(int i = 0; i < operator.length; i++) {operator[i] = answer.charAt(2*i + 1);}int result = card[0];for(int i = 0; i < operator.length; i++) {result = caculate(result, operator[i], card[i+1]);}return (24 == result);}private static int caculate(int num1, char op, int num2) {int result = 0;switch (op) {case '+':result = num1 + num2;break;case '-':result = num1 - num2;break; case '*':result = num1 * num2;break;case '/':result = num1 / num2;break;default:break;}return result;}
游戏记录:
总结
1. 没有处理弃牌的逻辑,在游戏过程中,存在电脑出的拍无法拼出24点的情况,这中情况看作平局;
2.玩家也可以输入弃牌指令,电脑直接判负;
3.没有考虑带括号的运算式情况,读者如果有兴趣可以添加计算带有括号的表达式。