【发布时间】:2015-04-23 21:44:10
【问题描述】:
我正在尝试为我的战舰程序创建一个函数,以创建一个概率网格,其中包含任何剩余部分可能位于的所有位置。我希望网格循环遍历整个数组,然后检查是否在那个位置点对象有空间放置(水平或垂直),并在它将覆盖的每个点上添加一个,向我显示哪些坐标最有可能在其上放置一艘船。 BS_GRID_ROWS 和 BS_GRID_COLS 都是保存战舰板大小的值,矩阵是我想显示我的概率值的数组,而 hits 是一个数组,如果一艘船被击中,数字(对应于每艘船)大于零,- 1 如果我投篮但未命中,如果在该坐标处没有投篮,则为 0。这是我到目前为止的代码。它正在工作,但不正确,它在最后完全错过了几个方块,我知道当我在放置任何船只之前运行它时这是不可能的。任何帮助,将不胜感激。谢谢
void
probabilityGrid(int matrix[BS_GRID_ROWS][BS_GRID_COLS], int hits[BS_GRID_ROWS][BS_GRID_COLS], int shipSize)
{
bool isValid=true;
for (int row = 0; row< BS_GRID_ROWS; row++)
{
for (int col = 0; (col+shipSize) <BS_GRID_COLS; col++)
{
for (int hold = col; hold < shipSize; hold++)
{
if (hits[row][hold]!=0)
isValid=false;
}
if (isValid)
{
for (int hold = col; hold < shipSize; hold++)
{
matrix[row][hold]++;
}
}
isValid=true;
}
}
//For now I'm just working on the horizontal part of the algorithm.
}
【问题讨论】:
-
如果您提供更多关于您遇到的问题的详细信息,并尽可能提供示例,您更有可能获得帮助。
-
现在我只是想用 X 为一个不为零的点计算一张网格的图片,用 0 表示一个为零的点,只是为了调试,它没有命中几个数组底部的正方形。它在右上角少了一堆,我知道如果还没有任何船,它应该至少击中每个方格一次。我的循环一定有问题。我无法在此处发布数组示例,但右下角缺少大约六个。
标签: c++ arrays nested-loops