U3L3I3Y3A3
Ученик
- Регистрация
- 19 Дек 2011
- Сообщения
- 3
- Реакции
- 0
- Баллы
- 0
Игра быки коровы
Здравствуйте,помогите ,пожалуйста, с задачей. Вот её код,но она почему-то не работает. Не могли бы вы подсказать в чем причина и исправить мне её. Суть задачи: Компьютер загадывает четырехзначное число, а вы должны угадать его . Вы вводите свой вариант числа, компьютер сравнивает его с загаданным числом и выдает результат в виде “Быков” и Коров”: “корова” - цифра присутствует в загаданном числе и стоит на своем месте. “Бык” - цифра присутствует в загаданном числе, но стоит не на своем месте.
Здравствуйте,помогите ,пожалуйста, с задачей. Вот её код,но она почему-то не работает. Не могли бы вы подсказать в чем причина и исправить мне её. Суть задачи: Компьютер загадывает четырехзначное число, а вы должны угадать его . Вы вводите свой вариант числа, компьютер сравнивает его с загаданным числом и выдает результат в виде “Быков” и Коров”: “корова” - цифра присутствует в загаданном числе и стоит на своем месте. “Бык” - цифра присутствует в загаданном числе, но стоит не на своем месте.
Код:
var
s,s1:string[4]; {s - число, задуманное компьютером, s1 - наше предположение}
m,n:byte; {m - кол-во угаданных чисел; n - кол-во цифр, стоящих на своих позициях}
a:set of char;
procedure answer (s1:string ); var k,p:byte; {k - кол-во угаданных чисел; p - кол-во цифр, стоящих на своих позициях}
var
j,i: integer;
l:string;
begin
l:=s;
for i:=1 to 4 do if s1[i] in a then
begin
inc(k);
j:=0;
repeat
inc(j)
until l[j]=s1[i];
l[j]:='X'; {Убираем число, т.к. мы его угадали}
a:=[l[1],l[2],l[3],l[4]];
end;
for i:=1 to 4 do if s1[i] = s[i] then inc(p);
end;
begin
randomize; {инициализируем генератор случайных чисел}
str(1000 + random(9000),s); {Случайное число из диапазона 1000..9999 }
repeat
a:=[s[1],s[2],s[3],s[4]]; {множество цифр, задуманных компьютером}
m:=0;n:=0;
writeln('Отгадай число');
readln(s1);
answer(s1);m:=n;
if s = s1 then writeln ('Поздравляю, вы отгадали число!') else
writeln('Вы отгадали ',m,' цифр и ',n,' из них стоят на своей позиции.');
until s = s1;
end.