Tugas Anda adalah membuat program di mana jika ada satu karakter yang dihapus, ia akan mendeteksi karakter mana yang dihapus dan kemudian memasukkan kembali karakter yang dihapus ke dalam file sumbernya sendiri.
Misalnya, jika program Anda RadiationHardened
diubah dan diubah RadiaionHardened
, maka program Anda harus menampilkan bahwa byte ke-5 (0-diindeks) telah dimodifikasi dan kemudian sumber program harus RadiationHardened
segera setelah eksekusi.
Catatan dan aturan
- Anda dapat berasumsi bahwa tepat satu karakter telah dihapus dalam kode sumber sebelum eksekusi. Perilaku untuk program yang tidak dimodifikasi tidak ditentukan.
- Anda dapat mengasumsikan byte yang diubah akan dihapus, tidak ditransposisi, dimasukkan, atau diganti.
- Jika menjalankan beberapa karakter yang sama, Anda dapat melaporkan indeks pertama atau terakhir dari jalankan, tetapi konsisten tentang yang Anda gunakan. Misalnya
baaad
dihapus untukbaad
dapat melaporkan 1 atau 3 (nol diindeks), tetapi harus sama di seluruh program. - Anda tidak perlu menuliskan seluruh sumber ke file sendiri. Anda hanya perlu memasukkan kembali byte yang dihapus.
- Tidak seperti aturan umum untuk quines yang dikeraskan dengan radiasi, mendeteksi byte yang diubah dari membaca kode sumber program sendiri adalah permainan yang adil.
- Anda dapat menampilkan indeks byte yang diubah melalui format apa pun yang masuk akal. Konsisten tentang apakah itu 0-diindeks atau 1-diindeks atau notasi lainnya. Anda bahkan dapat menampilkan nomor dalam string template.
Ini adalah kode-golf sehingga program terpendek menang.
Semoga berhasil!
EDIT1: perubahan persyaratan dari penggantian menjadi penghapusan
EDIT2: aturan tambahan untuk menjalankan duplikat
*
perintahnya membunuh semua IP. Kardinal juga tidak bisa melakukannya, karena@
.code-challenge
mana setiap program diizinkan untuk mendeklarasikan daftar byte yang dilindungi terhadap radiasi (tetapi tidak lebih dari - katakanlah - 50% dari ukuran total). Sistem penilaian sederhana dapat menghitung setiap byte yang dilindungi radiasi sebagai 10 byte, atau sesuatu seperti itu.Jawaban:
Befunge-98 (FBBI) ,
344 296248 byteCobalah online!
Verifikasi!
Befunge-98 adalah bahasa esoterik pertama yang bisa saya temukan yang merupakan 2D dan memiliki keluaran file. Ini adalah solusi lengkap (dengan trailing newline) yang disimpan dalam file bernama karakter tab. Ini menghasilkan sebagai 0-diindeks, dan menampilkan indeks pertama dalam serangkaian karakter (meskipun hanya ada pasangan).
Ada beberapa golf yang harus dibuat,
terutama karena ada 15 no-op dalam kode, sekarang hanya satu no-op! Saya akan berusaha membuat ini lebih pendek, dengan tujuan mencapai atau di bawah 200 byte.sumber
Unefunge-98 (PyFunge) , 118 byte
Cobalah online!
Verifikasi!
Saat bermain golf jawaban Befunge-98 saya, saya menyadari saya bisa menyimpan beberapa byte dengan memindahkannya ke Unefunge, karena saya hanya perlu khawatir tentang satu dimensi daripada dua. Ini juga membuka banyak kemungkinan pintasan dan golf, yang membuat solusi baru jauh lebih kecil.
Penjelasan (tidak terduplikasi):
sumber