C++ 创建一个扫雷游戏

C++ 创建一个扫雷游戏,c++,arrays,C++,Arrays,我正在使用5x5 2D阵列制作一个简化的扫雷游戏。我的部分指令是创建如下函数: 此函数接受介于1和25之间的值,并将该值转换为行-列位置。您需要使用参考参数来完成此操作 我怎样才能做到这一点 以下是我目前的代码: int main() { int input; char array[5][5]; initBoard(array, 5); populateBombs(array, 5); cout << "Enter a value betwee

我正在使用5x5 2D阵列制作一个简化的扫雷游戏。我的部分指令是创建如下函数:

此函数接受介于1和25之间的值,并将该值转换为行-列位置。您需要使用参考参数来完成此操作

我怎样才能做到这一点

以下是我目前的代码:

int main()
{
    int input;
    char array[5][5];
    initBoard(array, 5);
    populateBombs(array, 5);
    cout << "Enter a value between 1 and 25 to check a space " << endl;
    cin >> input;
    printBoard(array, 5);
    cout << endl;
    return 0;
}

void initBoard(char ar[][5], int size)
{
    for (int row = 0; row < 5; row++)
    {
        for (int col = 0; col < size; col++)
        {
            ar[row][col] = 'O';
        }
    }
}

void printBoard(const char ar[][5], int size)
{
    for (int row = 0; row < size; row++)
    {
        for (int col = 0; col < 5; col++)
        {
            cout << ar[row][col] << "\t";
        }
        cout << endl;
    }
}

问题的第二部分是创建一个populateBomb函数,我需要用一个炸弹随机填充5个空格。我必须使用“*”字符来表示炸弹。我可以使用任何技术来解决这些问题吗?

您可以轻松地使用除法和模将索引转换为列和行

要随机选择列和行,请使用

你说:

此函数接受介于1和25之间的值,并将该值转换为行-列位置。您需要使用参考参数来完成此操作

函数签名应如下所示:

int foo(int in, int& row, int& col);
从描述中不清楚行和列需要介于1到5之间还是介于0到4之间。很明显,实现将根据预期的输出而有所不同

void getRandomPosition(int index, int& column, int& row)
{
    getPosition(std::rand() % 25, column, row);
}
int foo(int in, int& row, int& col);