APCSA · CONNECT FOUR
本地查看
必做0/23
B00
1 / 27

声明 Board 类与全部属性

文件Board.java
类结构Board · public 普通类
C

这个类

类名Board
可见性public
类种类普通类

Board 负责什么

一个 Board 对象表示一局四子棋当前的 6×7 棋盘。它只负责保存和处理棋盘状态,不读取键盘,也不直接打印游戏提示。

对象与状态

每次执行 new Board() 都创建一个新的 Board 对象;每个对象拥有自己独立的 cells 二维数组。

属性

属性名类型修饰要求初值 / 赋值时机含义
ROWSint
public(公开)static(属于类)final(不可重新赋值)
6类常量;棋盘固定行数,所有 Board 对象共享。
COLUMNSint
public(公开)static(属于类)final(不可重新赋值)
7类常量;棋盘固定列数,所有 Board 对象共享。
CONNECT_LENGTHint
public(公开)static(属于类)final(不可重新赋值)
4类常量;获胜所需连续棋子数量。
EMPTYint
public(公开)static(属于类)final(不可重新赋值)
0类常量;空格子的编码,也是 Java int 数组元素的默认值。
PLAYER_ONEint
public(公开)static(属于类)final(不可重新赋值)
1类常量;玩家 1 的棋子编码,显示为 X。
PLAYER_TWOint
public(公开)static(属于类)final(不可重新赋值)
2类常量;玩家 2 的棋子编码,显示为 O。
cellsint[][]
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 对象属性。
B01Board() / getRows() / getColumns() / getCell(int row, int column)创建空棋盘,并提供行数、列数和格子值三个基础访问接口。
B05public boolean isColumnAvailable(int column)判断一列能否继续落子。
B06public int dropPiece(int column, int player)按重力放置一个棋子。
B07public boolean isFull()判断棋盘是否占满。
B08public int getWinner()寻找横、竖或斜向四连。
B09public Board copy()创建棋盘的独立深拷贝。
B10public 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-CLASSassemble Board.java, compile, and inspect its top-level typeone public class named Board
B00-02-FIELDSinspect all fields declared directly by Board7 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