JAVA猜数字游戏(二分)

来源:互联网 发布:php 解压zip文件 编辑:程序博客网 时间:2024/05/22 05:18
<img src="http://img.blog.csdn.net/20150428213650871?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaG51c3RfdGFvc2hpcWlhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
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());//游戏提示框chatchat = 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(num<result){ chat.append("第"+times+"次猜测答案错误》提示:正确答案比您输入的 "+num+" 更大"+"\n"+"再猜一次看看吧"+"\n"); }else if(num>result){ 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();}}


0 0
原创粉丝点击