java 五子棋小游戏
时间: 2023-11-18 14:54:13 浏览: 47
Java五子棋小游戏是一款基于Java语言编写的小游戏,游戏规则简单,玩家通过菜单选择开始游戏后,会创建并初始化一个棋盘为空格,然后玩家以坐标的形式落子,最后判断输赢。具体步骤包括菜单栏、创建棋盘并初始化为空格、打印棋盘、玩家落子和判断输赢。其中,创建棋盘并初始化为空格的步骤包括定义行数、列数为常量和定义棋盘,给棋盘添加坐标并初始化棋盘为空格。这个小游戏可以帮助Java初学者练习Java语言的基本语法和逻辑思维能力。
相关问题
Java五子棋小游戏
以下是一个Java实现的五子棋对战小游戏的简介:
这个五子棋游戏基于Java技术开发,具有操作简单、界面简洁、功能较完整的特点。它适合初学者学习和熟悉软件开发流程。
这个游戏使用了swing技术,是一个单机版的五子棋对战小游戏。它的代码思路清晰,代码完整,非常适合Java初学者进行实战练习。
这个游戏的效果展示可以通过引用中的链接进行查看。
Java五子棋小游戏代码
对于Java五子棋小游戏的代码,以下是一个简单的示例:
```java
import java.util.Scanner;
public class FiveInARowGame {
private static final int BOARD_SIZE = 15;
private static final char EMPTY = '-';
private static final char PLAYER_X = 'X';
private static final char PLAYER_O = 'O';
private char[][] board;
private char currentPlayer;
public FiveInARowGame() {
board = new char[BOARD_SIZE][BOARD_SIZE];
currentPlayer = PLAYER_X;
initializeBoard();
}
private void initializeBoard() {
for (int i = 0; i < BOARD_SIZE; i++) {
for (int j = 0; j < BOARD_SIZE; j++) {
board[i][j] = EMPTY;
}
}
}
private void printBoard() {
for (int i = 0; i < BOARD_SIZE; i++) {
for (int j = 0; j < BOARD_SIZE; j++) {
System.out.print(board[i][j] + " "); }
System.out.println();
}
}
private boolean isMoveValid(int row, int col) {
return row >= 0 && row < BOARD_SIZE && col >= 0 && col < BOARD_SIZE && board[row][col] == EMPTY;
}
private boolean checkWin(int row, int col) {
int count = 0;
// Check horizontally
for (int i = Math.max(0, col - 4); i <= Math.min(BOARD_SIZE - 1, col + 4); i++) {
if (board[row][i] == currentPlayer) {
count++;
if (count == 5) {
return true;
}
} else {
count = 0;
}
}
// Check vertically
count = 0;
for (int i = Math.max(0, row - 4); i <= Math.min(BOARD_SIZE - 1, row + 4); i++) {
if (board[i][col] == currentPlayer) {
count++;
if (count == 5) {
return true;
}
} else {
count = 0;
}
}
// Check diagonally (top-left to bottom-right)
count = 0;
int startRow = Math.max(row - 4, 0);
int startCol = Math.max(col - 4, 0);
int endRow = Math.min(row + 4, BOARD_SIZE - 1);
int endCol = Math.min(col + 4, BOARD_SIZE - 1);
for (int i = startRow, j = startCol; i <= endRow && j <= endCol; i++, j++) {
if (board[i][j] == currentPlayer) {
count++;
if (count == 5) {
return true;
}
} else {
count = 0;
}
}
// Check diagonally (top-right to bottom-left)
count = 0;
startRow = Math.min(row + 4, BOARD_SIZE - 1);
startCol = Math.max(col - 4, 0);
endRow = Math.max(row - 4, 0);
endCol = Math.min(col + 4, BOARD_SIZE - 1);
for (int i = startRow, j = startCol; i >= endRow && j <= endCol; i--, j++) {
if (board[i][j] == currentPlayer) {
count++;
if (count == 5) {
return true;
}
} else {
count = 0;
}
}
return false;
}
public void playGame() {
Scanner scanner = new Scanner(System.in);
boolean isGameOver = false;
while (!isGameOver) {
System.out.println("Current Player: " + currentPlayer);
System.out.print("Enter row (0-" + (BOARD_SIZE - 1) + "): ");
int row = scanner.nextInt();
System.out.print("Enter column (0-" + (BOARD_SIZE - 1) + "): ");
int col = scanner.nextInt();
if (isMoveValid(row, col)) {
board[row][col] = currentPlayer;
printBoard();
if (checkWin(row, col)) {
System.out.println("Player " + currentPlayer + " wins!");
isGameOver = true;
} else {
currentPlayer = currentPlayer == PLAYER_X ? PLAYER_O : PLAYER_X;
}
} else {
System.out.println("Invalid move! Please try again.");
}
}
scanner.close();
}
public static void main(String[] args) {
FiveInARowGame game = new FiveInARowGame();
game.playGame();
}
}
```
这段代码实现了一个简单的五子棋游戏,玩家可以交替落子,当有玩家连成五子时游戏结束。运行主函数 `main` 即可开始游戏。注意代码中使用了命令行输入来获取玩家的落子位置,输入的行和列需要在指定范围内(0-14)。
希望对你有帮助!如果有任何问题,请随时提问。