import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class TestGuessNumber extends JFrame {
private static final long serialVersionUID = -4922390040187620343L;
private JLabel label;
private JTextField[] text = new JTextField[3];
private JButton button;
private String[] nums = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" };
private String[] number;
private int times;
public static void main(String[] args) {
new TestGuessNumber();
}
public TestGuessNumber() {
JOptionPane.showMessageDialog(null, "。。。", "游戏规则",
JOptionPane.INFORMATION_MESSAGE); // 。。。处填写规则,换行用“n”
init();
}
private void init() {
number = getNumber();
this.setTitle("猜数字");
this.setBounds(500, 400, 200, 160);
this.setResizable(false);
this.getContentPane().setLayout(new GridLayout(3, 1));
label = new JLabel("请输入你猜的数字", JLabel.CENTER);
this.getContentPane().add(label);
JPanel panel = new JPanel(new FlowLayout());
for (int i = 0; i < text.length; i++) {
text[i] = new JTextField(3);
panel.add(text[i]);
}
this.getContentPane().add(panel);
button = new JButton("确定");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
for (JTextField tmp : text) {
if (! tmp.getText().matches("^[0-9]{1}$")) {
JOptionPane.showMessageDialog(null, "每个输入框请输入一位数字!");
return;
}
}
if (times++ >= 8) {
if (JOptionPane.YES_OPTION == JOptionPane.showConfirmDialog(null,
"对不起,请再接再厉!n是否继续?", "失败", JOptionPane.YES_NO_OPTION)) {
dispose();
new TestGuessNumber();
return;
} else {
dispose();
System.exit(0);
}
}
if (showResult()) {
if (JOptionPane.YES_OPTION == JOptionPane.showConfirmDialog(null,
"你用了" + times + "次,猜对了数字!n是否继续?",
"成功", JOptionPane.YES_NO_OPTION)) {
dispose();
new TestGuessNumber();
} else {
dispose();
System.exit(0);
}
}
}
});
this.getContentPane().add(button);
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose();
System.exit(0);
}
});
this.setVisible(true);
// System.out.println(number[0] + number[1] + number[2]);
}
private String[] getNumber() {
String[] num = new String[3];
num[0] = nums[(int) (Math.random() * 10)];
do {
num[1] = nums[(int) (Math.random() * 10)];
} while (num[1] == num[0]);
do {
num[2] = nums[(int) (Math.random() * 10)];
} while (num[2] == num[0] || num[2] == num[1]);
return num;
}
private boolean showResult() {
int A = 0, B = 0;
String num1 = text[0].getText().trim();
String num2 = text[1].getText().trim();
String num3 = text[2].getText().trim();
if (num1.equals(number[0])) {
A++;
} else if (num1.equals(number[1]) || num1.equals(number[2])) {
B++;
}
if (num2.equals(number[1])) {
A++;
} else if (num2.equals(number[0]) || num2.equals(number[2])) {
B++;
}
if (num3.equals(number[2])) {
A++;
} else if (num3.equals(number[0]) || num3.equals(number[1])) {
B++;
}
label.setText("第" + times + "次:" + A + "A" + B + "B");
return A == 3 ? true : false;
}
}