资源简介
一副牌中抽去大小王剩下52张(如果初练也可只用1~10这40张牌),任意抽取4张牌(称牌组),用加、减、乘、除(可加括号)把牌面上的数算成24。每张牌必须用一次且只能用一次,如抽出的牌是3、8、8、9,那么算式为(9-8)×8×3或3×8+(9-8)或(9- 8÷8)×3等。

代码片段和文件信息
package pokerGame;
import java.util.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class PokerGame_1 extends Japplet {
public static void main(String[] args) {
PokerGame_1 applet = new PokerGame_1();
Jframe frame = new Jframe();
frame.setDefaultCloseOperation(3);
frame.settitle(“24点游戏“);
frame.add(applet BorderLayout.CENTER);
applet.init();
applet.start();
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
private JLabel jlblCard1 = new JLabel();
private JLabel jlblCard2 = new JLabel();
private JLabel jlblCard3 = new JLabel();
private JLabel jlblCard4 = new JLabel();
private JTextField jtfexpression = new JTextField(8);
private JButton jbtVerify = new JButton(“Verify“);
private JButton jbtRefresh = new JButton(“Refresh“);
private ImageIcon[] cardIcons = new ImageIcon[52];
private JPanel panel1 = new JPanel();
private ArrayList list = new ArrayList();
public PokerGame_1() {
for (int i = 0; i < 52; i++) {
list.add(i);
cardIcons[i] = new ImageIcon(“image/card/“ + (i + 1) + “.png“);
}
panel1.add(jlblCard1);
panel1.add(jlblCard2);
panel1.add(jlblCard3);
panel1.add(jlblCard4);
JPanel panel2 = new JPanel(new BorderLayout());
panel2.add(new JLabel(“Enter an expression: “) BorderLayout.WEST);
panel2.add(jtfexpression BorderLayout.CENTER);
panel2.add(jbtVerify BorderLayout.EAST);
JPanel panel3 = new JPanel(new FlowLayout(FlowLayout.RIGHT));
panel3.add(jbtRefresh);
add(panel1 BorderLayout.CENTER);
add(panel2 BorderLayout.SOUTH);
add(panel3 BorderLayout.NORTH);
refresh();
jbtRefresh.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
refresh();
}
});
jbtVerify.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (!correctNumbers()) {
JOptionPane.showMessageDialog(null “表达式输入错了! “);
} else {
if (evaluate()) {
JOptionPane.showMessageDialog(null “恭喜你!完美的24“);
} else {
JOptionPane.showMessageDialog(null “这不等于24“);
}
}
}
});
}
private boolean correctNumbers() {
String[] values = (“(“ + jtfexpression.getText() + “)“).trim().split(
“[()+-/* ]+“);
ArrayList valueList = new ArrayList();
for (int i = 1; i < values.length; i++) {
try {
valueList.add(Integer.parseInt(values[i]));
} catch (NumberFormatException e) {
return false;
}
}
Collections.sort(valueList);
System.out.println(valueList);
Collections.sort(currentCardValues);
System.out.println(currentCardValues);
if (valueList.equals(currentCardValues))
return true;
else
return false;
}
private boolean evaluate() {
return Evaluateexpression.evaluateexpression(jtfexpression.getText()
.trim()) == 24;
}
ArrayList curren
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5755 2016-01-07 19:39 pokerGame\PokerGame_1.java
文件 4873 2016-01-07 19:39 pokerGame\PokerGame_2.java
文件 9277 2016-01-08 16:54 pokerGame\SearchAnswer.java
文件 2452 2016-01-08 16:55 pokerGame\Test2_3.java
文件 3423 2016-01-07 19:39 pokerGame\Test3.java
目录 0 2016-01-27 10:05 pokerGame
----------- --------- ---------- ----- ----
25780 6
- 上一篇:软件体系结构张友生版期末复习题
- 下一篇:发明工坊1官方补丁
评论
共有 条评论