Ihre Aufgabe ist es, ein Programm zu erstellen, in dem beim Löschen eines Zeichens erkannt wird, welches Zeichen gelöscht wurde, und das gelöschte Zeichen dann erneut in die eigene Quelldatei eingefügt wird.
Wenn zum Beispiel Ihr Programm RadiationHardened
geändert wurde RadiaionHardened
, muss Ihr Programm ausgeben, dass das 5. Byte (0-indiziert) geändert wurde, und anschließend muss die Programmquelle angegeben werdenRadiationHardened
unmittelbar nach der Ausführung .
Notizen und Regeln
- Sie können davon ausgehen, dass vor der Ausführung genau ein Zeichen im Quelltext gelöscht wurde. Das Verhalten für das nicht geänderte Programm ist undefiniert.
- Sie können davon ausgehen, dass das geänderte Byte gelöscht, nicht transponiert, eingefügt oder ersetzt wird.
- Im Fall eines Laufs mit mehreren Zeichen desselben Charakters können Sie entweder den ersten oder den letzten Index des Laufs melden, aber konsistent darüber sein, welchen Sie verwenden. Wenn Sie beispielsweise
baaad
gelöscht werden,baad
um entweder 1 oder 3 zu melden (mit einem Index von Null), muss dies jedoch für das gesamte Programm gleich sein. - Sie müssen nicht die gesamte Quelle in eine eigene Datei schreiben. Sie müssen nur das gelöschte Byte erneut einfügen.
- Im Gegensatz zu den typischen Regeln für strahlungsgehärtete Quines ist das Erkennen des geänderten Bytes beim Lesen des programmeigenen Quellcodes ein faires Spiel.
- Sie können den geänderten Byteindex in jedem geeigneten Format ausgeben. Seien Sie konsistent, ob es sich um eine 0-indizierte oder eine 1-indizierte oder eine andere Schreibweise handelt. Sie können sogar eine Zahl in einer Vorlagenzeichenfolge ausgeben.
Dies ist Code-Golf, also gewinnt das kürzeste Programm.
Viel Glück!
EDIT1: Anforderung von Ersetzung auf Löschung geändert
EDIT2: Regel für Dubletten hinzugefügt
*
Befehl tötet alle IPs. Cardinal kann es auch nicht, weil@
.code-challenge
jedes Programm eine Liste von Bytes deklarieren darf, die gegen Strahlung geschützt sind (aber nicht mehr als - sagen wir - 50% der Gesamtgröße). Ein einfaches Bewertungssystem könnte darin bestehen, jedes strahlungsgeschützte Byte als 10 Bytes zu zählen, oder so ähnlich.Antworten:
Befunge-98 (FBBI) ,
344 296248 BytesProbieren Sie es online!
Nachprüfung!
Befunge-98 ist die erste esoterische Sprache, die ich sowohl in 2D als auch mit Dateiausgabe finden konnte. Dies ist eine vollständige Lösung (mit einem nachgestellten Zeilenumbruch), die in einer Datei mit dem Namen eines Tabulatorzeichens gespeichert ist. Es wird als 0-indexiert ausgegeben und gibt den ersten Index in einer Reihe von Zeichen aus (obwohl es immer nur Paare gibt).
Es müssen ein paar Golfer gemacht werden,
zumal der Code 15 No-Ops enthält, jetzt nur noch ein No-Op! Ich werde daran arbeiten, dies zu verkürzen, mit dem Ziel, auf oder unter 200 Bytes zu kommen.quelle
Unefunge-98 (PyFunge) , 118 Bytes
Probieren Sie es online!
Nachprüfung!
Beim Golfen meiner Befunge-98-Antwort wurde mir klar, dass ich einige Bytes einsparen konnte, indem ich sie nach Unefunge portierte, da ich mich nur um die eine Dimension und nicht um die beiden kümmern musste. Dies eröffnete auch viele mögliche Abkürzungen und Golfplätze, was die neue Lösung sehr machte viel machte kleiner machte.
Erklärung (de-dupliziert):
quelle