PDA

Показать полную графическую версию : Pascal ABC


Sprint116
21-05-2013, 22:36
Здравствуйте, у меня возникла небольшая проблема. Написал код игры "Чет или нечет?", но при повторном запуске игра выдает то же самое число что и в первый раз. Если закрыть ее и снова запустить она генерирует другое число.
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.

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

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

Sprint116
21-05-2013, 23:43
Огромное спасибо :)




© OSzone.net 2001-2012