java 猜数字游戏

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){
			
		}
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值