用Java写一个五子棋游戏代码要有界面
时间: 2024-12-14 10:24:57 浏览: 9
在Java中编写一个五子棋游戏的代码,并包含用户界面,通常需要结合Swing或JavaFX库来创建图形用户界面(GUI)。下面是一个简化的例子,使用了Swing库:
```java
import javax.swing.*;
import java.awt.*;
public class GoGame extends JFrame {
private Board board = new Board();
private JButton[][] buttons;
public GoGame() {
setTitle("五子棋");
setSize(600, 600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建棋盘
int cellSize = 100;
JPanel panel = new JPanel(new GridLayout(8, 8, 5, 5));
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
JButton button = new JButton("");
button.addActionListener(e -> handleButtonPress(i, j));
button.setSize(cellSize, cellSize);
buttons[i][j] = button;
panel.add(button);
}
}
add(panel);
setVisible(true);
}
private void handleButtonPress(int row, int col) {
if (board.isValidMove(row, col)) {
board.makeMove(row, col);
drawBoard();
} else {
JOptionPane.showMessageDialog(null, "此位置不可行");
}
}
private void drawBoard() {
String[][] grid = board.getGrid();
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
buttons[i][j].setText(grid[i][j]);
}
}
}
public static void main(String[] args) {
EventQueue.invokeLater(() -> {
new GoGame();
});
}
}
class Board {
// ... 实现五子棋核心逻辑,如判断是否获胜、空位等
// getters and setters for the grid...
}
```
这个示例中,`GoGame` 类负责UI部分,包括创建棋盘按钮和处理点击事件。`Board` 类负责游戏的核心逻辑,如棋局状态管理。注意这只是一个基本框架,实际游戏中还需要更复杂的逻辑,比如AI对手、胜负检测等功能。
阅读全文