Twoim zadaniem jest stworzenie programu, w którym jeśli jeden znak zostanie usunięty, wykryje, który znak został usunięty, a następnie ponownie wstawi usunięty znak do własnego pliku źródłowego.
Na przykład, jeśli twój program jest RadiationHardened
i jest zmodyfikowany RadiaionHardened
, to twój program musi wyprowadzić, że zmodyfikowany został 5. bajt (indeksowany 0), a następnie źródło programu musi być RadiationHardened
natychmiast po wykonaniu.
Uwagi i zasady
- Możesz założyć, że dokładnie jeden znak został usunięty z kodu źródłowego przed wykonaniem. Zachowanie niezmodyfikowanego programu jest niezdefiniowane.
- Możesz założyć, że zmieniony bajt zostanie usunięty, nie transponowany, wstawiony ani zastąpiony.
- W przypadku serii wielokrotności tego samego znaku możesz zgłosić pierwszy lub ostatni indeks serii, ale zachowaj spójność co do tego, którego używasz. Na przykład
baaad
usunięcie, abybaad
zgłosić 1 lub 3 (indeksowane zerem), ale musi być takie samo w całym programie. - Nie musisz zapisywać całego źródła do własnego pliku. Wystarczy ponownie wstawić usunięty bajt.
- W przeciwieństwie do typowych zasad dla utwardzanych promieniowaniem quinów, wykrywanie zmienionego bajtu po odczytaniu własnego kodu źródłowego programu jest uczciwą grą.
- Zmieniony indeks bajtów można wydrukować w dowolnym rozsądnym formacie. Bądź konsekwentny w kwestii, czy jest indeksowany 0, indeksowany 1 czy jakikolwiek inny zapis. Możesz nawet wypisać liczbę w ciągu szablonu.
To jest golf golfowy, więc wygrywa najkrótszy program.
Powodzenia!
EDYCJA 1: zmieniono wymaganie z zamiany na usunięcie
EDYCJA 2: dodano regułę dla serii duplikatów
*
polecenie zabija wszystkie adresy IP. Kardynał też nie może tego zrobić@
.code-challenge
którym każdy program może zadeklarować listę bajtów, które są chronione przed promieniowaniem (ale nie więcej niż - powiedzmy - 50% całkowitego rozmiaru). Prostym systemem oceniania może być policzenie każdego bajtu chronionego przed promieniowaniem jako 10 bajtów lub coś w tym rodzaju.Odpowiedzi:
Befunge-98 (FBBI) ,
344 296248 bajtówWypróbuj online!
Weryfikacja!
Befunge-98 jest pierwszym ezoterycznym językiem, który udało mi się znaleźć, który był zarówno dwuwymiarowy, jak i miał wyjście pliku. Jest to pełne rozwiązanie (z końcowym znakiem nowej linii) przechowywane w pliku o nazwie tabulatora. Wyprowadza jako indeksowane 0 i wyświetla pierwszy indeks w szeregu znaków (chociaż zawsze są tylko pary).
Do zrobienia jest kilka golfów,
zwłaszcza, że w kodzie jest 15 no-opów, teraz tylko jeden no-op! Będę pracował nad tym, aby ten skrót był krótszy, aby uzyskać maksymalnie 200 bajtów lub mniej.źródło
Unefunge-98 (PyFunge) , 118 bajtów
Wypróbuj online!
Weryfikacja!
Podczas gry w moją odpowiedź Befunge-98 zdałem sobie sprawę, że mogę zaoszczędzić trochę bajtów, przenosząc ją do Unefunge, ponieważ musiałbym martwić się tylko o jeden wymiar, a nie o dwa. Otworzyło to również wiele możliwych skrótów i pól golfowych, co znacznie zmniejszyło nowe rozwiązanie .
Objaśnienie (zduplikowane):
źródło