用java,编写五子棋的下棋界面(只有界面)

本文详细介绍了使用JavaSwing和AWT库开发的五子棋游戏,包括GoBangGame类的构造、按钮处理和棋盘状态管理。通过鼠标事件实现落子和切换玩家功能。
摘要由CSDN通过智能技术生成
package jiemian; // 定义当前代码所在的包名为jiemian

import javax.swing.*; // 导入Swing组件,用于创建图形用户界面
import java.awt.*; // 导入AWT组件,用于处理图形界面
import java.awt.event.MouseAdapter; // 导入用于处理鼠标事件的适配器
import java.awt.event.MouseEvent; // 导入鼠标事件类

// 定义GoBangGame类,继承自JFrame,用于创建五子棋游戏界面
public class GoBangGame extends JFrame {
    // 定义棋盘的大小常量
    private static final int BOARD_SIZE = 15;
    // 存放按钮的二维数组,每个按钮代表棋盘上的一个格子
    private JButton[][] buttons;
    // 存放棋盘状态的二维数组,0表示空,1表示玩家1,2表示玩家2
    private int[][] board;
    // 当前玩家,1表示玩家1,2表示玩家2
    private int currentPlayer = 1;

    // 构造函数,用于初始化游戏界面
    public GoBangGame() {
        setTitle("五子棋"); // 设置窗口标题
        setSize(400, 400); // 设置窗口大小
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置窗口关闭操作
        setLayout(new GridLayout(BOARD_SIZE, BOARD_SIZE)); // 使用网格布局填充窗口

        // 初始化按钮数组和棋盘状态数组
        buttons = new JButton[BOARD_SIZE][BOARD_SIZE];
        board = new int[BOARD_SIZE][BOARD_SIZE];

        // 循环创建棋盘上的按钮
        for (int i = 0; i < BOARD_SIZE; i++) {
            for (int j = 0; j < BOARD_SIZE; j++) {
                // 创建一个新的按钮并设置背景色
                JButton button = new JButton();
                button.setBackground(Color.LIGHT_GRAY);
                // 为按钮添加鼠标点击事件监听
                button.addMouseListener(new MouseAdapter() {
                    @Override
                    public void mouseClicked(MouseEvent e) {
                        // 检查点击的格子是否为空(值为0)
                        if (board[e.getY()][e.getX()] == 0) {
                            // 在该位置落子,并设置当前玩家
                            board[e.getY()][e.getX()] = currentPlayer;
                            // 根据当前玩家设置按钮背景色
                            int player = currentPlayer;
                            buttons[e.getY()][e.getX()].setBackground(player == 1 ? Color.BLACK : Color.RED);
                            // 切换到下一个玩家
                            currentPlayer = (currentPlayer % 2) + 1;
                        }
                    }
                });
                // 将创建的按钮添加到按钮数组中
                buttons[i][j] = button;
                // 将按钮添加到窗口中
                add(button);
            }
        }
    }

    // 主函数,程序的入口点
    public static void main(String[] args) {
        // 使用SwingUtilities.invokeLater确保线程安全
        SwingUtilities.invokeLater(() -> {
            // 创建游戏窗口实例
            GoBangGame game = new GoBangGame();
            // 设置窗口可见
            game.setVisible(true);
        });
    }
}
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值