井字棋java

晨曦

首先,我们需要创建一个表示网格的二维数组,以及两个变量来存储当前玩家的符号和游戏的状态。我们还需要一个常量来表示空格,以便我们知道哪些位置是可以落子的。

// 创建一个 3x3 的二维数组
char[][] grid = new char[3][3];

// 定义一个常量表示空格
final char EMPTY = ' ';

// 初始化网格为全空
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
grid[i][j] = EMPTY;
}
}

// 定义一个变量表示当前玩家的符号,初始为 X
char player = 'X';

// 定义一个变量表示游戏的状态,初始为进行中
boolean playing = true;

接下来,我们需要定义一个方法来打印网格,以便我们可以看到游戏的进展。我们可以使用 System.out.println() 方法来输出每一行,用竖线分隔每个格子,用横线分隔每一行。

// 定义一个方法打印网格
void printGrid() {
// 遍历每一行
for (int i = 0; i < 3; i++) {
// 输出第一个格子
System.out.print(grid[i][0]);
// 输出竖线和第二个格子
System.out.print("|" + grid[i][1]);
// 输出竖线和第三个格子
System.out.print("|" + grid[i][2]);
// 输出换行符
System.out.println();
// 如果不是最后一行,输出横线
if (i < 2) {
System.out.println("-----");
}
}
}

然后,我们需要定义一个方法来获取用户的输入,即他们想要落子的位置。我们可以使用 Scanner 类来读取用户在控制台输入的数字,并检查它们是否有效。有效的输入应该是一个介于 1 到 9 的整数,对应于网格的九个位置,从左上角开始按行编号。如果输入无效,我们应该提示用户重新输入。

// 导入 Scanner 类
import java.util.Scanner;

// 创建一个 Scanner 对象
Scanner scanner = new Scanner(System.in);

// 定义一个方法获取用户输入
int getInput() {
// 定义一个变量存储用户输入的数字
int input = -1;
// 定义一个布尔变量表示输入是否有效
boolean valid = false;
// 循环直到输入有效为止
while (!valid) {
// 提示用户输入数字
System.out.println("请输入一个数字(1-9):");
// 尝试读取用户输入的数字
try {
input = scanner.nextInt();
// 检查数字是否在范围内
if (input >= 1 && input <= 9) {
// 检查对应的位置是否为空
int row = (input - 1) / 3;
int col = (input - 1) % 3;
if (grid[row][col] == EMPTY) {
// 输入有效,退出循环
valid = true;
} else {
// 输入无效,提示位置已被占
  • 标题: 井字棋java
  • 作者: 晨曦
  • 创建于 : 2023-04-03 09:59:53
  • 更新于 : 2024-06-23 05:21:11
  • 链接: https://blog.xuchengxi.tk/2023/04/03/井字棋/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论
此页目录
井字棋java