您当前的位置:首页 > 百宝箱

java编程五子棋游戏

2024-09-30 21:07:35 作者:石家庄人才网

石家庄人才网今天给大家分享《java编程五子棋游戏》,石家庄人才网小编对内容进行了深度展开编辑,希望通过本文能为您带来解惑。

Java编程实现五子棋游戏是一个非常经典的项目,它涉及到Java基础语法、面向对象编程、Swing图形界面设计、算法设计等多个方面的知识,对于初学者来说,是一个非常好的练手项目。本文将详细介绍如何使用Java编程实现一个简单的五子棋游戏。

1. 游戏规则

五子棋游戏的规则非常简单,在一个15x15的棋盘上,黑白双方轮流下棋,首先在棋盘的横、竖、斜线上形成连续的五颗棋子的一方获胜。

2. 代码实现

以下是一个简单的Java五子棋游戏的代码实现:

```javaimport javax.swing.*;import java.awt.*;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;public class Gobang extends JFrame { private static final long serialVersionUID = 1L; private int boardSize = 15; // 棋盘大小 private int cellSize = 30; // 棋格大小 private int[][] board = new int[boardSize][boardSize]; // 棋盘数据,0表示空,1表示黑棋,2表示白棋 private boolean blackTurn = true; // 是否轮到黑棋下 public Gobang() { super("五子棋"); setSize(boardSize * cellSize, boardSize * cellSize); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); JPanel boardPanel = new JPanel() { private static final long serialVersionUID = 1L; @Override protected void paintComponent(Graphics g) { super.paintComponent(g); drawBoard(g); drawChessPieces(g); } }; boardPanel.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { int row = e.getY() / cellSize; int col = e.getX() / cellSize; if (row >= 0 && row < boardSize && col >= 0 && col < boardSize && board[row][col] == 0) { board[row][col] = blackTurn ? 1 : 2; blackTurn = !blackTurn; repaint(); checkWin(row, col); } } }); add(boardPanel); setVisible(true); } private void drawBoard(Graphics g) { for (int i = 0; i < boardSize; i++) { g.drawLine(0, i * cellSize, boardSize * cellSize, i * cellSize); g.drawLine(i * cellSize, 0, i * cellSize, boardSize * cellSize); } } private void drawChessPieces(Graphics g) { for (int i = 0; i < boardSize; i++) { for (int j = 0; j < boardSize; j++) { if (board[i][j] == 1) { g.setColor(Color.BLACK); g.fillOval(j * cellSize - cellSize / 2, i * cellSize - cellSize / 2, cellSize, cellSize); } else if (board[i][j] == 2) { g.setColor(Color.WHITE); g.fillOval(j * cellSize - cellSize / 2, i * cellSize - cellSize / 2, cellSize, cellSize); } } } } private void checkWin(int row, int col) { int chess = board[row][col]; if (checkLine(row, col, 1, 0, chess) || // 横向 checkLine(row, col, 0, 1, chess) || // 纵向

版权声明:《java编程五子棋游戏》来自【石家庄人才网】收集整理于网络,不代表本站立场,所有图片文章版权属于原作者,如有侵略,联系删除。
https://www.ymil.cn/baibaoxiang/4787.html