写一个Java五子棋游戏
时间: 2024-03-10 17:50:19 浏览: 66
基于java开发的五子棋小游戏
好的,我可以为您提供一个基本的Java五子棋游戏实现。请注意,这只是一个简单的示例,您可以根据自己的需求进行修改和扩展。
首先,我们需要一个棋盘类 `Chessboard`,它会保存棋盘状态并提供相关的方法:
```java
public class Chessboard {
private int[][] board; // 棋盘状态,0表示空,1表示黑子,2表示白子
private int turn; // 当前轮到哪个玩家下棋,1表示黑方,2表示白方
public Chessboard() {
board = new int[15][15];
turn = 1;
}
// 判断某个位置是否可以下棋
public boolean canMove(int x, int y) {
return board[x][y] == 0;
}
// 下棋
public void move(int x, int y) {
board[x][y] = turn;
turn = 3 - turn; // 切换到另一个玩家
}
// 判断游戏是否结束
public boolean isGameOver() {
// TODO: 实现游戏结束的判断逻辑
return false;
}
}
```
接下来,我们需要一个游戏界面类 `GameUI`,它会显示棋盘和处理用户输入:
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GameUI extends JFrame implements ActionListener {
private Chessboard board;
private JButton[][] buttons;
public GameUI() {
board = new Chessboard();
buttons = new JButton[15][15];
// 初始化界面
JPanel panel = new JPanel(new GridLayout(15, 15));
for (int i = 0; i < 15; i++) {
for (int j = 0; j < 15; j++) {
JButton button = new JButton();
button.setPreferredSize(new Dimension(30, 30));
button.addActionListener(this);
panel.add(button);
buttons[i][j] = button;
}
}
add(panel);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setLocationRelativeTo(null);
setVisible(true);
}
// 处理按钮点击事件
public void actionPerformed(ActionEvent e) {
if (board.isGameOver()) {
JOptionPane.showMessageDialog(this, "游戏已结束");
return;
}
JButton button = (JButton) e.getSource();
int x = -1, y = -1;
for (int i = 0; i < 15; i++) {
for (int j = 0; j < 15; j++) {
if (button == buttons[i][j]) {
x = i;
y = j;
break;
}
}
}
if (!board.canMove(x, y)) {
JOptionPane.showMessageDialog(this, "该位置不可用,请重新选择");
return;
}
board.move(x, y);
updateUI();
if (board.isGameOver()) {
JOptionPane.showMessageDialog(this, "游戏结束,胜方是" + (board.getTurn() == 1 ? "黑方" : "白方"));
}
}
// 更新界面
private void updateUI() {
for (int i = 0; i < 15; i++) {
for (int j = 0; j < 15; j++) {
int status = board.getBoard()[i][j];
if (status == 0) {
buttons[i][j].setIcon(null);
} else if (status == 1) {
buttons[i][j].setIcon(new ImageIcon("black.png"));
} else if (status == 2) {
buttons[i][j].setIcon(new ImageIcon("white.png"));
}
}
}
}
}
```
最后,我们需要一个主程序来启动游戏:
```java
public class Main {
public static void main(String[] args) {
new GameUI();
}
}
```
这样,我们就完成了一个基本的Java五子棋游戏实现。需要注意的是,这个实现还有很多不足之处,比如没有实现游戏结束的判断逻辑,没有实现悔棋等功能。您可以根据自己的需求进行修改和扩展。
阅读全文