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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.12.2011, 18:13   #1
Pingvinenok_Lolo
Пользователь
 
Регистрация: 05.11.2011
Сообщений: 56
По умолчанию Угадать число

Привет людям добрым!!!
Написать программу, которая играет в игру «Угадай число». Программа выбирает случайное число, в диапазоне от 1 до 1000. Игрок печатает свою первую догадку. Программа отвечает одним из следующих вариантов ответа:
1.Вы отгадали число! Хотите сыграть еще? (Да или Нет);
2.Слишком мало! Пробуйте еще!
3.Слишком много. Пробуйте еще!

Если догадка неверна, программа должна работать циклически до получения правильного ответа и считать количество попыток игрока отгадать число, также программа должна выводить подсказку «Слишком мало» или «Слишком много».
С каждой попыткой программа должна исключать половину чисел

Вот с последним пунктом не разобралась. Что и где делить надо, чтобы исключить половину чисел? Подскажите пожалуйста!
Спасибо!!!
Код:
int main ()
{
	int x = 0, user_answ = 0, n = 1000, counter = 0;
	char cont_game;

	cout << "My number between 1 and 1000.\nGuess it!\n";

	for (int i = 0; i < 10; i++)
	{
		x = 1 + rand () % n;
		// n = n / 2; // ?????
		cin >> user_answ;
		
		while (user_answ != x)
		{
			if (user_answ > x)
			{
				cout << "So much! Try again!\n";
				counter++;
				cin >> user_answ;
			}
			if (user_answ < x)
			{
				cout << "Too little! Try again!\n";
				counter++;
				cin >> user_answ;
			}
		}
		if (counter > 10)
		{
			cout << "Oh! Horror!\n";
		}
		else
		{
			cout << "Very well!\n";
		}
		if (user_answ == x)
		{
			cout << "Good!\n Continue game? (y or n): ";
			cin >> cont_game;
			if (cont_game == 'n')
			{
				break;
			}
		}
	}
	cout << "Bye!";
	getch ();
}
Pingvinenok_Lolo вне форума Ответить с цитированием
Старый 24.12.2011, 21:18   #2
rUs_LAN
Форумчанин
 
Регистрация: 15.11.2008
Сообщений: 577
По умолчанию

я тоже не понял что требуется в останньосму пункте. Кстати хороший пример такой программы есть в dev c + + ide. Папка examples / jackpot.
rUs_LAN вне форума Ответить с цитированием
Старый 25.12.2011, 12:28   #3
Pingvinenok_Lolo
Пользователь
 
Регистрация: 05.11.2011
Сообщений: 56
По умолчанию

Как я поняла, исключать половину чисел надо для того, чтобы у игрока с каждой попыткой было больше шансов угадать число
Но вот что и где исключать? ))
P.s. У меня нет Dev C++
Pingvinenok_Lolo вне форума Ответить с цитированием
Старый 25.12.2011, 23:03   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
С каждой попыткой программа должна исключать половину чисел

Вот с последним пунктом не разобралась. Что и где делить надо, чтобы исключить половину чисел? Подскажите пожалуйста!
я тоже не могу понять эту строчку...
имхо, этот пункт имеет смысл в том случае, когда КОМПЬЮТЕР угадывает число, которое задумал игрок. Тогда по алгоритму (методу) половинного деления можно приближаться к решению.
В том же случае, когда число задумал КОМПЬЮТЕР, то это игрок должен на основе ответов сужать круг возможных вариантов...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.12.2011, 18:02   #5
Pingvinenok_Lolo
Пользователь
 
Регистрация: 05.11.2011
Сообщений: 56
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
имхо, этот пункт имеет смысл в том случае, когда КОМПЬЮТЕР угадывает число, которое задумал игрок. Тогда по алгоритму (методу) половинного деления можно приближаться к решению.
В том же случае, когда число задумал КОМПЬЮТЕР, то это игрок должен на основе ответов сужать круг возможных вариантов...
Получается,что метод половинного деления применяется только по отношению к компьютеру?
Вот думаю может этот пункт оформить как "Подсказка пользователю", например если пользователь не отгадывает число за 10 попыток, тогда применить этот алгоритм...хмм
Serge_Bliznykov спасибо за подсказку!!!
Pingvinenok_Lolo вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как из ячейки содержащей текст и число извлечь только число? АННА-ЕАО Microsoft Office Excel 35 02.12.2016 23:16
вводишь число- дает комбинацию из сумм различных чисел (от 1 до 10)составляющих это число Jonfree C++ Builder 0 05.12.2011 22:08
Написать программу, которая за меньшее число ходов отгадывает загаданное число gomz007 Помощь студентам 16 08.11.2009 12:57
Вывести число, предшествующее первому отрицательному и число, следующее за последним отрицательным Rid Паскаль, Turbo Pascal, PascalABC.NET 4 22.12.2008 16:50
Ввести число N и определить делится ли оно без остатка на число M (VBA) Ivanich Microsoft Office Excel 7 24.04.2008 19:43