Не могу сделать рандомное число в WinForms c++
Хочу сделать рандомное изменение скорости от 2 до 5 (точный интервал пока не установил).
Делаю все правильно: подключил библиотеки (windows.h ; ctime ; random и т.д.) Но в строчке указывается ошибка на time:
srand(time(0));
Сама ошибка: Выражение перед скобками вероятного вызова должно иметь тип функции (pointer-to-)
Вот полная функция:
private: System::Void timer1_Tick(System::Object^ sender, System::EventArgs^ e) {
int x;
bool car1Stop = false;
if ((car1->Left + car1->Width) < label1->Left) {
srand(time(0));
x = rand() % 6;
car1->Left += x;
}
else {
short d = x;
car1Stop = true;
timer1->Enabled = false;
}
}
Я знаю, что есть возможность работы с дистрибьюторами, но хотелось бы попроще, если есть возможность, заранее спасибо!
Ответы (2 шт):
Можно использовать библиотеку random, а чтобы получить случайное число от a до b писать rand() % (b - a + 1) + a, в частности rand() % m возвращает случайное число от 0 до m - 1.
Все же решил использовать библиотеку random, алгоритм Mersenne twister и дистрибьютор целых чисел! НО, если кто-то знает, как решить вопрос без использования библиотеки random, ответьте пожалуйста!