Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.12.2010, 16:28   #1
Rusl_v
Пользователь
 
Регистрация: 16.12.2010
Сообщений: 10
По умолчанию Игра:"Магическое число"(проблема с rand())

Доброго времени суток
Вот пример простой программки на Си++:
Код:
#include "stdafx.h"
#include <iostream>
#include <cstdlib>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	int magic;					//Магическое число
	int guess;					//Число введенное пользователем
	magic=rand();				// Рандом
	cout<<"Vvedite svoe chislo:";		//строка "Введите своё число"
	cin>>guess;				//число пользователя=guess
	if(guess==magic) cout<<"***Ti ugadal***\n";	//Число угадано
	else cout<<"Ti ne ugadal\n";				//Число не угадано
	system("pause");
	return 0;
}
Вообщем проблема заключаеться в том что функция rand() не хочет выдавать случайные числа,а всё вермя выдаёт константу(т.е. одно и тоже число =41).Как с этим бороться подскажите.

Последний раз редактировалось Stilet; 27.12.2010 в 16:49.
Rusl_v вне форума Ответить с цитированием
Старый 27.12.2010, 16:39   #2
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Перед первым использованием rand нужно вызывать
Код:
srand(time(0));
Возможно, придется подключить time.h
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 27.12.2010, 16:50   #3
Rusl_v
Пользователь
 
Регистрация: 16.12.2010
Сообщений: 10
По умолчанию

Спасибо.Т.е. получаеться компьютер настолько "тупой" что рандом нужно привязать ко времени)).
К чему можно ещё рандом привязать?
Rusl_v вне форума Ответить с цитированием
Старый 27.12.2010, 16:53   #4
stenl1
Форумчанин
 
Аватар для stenl1
 
Регистрация: 26.06.2009
Сообщений: 354
По умолчанию

А как сделать чтоб это рандомное число было допустим не более 30 ?
stenl1 вне форума Ответить с цитированием
Старый 27.12.2010, 16:56   #5
Rusl_v
Пользователь
 
Регистрация: 16.12.2010
Сообщений: 10
По умолчанию

хм... мне тоже интересно!!!
Я пробывал делать так rand()%30 но выводиться константа 1.А как зарандомить незнаю((
Rusl_v вне форума Ответить с цитированием
Старый 27.12.2010, 17:18   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Rusl_v
А рекомендацию Грома выполняешь?
Цитата:
А как сделать чтоб это рандомное число было допустим не более 30 ?
Rusl_v написал верно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.12.2010, 17:19   #7
TranceSmile
Смайлик :)
Форумчанин
 
Аватар для TranceSmile
 
Регистрация: 12.12.2010
Сообщений: 445
По умолчанию

Код:
do {
r = rand();
} while(r>30);
Самый перспективный framework Yii (c)
TranceSmile вне форума Ответить с цитированием
Старый 27.12.2010, 17:22   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
TranceSmile
Смелое решение ))))
Только это не выход, поверь мне.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.12.2010, 17:24   #9
TranceSmile
Смайлик :)
Форумчанин
 
Аватар для TranceSmile
 
Регистрация: 12.12.2010
Сообщений: 445
По умолчанию

Да я знаю, Stilet, просто прикололся. Это решение, хоть и тупое.
Самый перспективный framework Yii (c)
TranceSmile вне форума Ответить с цитированием
Старый 27.12.2010, 17:27   #10
Rusl_v
Пользователь
 
Регистрация: 16.12.2010
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А рекомендацию Грома выполняешь?

Rusl_v написал верно.
Угу выполнил, но рандом кривоватый получился.Т.е. рандомит к примеру: 2300,жмякаю сразу на ф5 выводит 2310,2325,и всё в таком духе.А хотелось бы рандом типа 2;4899;75;11;10099 что то в этом роде.
Т.е. привязка ко времени не выход,нужно к чему то другому привязаться.

Последний раз редактировалось Rusl_v; 27.12.2010 в 17:31.
Rusl_v вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
"Число в p-ичной системе счисления. Перевести число в q-ичную систему" и не только :) Zinder Паскаль, Turbo Pascal, PascalABC.NET 4 10.04.2010 14:20
Игра "Угадай число" Cause Помощь студентам 6 20.03.2010 17:45
Игра "угадай число" russian-stalker PHP 7 29.01.2010 21:39
Pascal - Игра "Угадай число" d_b Помощь студентам 8 16.02.2009 09:33
[Delphi] Игра "Угадай число" Bomber Помощь студентам 15 05.06.2008 09:34