Java五子棋游戏:带你打造炫酷游戏界面
Java五子棋游戏:带你打造炫酷游戏界面
想要用Java写一个界面更吸引人的五子棋游戏?没问题!以下代码示例将带你实现:javaimport javax.swing.;import java.awt.;import java.awt.event.*;
public class Gobang extends JFrame { private final int BOARD_SIZE = 15; private final int PIECE_SIZE = 30; private final int WINDOW_SIZE = BOARD_SIZE * PIECE_SIZE; private boolean isBlackTurn = true; private int[][] board = new int[BOARD_SIZE][BOARD_SIZE];
public Gobang() { setTitle('五子棋'); setSize(WINDOW_SIZE, WINDOW_SIZE); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); setResizable(false);
BoardPanel boardPanel = new BoardPanel(); add(boardPanel);
boardPanel.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { int x = e.getX() / PIECE_SIZE; int y = e.getY() / PIECE_SIZE;
if (x >= 0 && x < BOARD_SIZE && y >= 0 && y < BOARD_SIZE && board[x][y] == 0) { board[x][y] = isBlackTurn ? 1 : 2; isBlackTurn = !isBlackTurn; repaint(); } } }); }
private class BoardPanel extends JPanel { @Override protected void paintComponent(Graphics g) { super.paintComponent(g);
for (int i = 0; i < BOARD_SIZE; i++) { g.drawLine(i * PIECE_SIZE, 0, i * PIECE_SIZE, WINDOW_SIZE); g.drawLine(0, i * PIECE_SIZE, WINDOW_SIZE, i * PIECE_SIZE); }
for (int i = 0; i < BOARD_SIZE; i++) { for (int j = 0; j < BOARD_SIZE; j++) { if (board[i][j] == 1) { g.setColor(Color.BLACK); g.fillOval(i * PIECE_SIZE - PIECE_SIZE / 2, j * PIECE_SIZE - PIECE_SIZE / 2, PIECE_SIZE, PIECE_SIZE); } else if (board[i][j] == 2) { g.setColor(Color.WHITE); g.fillOval(i * PIECE_SIZE - PIECE_SIZE / 2, j * PIECE_SIZE - PIECE_SIZE / 2, PIECE_SIZE, PIECE_SIZE); } } } } }
public static void main(String[] args) { SwingUtilities.invokeLater(() -> { Gobang gobang = new Gobang(); gobang.setVisible(true); }); }}
代码解析:
- 导入必要库: 导入了
javax.swing.*和java.awt.*以及java.awt.event.*用于图形界面和事件处理。2. 创建主窗口:Gobang类继承自JFrame,作为游戏主窗口。3. 定义棋盘: 使用BOARD_SIZE定义棋盘大小,PIECE_SIZE定义棋子大小,board二维数组存储棋盘数据 (0: 空白, 1: 黑子, 2: 白子)。4. 绘制棋盘:BoardPanel类继承自JPanel,负责绘制棋盘和棋子。5. 落子逻辑: 监听鼠标点击事件,根据点击位置和当前玩家落子。6. 游戏循环: 使用SwingUtilities.invokeLater确保界面创建和更新在事件调度线程中进行。
进阶玩法:
- 实现胜负判断: 在每次落子后检查是否形成五子连线。* 添加玩家信息: 显示当前玩家和游戏结果。* 美化界面: 使用更精美的图片作为棋盘和棋子。
通过以上步骤,你就可以用Java创建一个简单的五子棋游戏啦!尽情发挥你的创意,打造更有趣的游戏吧!
原文地址: http://www.cveoy.top/t/topic/fORP 著作权归作者所有。请勿转载和采集!