Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - Pascal ABC

Ответить
Настройки темы
Разное - Pascal ABC

Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здравствуйте, у меня возникла небольшая проблема. Написал код игры "Чет или нечет?", но при повторном запуске игра выдает то же самое число что и в первый раз. Если закрыть ее и снова запустить она генерирует другое число.
Код: Выделить весь код
Program Chet;
Uses crt;
Var
flag : char;
x, b, y, i: integer;
Begin
clrscr;
randomize;
x:=random(99);
If  x mod 2=0  then  b:= 2  else b:= 1;
repeat
writeln('Введите 2, если число четное или 1, если число нечетное');
readln (y);
begin;
if y>2 then
writeln('Введите 2 или 1!');
end;
writeln('Число компьютера',x);
If y=b then
writeln('Вы угадали')
else writeln('Вы не угадали');
Writeln('Еще раз (Y/N) ?');
readln(flag);
Writeln('_______________________________________________________');
until upcase(flag)<>'Y';
end.

Отправлено: 22:36, 21-05-2013

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Sprint116:
но при повторном запуске игра выдает то же самое число что и в первый раз »
Sprint116, было бы странно, если бы было иначе. Вас не смущает, что генерация случайного числа находится перед циклом «repeat … until» (а не внутри него)?!
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:20, 21-05-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Sprint116,
Цитата Sprint116:
Код: Выделить весь код
x:=random(99);
repeat
...
until upcase(flag)<>'Y';
»
Чтобы у компьютера было каждый раз новое число, то его надо каждый раз получать заново.
Т.е.
x:=random(99) поместить в тело цикла.
Код: Выделить весь код
repeat
x:=random(99);
...
until upcase(flag)<>'Y'; »[/q]

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:31, 21-05-2013 | #3


Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Огромное спасибо

Отправлено: 23:43, 21-05-2013 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - Pascal ABC

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - Всё о TURBO PASCAL (обсуждение, помощь в написание программ, ошибки, Pascal ABC) Loading Программирование и базы данных 41 20-05-2015 15:28
Разное - Pascal ABC m3nf1s Программирование и базы данных 1 14-05-2013 15:49
C/C++ - перевод с Pascal ABC на С++ dhoine66 Программирование и базы данных 0 11-05-2011 22:15
Delphi - Работа с графикой в Pascal ABC verdix Программирование и базы данных 1 26-06-2009 00:52
[решено] Запуск EXE c параметрами ( test.exe -123 -abc ) FlatX007 AutoIt 2 22-06-2009 16:47




 
Переход