数字炸弹小游戏

该文章介绍了一个简单的JavaSwing游戏应用开发,游戏规则是系统随机选择1到99之间的数字让用户猜测。文章详细讲述了如何进行界面设计,包括按钮和文本框的创建,以及实现按钮的ActionListener来处理用户输入。当用户点击“开始游戏”按钮时,程序会进行数字判断并给出提示,直到用户猜中为止。文章还涵盖了逻辑处理,如生成随机数、用户输入检查以及弹窗提示信息的显示。
摘要由CSDN通过智能技术生成

游戏规则:

1.系统从1--99随机选出一个数

2.第一个人猜一个数,系统判断 猜大了,猜中了,猜小了

3.若猜中,开始新一轮游戏,反之,再由下一个人猜,直至猜中

游戏开发:

1.界面开发(主要包含按钮与文本框)

文本框:输入数字

按钮:点击后进行猜数

package com.ldy0725;

import javax.swing.*;
import java.awt.*;

public class GameUI {
    GameListener gamel=new GameListener();
    public void initUI(){
        JFrame jf=new JFrame();
        jf.setTitle("数字炸弹");
        jf.setSize(400,400);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jf.setVisible(true);
        FlowLayout fl=new FlowLayout();
        jf.setLayout(fl);
        JButton jbu=new JButton("开始游戏");
        JTextField jtf=new JTextField(20);
        JLabel jla=new JLabel("请输入你要猜的数字:");
        jf.add(jla);
        jf.add(jtf);
        jf.add(jbu);
        jf.setVisible(true);
        jbu.addActionListener(gamel);
    }
    public static void main(String[] args) {
        GameUI gu=new GameUI();
        gu.initUI();

    }
}

 注:若需要居中显示   jf.setLocationRelativeTo (null); 可由此行代码设置

2.实现按钮监听

动作监听器: ActionListener

1: 创建一个新的类 GameListener

2: 实现 implements  ActionListener

3: 将ActionListener 中的方法复制我们自己的类中

public void actionPerformed(ActionEvent e) { }

4:在 GameUI 创建一个对象 GameListener 添加给按钮对象

GameListener gl = new GameListener();

button.addActionListener(gl);

package com.ldy0725;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class GameListener implements ActionListener {
    public void actionPerformed(ActionEvent e) {
        System.out.println("点击了开始游戏");
    }
}package com.ldy0725;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class GameListener implements ActionListener {
    public void actionPerformed(ActionEvent e) {
        System.out.println("点击了开始游戏");
    }
}

3.逻辑与弹窗

输入数字  点击按钮 : 进行判断 ,判断完成弹出一个窗体,显示提示信息

a.在GameListener类中创建 JTextField jtf2; 用于接收用户输入的文本框的地址

   在GameUI中gamel.jtf2=jtf;  实现将文本框的地址传递给监听器

b.输入炸弹数字,计数标识,布尔标识

int num = 0;// 炸弹数字
int count = 0;// 计数标识
boolean flag = false;// 标识炸弹是否生成    true 生成了    false 没有生成

c.创建随机数对象

Random ran = new Random ();

d. 按钮点击 条件判断:

    第一次点击,生成一个随机数炸弹

    获取文本框中用户输入的数字,进行比较

String sn = jtf2.getText();
        System.out.println("用户输入的数字:" + sn);
        int n = Integer.parseInt(sn);
        if(n<=min|| n>=max){
            System.out.println ("输入的数字不在范围内");
            msgUI("输入的数字不在范围内,请输入("+min+"-"+max+")之间的数字");
            return;// 结束当前方法
        }
        if(n=num){
            System.out.println("猜对了");
            msgUI("恭喜你,猜对了 炸弹是"+num+"炸弹已重置,新的游戏开始了");
            flag = false;// 结束当前游戏
            jtf2.setText ("");// 清空输入框的内容
            min = 0;// 重置最小值
            max = 100;// 重置最大值
        }else if(n<num){
        // 猜小了
            System.out.println ("猜小了");
            msgUI("猜小了");
            min=n;// 将当前数字赋值给最小值
        }else {
        // 猜大了
            System.out.println ("猜大了");
            msgUI("猜大了");
            max=n;// 将当前数字赋值给最大值
        }

e.弹窗设置

public void msgUI(String msg) {
    // 获取内容
        int length = msg.length();
        JFrame jf = new JFrame();
        jf.setTitle("提示");
        jf.setSize(35 * length, 150);
        jf.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    // DISPOSE 销毁窗体(不占用内存)    EXIT_ON_CLOSE 退出程序
    // HIDE 隐藏窗体(占用内存)          DO_NOTHING_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);
    }
}

注:双等号的使用

结果展示:

 

 

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值