子棋游戏的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
类来开始游戏。希望你能享受这个简单而有趣的游戏!