子棋游戏的Java实现

子棋游戏的Java实现

子棋游戏,也被称为五子棋或连珠棋,是一款非常古老且经典的策略棋类游戏。在这篇文章中,我们将使用Java语言来实现一个简单的子棋游戏。让我们一起来看看如何实现这个游戏吧!

首先,我们需要创建一个棋盘来容纳游戏的进程。我们可以使用一个二维数组来表示棋盘,其中每个元素代表一个棋格的状态。我们将使用数字1表示玩家1的棋子,数字2表示玩家2的棋子,而数字0表示空棋格。

public class SubChessGame {
    private int[][] board;
    private int currentPlayer;

    public SubChessGame() {
        board = new int[15][15];
        currentPlayer = 1;
    }

    public void makeMove(int row, int col) {
        if (board[row][col] == 0) {
            board[row][col] = currentPlayer;
            currentPlayer = (currentPlayer == 1) ? 2 : 1;
        }
    }

    public boolean checkWin(int player) {
        // 检查行
        for (int row = 0; row < 15; row++) {
            for (int col = 0; col < 11; col++) {
                if (board[row][col] == player &&
                    board[row][col + 1] == player &&
                    board[row][col + 2] == player &&
                    board[row][col + 3] == player &&
                    board[row][col + 4] == player) {
                    return true;
                }
            }
        }

        // 检查列
        for (int col = 0; col < 15; col++) {
            for (int row = 0; row < 11; row++) {
                if (board[row][col] == player &&
                    board[row + 1][col] == player &&
                    board[row + 2][col] == player &&
                    board[row + 3][col] == player &&
                    board[row + 4][col] == player) {
                    return true;
                }
            }
        }

        // 检查主对角线
        for (int row = 0; row < 11; row++) {
            for (int col = 0; col < 11; col++) {
                if (board[row][col] == player &&
                    board[row + 1][col + 1] == player &&
                    board[row + 2][col + 2] == player &&
                    board[row + 3][col + 3] == player &&
                    board[row + 4][col + 4] == player) {
                    return true;
                }
            }
        }

        // 检查副对角线
        for (int row = 0; row < 11; row++) {
            for (int col = 4; col < 15; col++) {
                if (board[row][col] == player &&
                    board[row + 1][col - 1] == player &&
                    board[row + 2][col - 2] == player &&
                    board[row + 3][col - 3] == player &&
                    board[row + 4][col - 4] == player) {
                    return true;
                }
            }
        }

        return false;
    }
}

在上面的代码中,我们创建了一个SubChessGame类,其中包含了棋盘的状态和游戏的逻辑。board数组表示棋盘,makeMove方法用于玩家在指定位置落子,checkWin方法用于检查指定玩家是否取得胜利。

接下来,我们可以创建一个简单的控制台应用程序来驱动游戏的进行。

import java.util.Scanner;

public class SubChessGameApp {
    public static void main(String[] args) {
        SubChessGame game = new SubChessGame();
        Scanner scanner = new Scanner(System.in);

        while (true) {
            System.out.println("当前玩家: " + game.getCurrentPlayer());
            System.out.print("请输入行号(0-14): ");
            int row = scanner.nextInt();
            System.out.print("请输入列号(0-14): ");
            int col = scanner.nextInt();

            game.makeMove(row, col);

            if (当前玩家: " + game.getCurrentPlayer());
            if (game.checkWin(game.getCurrentPlayer())) {
                System.out.println("玩家 " + game.getCurrentPlayer() + " 获胜!");
                break;
            }
        }

        scanner.close();
    }
}

在上面的代码中,我们创建了一个SubChessGameApp类,它包含了一个main方法,用于驱动游戏的进行。在每个循环中,我们提示当前玩家是谁,并要求玩家输入要落子的位置。然后,我们调用makeMove方法来更新棋盘,并检查当前玩家是否获胜。如果有玩家获胜,我们输出相应的信息并结束游戏。

现在,我们已经完成了子棋游戏的Java实现。你可以通过运行SubChessGameApp类来开始游戏。希望你能享受这个简单而有趣的游戏!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值