我有一个随机生成的大小为gameSize
(用户输入)的网格,它包含在向量向量中。用户可以输入两个坐标(x,y),以便将网格中的数字更改为预定义的值,即" 0"。
例如,用户输入X:0 Y:0和:
{9, 7, 9}
{9, 6, 8}
{5, 1, 4}
变为:
{0, 7, 9} <-- Changes position 0,0 to 0 (the predefined value)
{9, 6, 8}
{5, 1, 4}
例如,不允许以下内容,因为有三个0的冲突。
{0, 0, 9}
{0, 6, 8}
{5, 1, 4}
但以下是有效的:
{0, 7, 0}
{9, 0, 8}
{5, 1, 4}
答案 0 :(得分:1)
试试这个:
if (
(row == 0 || myGame[row-1][col] != 0) // element above (if applicable)
&& (row == gameSize-1 || myGame[row+1][col] != 0) // element below
&& (col == 0 || myGame[row][col-1] != 0) // element to the left
&& (col == gameSize-1 || myGame[row][col+1] != 0) // element to the right
)
myGame[row][col] = 0;
else
...
每个条件仅检查相邻元素是否存在(利用短路评估,请参阅逻辑运算符下的here)。换句话说,例如,仅当myGame[row-1][col]
为false时才会检查row == 0
,从而防止因未经授权的内存访问而导致崩溃。