我正在制作一款基于 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/