作为基于文本的Battle Ship游戏的一部分,我试图在控制台中显示一个简单的网格/电路板。不幸的是,我在制作电网时遇到了错误。网格由2D数组表示,-I' m使用for循环初始设置网格的每个元素为" EMPTY"。 然而,当我试图让代码运行时,我收到错误说"预期声明"和"语法错误:')' &#34 ;.我做错了什么?以下是有问题的代码部分:
enum GridContent {SHIP, HIT, MISS, EMPTY};
const int GRID_SIZE = 10;
GridContent board[GRID_SIZE][GRID_SIZE];
// Intellisense error on "for": "Expected a declaration."
for (int y = 0; y < GRID_SIZE; y++)
/* Errors for above line: "Missing ';' before '++', '<', '{', and ')'",
"Syntax error: ')'", "Syntax error: 'for'", "'int y' : redefinition"" */
{ // "Missing ';' before '{'"
for (int x = 0; x < GRID_SIZE; x++)
board[y][x] = EMPTY;
}
答案 0 :(得分:2)
我认为你的意思是
for (int x = 0; x < GRID_SIZE; x++)
board[y][x] = EMPTY;
而不是
for (int x = 0; x < GRID_SIZE; x++)
grid[GRID_SIZE][GRID_SIZE] = EMPTY;
在您的代码段中,grid
是未声明的标识符,并且使用值GRID_SIZE
作为索引是错误的,因为相应的元素将超出数组。
同样从你的代码片段中不清楚是否必须像
那样定义数组Grid board[GRID_SIZE][GRID_SIZE];
或喜欢
GridContent board[GRID_SIZE][GRID_SIZE];
答案 1 :(得分:2)
你必须用GridContent替换Grid 网格板[GRID_SIZE] [GRID_SIZE];
答案 2 :(得分:0)
数组名称是board,Grid是某种类型。 所以我站在循环中你应该用板而不是网格。 2.您的数组是GRID_SIZE,当您访问时,您使用了该变量,这意味着arrayIndexOutOfBound