ZVVQ代理分享网

用Java语言编写的五子棋代码,你知道吗?

作者:zvvq博客网
导读Java五子棋代码 五子棋是一种古老而受欢迎的棋类游戏,它的规则简单而富有挑战性。在这篇文章中,我将为大家介绍一份用Java语言编写的五子棋代码。 首先,让我们来了解一下五子棋

Java五子棋代码

五子棋是一种古老而受欢迎的棋类游戏,它的规则简单而富有挑战性。在这篇文章中,我将为大家介绍一份用Java语言编写的五子棋代码。

首先,让我们来了解一下五子棋的规则。五子棋是在一个×的棋盘上进行的,两名玩家轮流在棋盘上落子,目标是先在横、竖、斜线上连成五个自己的棋子。如果棋盘上所有位置都被填满,且没有任何一方连成五个棋子,那么游戏宣布为平局。

接下来,我将为大家展示一份用Java编写的五子棋代码。首先,我们需要创建一个名为Gobang的类,用于表示五子棋游戏。

```java

import java.util.Scanner;

public class Gobang {

private char[][] board;

private char currentPlayer;

public Gobang() {

board = new char[][];

currentPlayer = &;X&;;

initializeBoard();

}

private void initializeBoard() {

for (int i = 0; i < ; i++) {

for (int j = 0; j < ; j++) {

board[i][j] = &;-&;;

}

}

}

public void playGame() {

boolean gameOver = false;

Scanner scanner = new Scanner(System.in);

while (!gameOver) {

System.out.println("当前玩家:" + currentPlayer);

System.out.print("请输入落子位置(格式:行 列):");

int row = scanner.nextInt();

int col = scanner.nextInt();

if (isValidMove(row, col)) {

board[row][col] = currentPlayer;

printBoard();

if (isWinningMove(row, col)) {

System.out.println("玩家 " + currentPlayer + " 获胜!");

gameOver = true;

} else if (isBoardFull()) {

System.out.println("平局!");

gameOver = true;

} else {

currentPlayer = (currentPlayer == &;X&;) ? &;O&; : &;X&;;

}

} else {

System.out.println("无效的落子位置,请重新输入!");

}

}

scanner.close();

}

private boolean isValidMove(int row, int col) {

return row >= 0 && row < && col >= 0 && col < && board[row][col] == &;-&;;

}

private boolean isWinningMove(int row, int col) {

// 检查横向是否连成五个

int count = 0;

for (int i = Math.max(0, col - ); i <= Math.min(, col + ); i++) {

if (board[row][i] == currentPlayer) {

count++;

if (count == ) return true;

} else {

count = 0;

}

}

// 检查纵向是否连成五个

count = 0;

for (int i = Math.max(0, row - ); i <= Math.min(, row + ); i++) {

if (board[i][col] == currentPlayer) {

count++;

if (count == ) return true;

} else {

count = 0;

}

}

// 检查右上斜线是否连成五个

count = 0;

for (int i = -; i <= ; i++) {

int r = row + i;

int c = col - i;

if (r >= 0 && r < && c >= 0 && c < ) {

if (board[r][c] == currentPlayer) {

count++;

if (count == ) return true;

} else {

count = 0;

}

}

}

// 检查右下斜线是否连成五个

count = 0;

for (int i = -; i <= ; i++) {

int r = row - i;

int c = col - i;

if (r >= 0 && r < && c >= 0 && c < ) {

if (board[r][c] == currentPlayer) {

count++;

if (count == ) return true;

} else {

count = 0;

}

}

}

return false;

}

private boolean isBoardFull() {

for (int i = 0; i < ; i++) {

for (int j = 0; j < ; j++) {

if (board[i][j] == &;-&;) return false;

}

}

return true;

}

private void printBoard() {

for (int i = 0; i < ; i++) {

for (int j = 0; j < ; j++) {

System.out.print(board[i][j] + " ");

}

System.out.println();

}

}

public static void main(String[] args) {

Gobang game = new Gobang();

game.playGame();

}

}

```

以上就是用Java语言编写的五子棋代码。通过这份代码,我们可以实现一个简单而又有趣的五子棋游戏。玩家可以轮流输入落子位置,程序会自动判断是否获胜或者平局,并在控制台上打印出当前棋盘状态。

希望这份代码能够帮助到对Java编程和五子棋游戏感兴趣的读者。如果你有任何问题或建议,请随时留言。祝你玩得愉快!