人机猜数Java_Java猜数游戏

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

/**

*This program is a geme for guessing a number which is between 1 and 1000.

*2008-10-29

*@author XYX

*/

public class GuessNumTest

{

public static void main(String[] args)

{

EventQueue.invokeLater(new Runnable()

{

public void run()

{

GuessFrame frame =new GuessFrame();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setVisible(true);

frame.setResizable(false);

}

});

}

}

class GuessFrame extends JFrame

{

public GuessFrame()

{

setTitle("猜数游戏");

setSize(300,200);

//计数板

count=0;

countPanel=new JPanel();

label1=new JLabel("你已经猜了0次");

countPanel.add(label1);

add(countPanel, BorderLayout.NORTH);

//输入板

num=(int)(Math.random()*1000+1);

inputPanel=new JPanel();

label2=new JLabel("输入猜测的数");

label3=new JLabel("");

input=new JTextField(4);

inputPanel.add(label2);

inputPanel.add(input);

inputPanel.add(label3);

add(inputPanel, BorderLayout.CENTER);

//按钮板

buttonPanel = new JPanel();

//确认按钮

JButton yesButton=new JButton("确认");

buttonPanel.add(yesButton);

yesButton.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent event)

{

count++;//已猜次数加1

label1.setText("你已经猜了"+count+"次");

int inNum=Integer.parseInt(input.getText());//将用户输入变为整数

if(inNum>num)//猜得太大

{

countPanel.setBackground(Color.RED);//背景变为红色

inputPanel.setBackground(Color.RED);

buttonPanel.setBackground(Color.RED);

label3.setText("太大");//显示"太大"

}

else if(inNum{

countPanel.setBackground(Color.BLUE);//背景变为蓝色

inputPanel.setBackground(Color.BLUE);

buttonPanel.setBackground(Color.BLUE);

label3.setText("太小");//显示"太小"

}

else//猜对了

{

input.setEditable(false);//文本框变为不可编辑

countPanel.setBackground(Color.WHITE);//背景变为白色

inputPanel.setBackground(Color.WHITE);

buttonPanel.setBackground(Color.WHITE);

label3.setText("猜对了");//显示"猜对了"

}

}

});

//重新开始按钮

JButton resButton=new JButton("重新开始");

buttonPanel.add(resButton);

resButton.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent event)

{

count=0;//已猜次数置0

label1.setText("你已经猜了0次");

input.setText("");

label3.setText("");

countPanel.setBackground(Color.WHITE);//背景变为白色

inputPanel.setBackground(Color.WHITE);

buttonPanel.setBackground(Color.WHITE);

num=(int)(Math.random()*1000+1);//重新生成随机数

input.setEditable(true);//文本框变为可编辑

}

});

//退出按钮

JButton exitButton=new JButton("退出");

buttonPanel.add(exitButton);

exitButton.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent event)

{

System.exit(0);//退出

}

});

add(buttonPanel, BorderLayout.SOUTH);

}

private JLabel label1;//显示标签,用于显示已猜次数

private JLabel label2;//显示标签,显示"输入猜测的数"

private JLabel label3;//显示标签,用于显示对输入的处理结果

private JTextField input;//输入框,用于接收用户的输入

private JPanel countPanel;//计数板

private JPanel inputPanel;//输入板

private JPanel buttonPanel;//按钮板

private int count;//已猜次数

private int num;//要猜的数

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值