- -
Pascal ABC
(
http://forum.oszone.net/showthread.php?t=260996)
Pascal ABC
Здравствуйте, у меня возникла небольшая проблема. Написал код игры "Чет или нечет?", но при повторном запуске игра выдает то же самое число что и в первый раз. Если закрыть ее и снова запустить она генерирует другое число.
Код:
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.
|
Цитата:
Цитата Sprint116
но при повторном запуске игра выдает то же самое число что и в первый раз »
|
Sprint116, было бы странно, если бы было иначе. Вас не смущает, что генерация случайного числа находится перед циклом «repeat … until» (а не внутри него)?!
|
Sprint116,
Цитата:
Цитата Sprint116
Код:
x:=random(99);
repeat
...
until upcase(flag)<>'Y';
»
|
Чтобы у компьютера было каждый раз новое число, то его надо каждый раз получать заново.
Т.е.
x:=random(99) поместить в тело цикла.
Код:
repeat
x:=random(99);
...
until upcase(flag)<>'Y'; »[/q]
|
Время: 01:43.
© OSzone.net 2001-