B00
1 / 27声明 Board 类与全部属性
C
这个类
Board 负责什么
一个 Board 对象表示一局四子棋当前的 6×7 棋盘。它只负责保存和处理棋盘状态,不读取键盘,也不直接打印游戏提示。
对象与状态
每次执行 new Board() 都创建一个新的 Board 对象;每个对象拥有自己独立的 cells 二维数组。
属性
| 属性名 | 类型 | 修饰要求 | 初值 / 赋值时机 | 含义 |
|---|---|---|---|---|
ROWS | int | public(公开)static(属于类)final(不可重新赋值) | 6 | 类常量;棋盘固定行数,所有 Board 对象共享。 |
COLUMNS | int | public(公开)static(属于类)final(不可重新赋值) | 7 | 类常量;棋盘固定列数,所有 Board 对象共享。 |
CONNECT_LENGTH | int | public(公开)static(属于类)final(不可重新赋值) | 4 | 类常量;获胜所需连续棋子数量。 |
EMPTY | int | public(公开)static(属于类)final(不可重新赋值) | 0 | 类常量;空格子的编码,也是 Java int 数组元素的默认值。 |
PLAYER_ONE | int | public(公开)static(属于类)final(不可重新赋值) | 1 | 类常量;玩家 1 的棋子编码,显示为 X。 |
PLAYER_TWO | int | public(公开)static(属于类)final(不可重新赋值) | 2 | 类常量;玩家 2 的棋子编码,显示为 O。 |
cells | int[][] | private(仅本类)final(不可重新赋值) | 字段声明处不赋初值;由 Board() 赋值 | 非 static 对象字段;每个 Board 独立保存 42 个格子的二维数组。final 限制数组引用,数组元素仍可修改。 |
必须保持的状态
- cells[row][column]:row 0 在最上方,row 5 在最下方;column 0 在最左方,column 6 在最右方。
- 每个格子的值只能表示 EMPTY(0)、PLAYER_ONE(1)或 PLAYER_TWO(2)。
- Board 内部列号是 0–6;界面显示的 1–7 由 ConnectFourGame 转换。
- 正常落子后,同一列中的棋子从底部向上连续堆叠。
类结构与方法
| 任务 | 声明 / 方法签名 | 职责 |
|---|---|---|
| B00 | 类声明与属性 | 声明 Board 类、六个类常量和 cells 对象属性。 |
| B01 | Board() / getRows() / getColumns() / getCell(int row, int column) | 创建空棋盘,并提供行数、列数和格子值三个基础访问接口。 |
| B05 | public boolean isColumnAvailable(int column) | 判断一列能否继续落子。 |
| B06 | public int dropPiece(int column, int player) | 按重力放置一个棋子。 |
| B07 | public boolean isFull() | 判断棋盘是否占满。 |
| B08 | public int getWinner() | 寻找横、竖或斜向四连。 |
| B09 | public Board copy() | 创建棋盘的独立深拷贝。 |
| B10 | public String toString() | 生成固定格式的棋盘文字。 |
M
当前类结构
定义 Board 的类结构:它是保存 6×7 棋盘状态的普通 public class,包含六个共享常量和一个对象字段。
类名Board
提交范围类外壳与全部属性
系统给出
当前任务不提交 import、构造器或方法;它们分别在后续任务中处理。
你提交
提交 Board 的类结构片段,包含普通 public class 外壳和规定的 7 个字段;不包含 import、构造器或方法。
O
验收要求
类名为 Board,种类为普通 public class。它直接声明 7 个字段:ROWS、COLUMNS、CONNECT_LENGTH、EMPTY、PLAYER_ONE、PLAYER_TWO 都是 public、static、final 的 int,初值依次为 6、7、4、0、1、2;cells 是 private、final、非 static 的 int[][],由构造器赋值。不得增加其他字段;本任务不包含 import、构造器或方法。
T
测试
| Test ID | 输入 | 预期 |
|---|---|---|
| B00-01-CLASS | assemble Board.java, compile, and inspect its top-level type | one public class named Board |
| B00-02-FIELDS | inspect all fields declared directly by Board | 7 fields total; six named int constants use public/static/final with values 6,7,4,0,1,2; cells uses int[][] with private/final/non-static; no extra fields |