Ваша задача - создать программу, в которой, если будет удален какой-либо один символ, он обнаружит, какой символ был удален, а затем повторно вставит удаленный символ в свой собственный исходный файл.
Например, если ваша программа RadiationHardened
и изменена на RadiaionHardened
, то ваша программа должна вывести, что 5-й байт (с 0 индексами) был изменен, а затем источник программы должен быть RadiationHardened
сразу после выполнения.
Примечания и правила
- Вы можете предположить, что ровно один символ был удален в исходном коде перед выполнением. Поведение неизмененной программы не определено.
- Вы можете предположить, что измененный байт будет удален, не транспонирован, вставлен или заменен.
- В случае серии, состоящей из нескольких одинаковых символов, вы можете сообщить либо о первом, либо о последнем индексе серии, но не забывайте о том, что вы используете. Например
baaad
, удалениеbaad
может указывать либо 1, либо 3 (с нулевым индексированием), но оно должно быть одинаковым во всей программе. - Вам не нужно выписывать весь источник в свой собственный файл. Вам нужно только повторно вставить удаленный байт.
- В отличие от типичных правил для радиационно-стойких квин, обнаружение измененного байта при чтении собственного исходного кода программы является честной игрой.
- Вы можете вывести измененный индекс байтов в любом приемлемом формате. Будьте последовательны относительно того, является ли это 0-индексированным или 1-индексированным или любым другим примечанием. Вы даже можете вывести число в строке шаблона.
Это код-гольф, поэтому выигрывает самая короткая программа.
Удачи!
EDIT1: изменено требование от замены к удалению
EDIT2: добавлено правило для прогонов дубликатов
*
команда убивает все IP. Кардинал тоже не может этого сделать из-за@
.code-challenge
где каждой программе разрешено объявлять список байтов, которые защищены от излучения (но не более - скажем, - 50% от общего размера). Простая система подсчета очков может состоять в том, чтобы считать каждый защищенный от излучения байт как 10 байтов или что-то в этом роде.Ответы:
Befunge-98 (FBBI) ,
344 296248 байтПопробуйте онлайн!
Проверка!
Befunge-98 - это первый эзотерический язык, который я смог найти, он был 2D и имел выходной файл. Это полное решение (с завершающим переводом строки), хранящееся в файле с именем символа табуляции. Он выводится как 0-индексированный и выводит первый индекс в серии символов (хотя есть только когда-либо пары).
Нужно сделать несколько гольфов,
тем более, что в коде 15 бездействующих операций, теперь только один безоперационный! Я буду работать над тем, чтобы сделать это короче, с целью получения или меньше 200 байтов.источник
Unefunge-98 (PyFunge) , 118 байт
Попробуйте онлайн!
Проверка!
Играя в гольф мой ответ Befunge-98, я понял, что могу сэкономить несколько байтов, перенеся их в Unefunge, так как мне придется беспокоиться только об одном измерении, а не о двух. Это также открыло много возможных ярлыков и гольфов, что сделало новое решение намного меньше.
Пояснение (без дублирования):
источник