满意答案
yizhe9898
2014.01.17
采纳率:45% 等级:12
已帮助:6920人
//java版
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener;
public class Guess extends JFrame{
private int count;
private String rs="";
private JTextField trs;
private JTextField tinput;
private JTextArea ta;
private int a;
private int b;
private JLabel msg;
public static void main(String[] args) {
new Guess();
}
public Guess(){
initMenu();
JLabel l1=new JLabel(" 最终结果 ");
trs=new JTextField(5);
trs.setEditable(false);
trs.setEnabled(false);
JLabel l2=new JLabel("请输入数字");
tinput=new JTextField(5);
tinput.setEditable(false);
ta=new JTextArea(12,30);
ta.setEditable(false);
final JButton ok=new JButton("OK");
ok.setEnabled(false);
JPanel pa=new JPanel();
add(pa,"Center");
pa.add(l1);
pa.add(trs);
pa.add(l2);
pa.add(tinput);
tinput.addCaretListener(new CaretListener(){
public void caretUpdate(CaretEvent e) {
if(validate_input())
ok.setEnabled(true);
else
ok.setEnabled(false);
}
});
tinput.addKeyListener(new KeyListener(){
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_ENTER)
ok.doClick();
}
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub
}
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub
}
});
pa.add(ok);
pa.add(ta);
msg=new JLabel("请点击菜单开始游戏");
pa.add(msg);
ok.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
setAB();
count++;
ta.setText(ta.getText()+"第"+count+"次尝试:"+tinput.getText()+" >>>>>>>>> "+a+"A"+b+"B\n");
tinput.setText("");
if(count==10){
JOptionPane.showMessageDialog(null, "GAME OVER");
tinput.setEditable(false);
msg.setText("请点击菜单开始游戏");
trs.setText(rs);
rs="";
}
if(a==4){
JOptionPane.showMessageDialog(null, "YOU WIN");
tinput.setEditable(false);
msg.setText("请点击菜单开始游戏");
trs.setText(rs);
rs="";
}
a=0;b=0;
}
});
setSize(350,400);
setLocation(500,300);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public void initMenu(){
JMenuBar mb=new JMenuBar();
JMenu m=new JMenu("功能");
mb.add(m);
JMenuItem mi1=new JMenuItem("开始游戏");
JMenuItem mi2=new JMenuItem("退出");
m.add(mi1);
m.add(mi2);
mi1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
begin();
}
});
mi2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
dispose();
}
});
mb.setVisible(true);
add(mb,"North");
}
public void begin(){
for(int i=0;rs.length()<4;i++){
int ran=(int)(Math.random()*10);
if(!rs.contains(String.valueOf(ran)))
rs+=String.valueOf(ran);
}
trs.setText("****");
tinput.setEditable(true);
count=0;
ta.setText(null);
msg.setText(null);
}
public boolean validate_input(){
String input=tinput.getText();
return input.matches("\\d{4}");
}
public void setAB(){
String input=tinput.getText();
for(int i=0;i<4;i++){
if(rs.charAt(i)==input.charAt(i))
a++;
}
String flag="";
for(int i=0;i<4;i++){
for(int j=0;j<4;j++)
if(rs.charAt(i)==input.charAt(j) &&!flag.contains(input.substring(j,j+1))){
b++;
flag+=input.substring(j,j+1);
}
}
b-=a;
}
}
01分享举报