目录
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.没有考虑带括号的运算式情况,读者如果有兴趣可以添加计算带有括号的表达式。