📜  Java Tic Tac Toe游戏(1)

📅  最后修改于: 2023-12-03 15:01:32.647000             🧑  作者: Mango

Java Tic Tac Toe游戏介绍

简介

Java Tic Tac Toe游戏是一个经典的井字棋游戏,玩家通过在3x3的方格中填写自己的棋子,在横、竖、斜线上连成一条线即获胜。本游戏为单人游戏,玩家将与计算机对战。

游戏规则
  1. 游戏开始,玩家可以选择自己的棋子,可以是“X”或“O”。
  2. 玩家先手,选择一个空位下棋子。
  3. 计算机作为后手,选择一个空位下棋子。
  4. 玩家和计算机依次下棋子,直到有一方获胜或所有棋位均已占满。
  5. 如果所有的棋位均已占满,且没有人获胜,则宣布平局。
开发环境
  1. 操作系统:Windows 10
  2. 集成开发环境:Eclipse 4.6.3
  3. Java版本:1.8.0_231
  4. 构建工具:Maven
实现思路
  1. 使用Java Swing构建游戏界面。
  2. 使用类似二维数组的数据结构记录棋盘上各个位置的状态。
  3. 在玩家下棋子后,使用随机数生成计算机下棋子的位置。
  4. 判断是否有一方获胜或者平局。
代码片段

以下是游戏界面的构建代码:

JFrame frame = new JFrame("Java Tic Tac Toe");

// 创建面板,并设置布局为3x3的GridLayout
JPanel panel = new JPanel(new GridLayout(3,3));

// 遍历二维数组,创建九个JButton并添加到面板
for(int i=0; i<3; i++){
  for(int j=0; j<3; j++){
    JButton button = new JButton();
    panel.add(button);
  }
}

// 将面板添加到窗口中
frame.getContentPane().add(panel);

frame.pack();
frame.setVisible(true);

在按钮上添加事件监听器,实现玩家下棋子的逻辑:

private void addEvents() {
    for(int i=0; i<3; i++) {
        for(int j=0; j<3; j++) {
            final int row = i;
            final int col = j;
            buttons[i][j].addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    if(state[row][col] == EMPTY) {  // 该位置为空
                        // 玩家下子
                        buttons[row][col].setText(playerMark);
                        state[row][col] = PLAYER;
                        
                        // 判断是否有玩家获胜或平局
                        if(checkGameResult()) {
                            return;
                        }
                        
                        // 计算机下子
                        computerTurn();
                        
                        // 判断是否有计算机获胜或平局
                        checkGameResult();
                    }
                }
            });
        }
    }
}