JAVA猜数字游戏(二分)



import java.awt.*;  
import java.awt.event.*;  
import java.io.*;  
import java.util.Random;

import javax.swing.*;
public class Main extends JFrame{
	JButton sendBt;
	JTextField inputField;
	JTextArea chat;
	JScrollPane scollPanel;
	JScrollBar jsb;
	int times=0;
	
	//随机数生成
	Random r = new Random();
	final int result = r.nextInt(98)+1;
	
	public Main(){
		this.setLayout(new BorderLayout());
		
		//游戏提示框chat
		chat = new JTextArea(12,34);
		scollPanel = new JScrollPane(chat);  
		scollPanel.setVerticalScrollBarPolicy(ScrollPaneConstants. VERTICAL_SCROLLBAR_ALWAYS);//只可以纵向拉动
		scollPanel.setHorizontalScrollBarPolicy(ScrollPaneConstants. HORIZONTAL_SCROLLBAR_NEVER);//不可以横向拉动
		
		JScrollBar sb = scollPanel.getVerticalScrollBar();
		sb.setValue(sb.getMaximum());
		
        this.add(scollPanel, BorderLayout.CENTER);
        chat.setEditable(false);//不可编辑
        chat.append("游戏开始!"+"\n");
        chat.append("游戏规则:有一个数字x范围在1-99"+"\n"+"你需要猜这个数字x是多少"+"\n"+
        "以提高游戏的娱乐性,每猜错一次,系统会提示你的数字比x大了还是小了"+"\n"+
        "ps:按下按钮猜一次,为方便,也可以使用热键Enter猜一次"+"\n"+"看看你最少多少次能猜中"+"\n\n");
        
        //输入框与按钮
        JPanel inputPanel = new JPanel();
        inputField= new JTextField(20);
        sendBt = new JButton("猜一下");
        sendBt.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				cai();
			}
		});
        //键盘上面的回车就可以发送
        inputField.addKeyListener(new KeyAdapter() {
        	public void keyPressed(KeyEvent e){
        		int keyCode = e.getKeyCode();
        		if(keyCode==10){
        			cai();
        		}
        	}
		});
        
        
        Label label = new Label("您猜的数字是:");
        inputPanel.add(label);
        inputPanel.add(inputField);
        inputPanel.add(sendBt);
        
        
        this.add(scollPanel,BorderLayout.CENTER);
        this.add(inputPanel,BorderLayout.SOUTH);
        this.setTitle("游戏(猜数字)");
        Toolkit tk = Toolkit.getDefaultToolkit();
        Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
        int width = 500, height = 500;
        this.setBounds((d.width - width) / 2, (d.height - height) / 2, width, height);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);
	}
	
	public void cai()
	{
		times++;
		String content = inputField.getText();
		int num = Integer.valueOf(content).intValue();
		if(numresult){
			 chat.append("第"+times+"次猜测答案错误》提示:正确答案比您输入的 "+num+" 更小"+"\n"+"再猜一次看看吧"+"\n");
		 }else{
			 chat.append("恭喜你!!!答案正确!!!!!!"+"\n");
			 chat.append("正确的数字就是"+result+",您使用了"+times+"次猜数字机会"+"\n");
			 chat.append("为了让次数更少,其中有一个典型的算法就是二分法"+"\n"
			 +"每次截取可能数字的中间值,一直二分下去。"+"\n"+"想要具体探索二分的威力吗?多试几次游戏看看吧");
		 }
		 inputField.setText("");
		 chat.append("\n");
		 jsb=scollPanel.getVerticalScrollBar();//
		 jsb.setValue(jsb.getMaximum());//
		 chat.selectAll();//显示在最后一行
	}
	
	public static void main(String[] args) {
		new Main();
	}
}




你可能感兴趣的:(Java)