我正在生成迷宫,我只能选择第一列或最后一列。而且我只能选择偶数行(如果您从 1 开始行索引)。我有正确的逻辑,除了迷宫起始位置不是随机的。如果我生成 50 个迷宫,它们都是 20x20,那么所有起始位置都是相同的。任何帮助将不胜感激。谢谢。
void Maze::generatePath()
{
int startingColumn = -1;
int startingRow = -1;
srand (time(NULL));
int side = rand() % 2;
startingColumn = (width - 1) * side; // will get first or last column
int row = rand() % height; // 0 -> height - 1
if(row % 2 == 0) // even, add one, or subtract if last row
{
if(row + 1 >= width)
startingRow = row - 1;
else
startingRow = row + 1;
}
else
{
startingRow = row; // odd, keep it
}
grid[startingRow][startingColumn] = ' '; // starting character is blank
}
每次生成新迷宫时,我都会调用此方法。此代码用于获取起始位置。剩下的我还没写。