Создал игру, где нужно угадать число от одного до ста, но почему-то при определенном порядке чисел программа виснет(например 1,50). Может кто знает в чем проблема? - вопрос №1157879

чем тут дело?
var a,b,c,d,x: integer;
begin
randomize;
writeln ('Igra ugadai chislo ot 1 do 99');
x:=random(99)+1;
c:=99;
d:=1;
repeat
readln (a);
begin
if a=x then
break;
end;

begin
if a>x then
begin
writeln ('menshe');
if c>a then
c:=a;
end
else
begin
writeln ('bolshe');
if d<a then
d:=a;
end;
end;

begin
repeat
b:=random(c-d);
until (b>d) and (b<c);
writeln ('Bot govorit ',b)
end;

begin
if b>x then
begin
writeln ('menshe');
if c>b then
c:=b;
end
else
begin
writeln ('bolshe');
if d<b then
d:=b;
end;
end;

until (a=x) or (b=x);
writeln ('Ugadal ', x);
end.

Ответы

  • Могу помочь разобраться, обращайтесь.
  • У вас программа зацикливается на выборе ответа бота. Исправить легко, нужно уточнить, что именно хотелось сделать.

Самое простое — строку b:=random(c-d); замените на b:=random(c-d)+d; — виснуть не должно.

Не забудьте оценить ответ.
28.08.14

Еva

Читать ответы

1 1

Читать ответы
Посмотреть всех экспертов из раздела Учеба и наука > Информатика
Пользуйтесь нашим приложением Доступно на Google Play Загрузите в App Store