Тройной вывод - PascalABC.NET
Формулировка задачи:
Задание звучит так:
"Написать программу игры в «Поле чудес»: ведущий загадывает слово, обозначаемое символами * (то есть ***** - слово из пяти букв) . Отгадывающий вводит буквы, если буква присутствует в слове, она отображается. Когда слово угадано целиком - выводится количество сделанных попыток."
Программу я написал, она вроде как работает. Но есть проблемы: счётчик ведёт начисление 3 раза, и 3 раза пишется массив Б.
Я не понимаю почему так происходит, вроде как они ни в каких циклах не содержатся.
Решение задачи: «Тройной вывод»
textual
Листинг программы
Var Memory: array of char; //Ваше слово Yes: array of char; Counter: integer; //Счетчик Begin Var Size:= Random(1,18); //Рандомный размер слова SetLength(Memory,Size); //Выделение памяти SetLength(Yes,Size); //Выделение памяти For var i:=0 to Size-1 do begin Memory[i]:= chr(Random(1040,1071)); //Заполняем слово Yes[i]:='*'; //Заодно и выводящий таблоид end; Writeln('Начинайте ввод букв:'); Counter:= 0; Repeat Writeln(Yes); Var chr:= ReadlnChar; //Тут в .NET почитать о методах динамических массивов If Memory.Contains(chr) then begin Yes[Memory.IndexOf(chr)]:= Memory[Memory.IndexOf(chr)]; //В выводный массив вносим букву по позиции chr в Memory. Memory[Memory.IndexOf(chr)]:= '-'; //Обнуляем ячейку,в которой находится chr: возможны повторения букв в слове. end; Counter += 1; //Операторы,как во всех .NET языках Until Yes.IndexOf('*') = -1; Writeln('Количество попыток: ', Counter); end.
Объяснение кода листинга программы
- Объявлены три переменные: Memory, Yes, Counter.
- Размер слова (Size) генерируется случайным образом.
- Память выделяется под массивы Memory и Yes размером Size.
- Массив Memory заполняется случайными символами.
- Массив Yes заполняется символом '*'.
- Выводится приглашение к вводу букв.
- Устанавливается счетчик Counter равным 0.
- В цикле повторяется вывод массива Yes и чтение символа из ввода пользователя.
- Если введенный символ присутствует в массиве Memory, то он заменяется на '-' в массиве Yes и на соответствующем индексе в массиве Memory.
- Счетчик Counter увеличивается на 1.
- Цикл повторяется до тех пор, пока в массиве Yes есть символ '*'.
- Выводится количество попыток.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д