import javax.swing.*;
import java.awt.event.*;
import java.io.*;
public class MyGuessGame extends JFrame implements ActionListener {
JTextField tf;
JButton b1;
JLabel l1;
int m; //存放随机数变量
int count;//存放猜数次数变量
int oldNumber;//存放原有记录次数变量
boolean isEnd;//标志是否破记录变量
public MyGuessGame(){
tf = new JTextField("--点按钮后再回车开始游戏--");
b1 = new JButton("开局");
l1 = new JLabel("猜数字游戏");
b1.setActionCommand("start");
JPanel p =new JPanel();
p.add(b1);
b1.addActionListener(this);
tf.addActionListener(this);
tf.setEnabled(false);
this.getContentPane().add(tf,"North");
this.getContentPane().add(l1);
this.getContentPane().add(b1,"South");
this.setTitle("猜数游戏");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(400, 300);
this.setLocation(300, 300);
this.setVisible(true);
}
public static void main(String[] args) {
new MyGuessGame();
}
public int getNumber(){
int m =(int)(Math.random()*100)+1;//返回100以内的数作为被猜的数
return m;
}
public int readRecord(){
int count = 100;
File f1 = new File("record.txt");
try{
FileReader fin = new FileReader(f1);
BufferedReader br = new BufferedReader(fin);
String s = br.readLine();
count = Integer.parseInt(s);
br.close();
fin.close();
}catch(java.io.FileNotFoundException e){
}catch(IOException e){
}
return count;
}
public void actionPerformed(ActionEvent e){
String s = e.getActionCommand();
int n = 0;
if(s.equals("start")){
isEnd = false;
count = 0;
m= this.getNumber();
System.out.println(m);
b1.setEnabled(false);
tf.setText("");
tf.setEnabled(true);
l1.setText("请输入1-100之间你所猜的数");
tf.requestFocus();
oldNumber = readRecord();
}
else{
if(!isEnd){
count++;
String sn =tf.getText();
try{
n=Integer.parseInt(sn);
}catch(NumberFormatException el){
l1.setText("请输入数字");
return;
}
if(n < m){
l1.setText("你猜的数字偏小");
return;
}
else if(n > m){
l1.setText("你猜的数字偏大");
return;
}else{
l1.setText("恭喜你猜对了,所花次数为"+count);
tf.setText("");
b1.setEnabled(true);
if(oldNumber > count){
l1.setText("恭喜你破纪录了,请在文本框输入您的大名");
isEnd =true;
}
}
}
else{
String name = tf.getText();
this.saveRecord(name,count);
l1.setText("您的记录已经记录在册,继续努力!");
tf.setText("");
b1.setEnabled(true);
}
}
}
public void saveRecord(String name,int count){
File f1 = new File("record.txt");
try{
FileWriter fout = new FileWriter(f1);
PrintWriter bw = new PrintWriter(fout);
bw.println(count);
bw.println(name);
bw.close();
fout.close();
}catch(java.io.FileNotFoundException e){
}catch(IOException e){
}
}
}
java 猜数字游戏
最新推荐文章于 2024-01-12 19:36:31 发布