Я делаю текстовую игру 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 и возвращает направление (представленное символом) в зависимости от числа. В то время как я успешно выбирал места для фигур случайным образом, эта функция всегда устанавливает фигуры вертикально. Они всегда идут вверх. Кто-нибудь может сказать мне, почему?
if (x = 1)
Включите предупреждения компилятора. Это задание, а не сравнение. Ваш компилятор должен предупредить вас об этом. - person dyp   schedule 30.05.2015