c++ - 使用 C++ rand() 获取随机方向(上/下/左/右)——总是起床

标签 c++ random console srand

我正在制作一款基于 C++ 文本的 Battleship 游戏。我使用 rand() 函数随机放置计算机的飞船。我在 main() 的开头为数字生成器一次播种,代码如下:

srand(static_cast<unsigned>(time(0)));

我稍后使用 rand() 函数来选择每艘船将要去的空间。 (船一端开始的坐标)。然后我在下面的函数中使用 rand(),它决定了它们延伸的方向(取决于船的长度):

char randDirection()
{
    int randNumber = rand();
    int x = (randNumber % 4) + 1;

    if (x = 1)
        return 'u';
    else if (x = 2)
        return 'd';
    else if (x = 3)
        return 'l';
    else
        return 'r';
}

它随机获取一个介于 1 和 4 之间的数字,并根据该数字返回一个方向(用 char 表示)。虽然我成功地随机选择了棋子的位置,此功能总是将棋子垂直设置。他们总是往上走。谁能告诉我为什么?

最佳答案

你的问题似乎在声明x = 1,你应该更改为x == 1,因为赋值总是为真。

希望对您有所帮助!

关于c++ - 使用 C++ rand() 获取随机方向(上/下/左/右)——总是起床,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30540078/

相关文章:

javascript - 数组显示为空,但它包含值

python - 从 C++ 停止嵌入式 Python 提示

c++ - 如何对包含通过索引相互关联的数据的多个数组进行排序

c++ - 远程进程的 WM_PAINT

PHP:从数组中进行非重复选择

C++在控制台上更改输出

c++ - 在计算 constexpr 时抛出异常会发生什么?

python - 如何在 turtle 图形中显示两条重叠的线

javascript - 随机数组不会更新

c - Windows 控制台 API