“数字炸弹”简易游戏的开发

package game;
//调用基本逻辑
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
//创建初始值
public class game implements ActionListener{
    JTextField jft2;
    int num=0;
    int count=0;
    Random a=new Random();
    int min=0;
    int max=100;
//count用来计数,count初始值为0,当count为0时生成炸弹
//对按钮进行监听。如果被点击就执行逻辑代码
 public void actionPerformed(ActionEvent e){
        if (count==0){
            System.out.println("炸弹已经生成!");
            count+=1;
            num=a.nextInt(99)+1;}
    String sn= jft2.getText();
   //对猜测值进行逻辑判断,并输出提示语句 
    int n=Integer.parseInt(sn);
        if(n<=min||n>=max){msgUI("输入的数字不在范围内!请输入范围在"+min+"~"+max+"之间的数字");return;}
        if (n==num){msgUI("恭喜你,猜对了!");
                    msgUI("你猜的次数为:"+(count+1));
                    count=0;
                    msgUI("炸弹已被重置");}
        else if (n>num){msgUI("猜大了");
                        count+=1;
                        max=n;}
        else {msgUI("猜小了");
              count+=1;
              min=n;}}
//创建提示语句窗口
        public void msgUI(String msg){
//获取提示语句长度,使窗口自适应大小
            int length = msg.length ();
            JFrame jf = new JFrame ();
            jf.setTitle ("提示");
            jf.setSize (length*30, 150);
            jf.setDefaultCloseOperation (JFrame.DISPOSE_ON_CLOSE);
            jf.setLocationRelativeTo (null);
            FlowLayout fl = new FlowLayout ();
            jf.setLayout (fl);
            JLabel msgJla = new JLabel (msg);
            Font font = new Font ("微软雅黑", Font.BOLD, 30);
            msgJla.setFont (font);
            jf.add (msgJla);
            jf.setVisible (true);
}}
//游戏窗口设计
        import  java.awt.*;
        import  javax.swing.*;
        public class show {
        public void showUI(){JFrame jf = new JFrame ();
        jf.setTitle ("数字炸弹");
        jf.setSize (400, 400);
        jf.setLocationRelativeTo (null);// 居中显示
        jf.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);// 关闭
        FlowLayout fl =new FlowLayout ();
        jf.setLayout (fl);
        JLabel jla= new JLabel ("请输入你要猜的数:");
        JTextField jtf = new JTextField (10);
        JButton jbu = new JButton ("猜");
        jf.add (jla);
        jf.add (jtf);
        jf.add (jbu);
        jf.setVisible (true);
        game gl = new game();
        jbu.addActionListener(gl);
        gl.jft2 = jtf;
    }
    public static void main(String[] args){
        show ui = new show();
        ui.showUI();
    }
}

需优化内容:目前提示窗口只能显示一种提示语句,需把提示语句放入一个窗口内

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值