Segi enam, 37 35 34 31
10"+}(=${";<$<1}42/.0@_=<>\;>(_
Diperluas:
1 0 " +
} ( = $ {
" ; < $ < 1
} 4 2 / . 0 @
_ = < > \ ;
> ( _ . .
. . . .
Cobalah online
Pada dasarnya hanya memiliki dua untuk loop menghitung mundur dari sepuluh ke nol, mencetak tanda bintang pada loop dalam, dan baris baru pada loop luar.
Penjelasan:
Program ini terdiri dari tiga bagian utama: inisialisasi memori, loop yang mencetak sepuluh tanda bintang dan loop yang mencetak baris baru. Loop yang mencetak baris baru juga berisi loop yang mencetak tanda bintang.
Pertama, kode menjalankan inisialisasi memori yang benar-benar linier. Kode bekerja menjadi: 10"+}42
. Ini mengatur memori tepi terdekat menjadi seperti:
10 \ / 10
|
42
42 adalah kode ASCII untuk karakter asterisk, dan dua puluhan akan digunakan sebagai penghitung loop kami. Yang perlu diperhatikan adalah bahwa penunjuk memori saat ini mengarah menjauh dari dua puluhan, sehingga bergerak mundur akan menempatkan kita pada salah satu dari puluhan.
Selanjutnya, kita mulai lingkaran pencetakan astersisk. Linear, kode terlihat seperti: ;".._(
. Ini mencetak tanda bintang, menggerakkan penunjuk memori mundur dan ke kiri dan akhirnya mengurangi nilai di sana. Setelah satu iterasi, memori akan terlihat seperti:
10 \ / 9
|
42
Kemudian kita tekan kondisi loop: paling kiri bawah >
. Jika tepi yang baru saja kita dekrementasi masih positif, kita terpental dan mengeksekusi {
untuk memindahkan kita kembali ke 42. Kemudian kita menekan a $
dan kembali ke awal loop pencetakan, yaitu ;
, dengan melewatkan <
. Jika nilainya nol, kita menuju ke loop lain.
Lingkaran luar dimulai dengan mengatur ulang tepi memori yang baru-baru ini menjadi sepuluh (ini adalah 10
dalam kode, menuju barat daya). Kemudian, kami mencetak sepuluh ini sebagai karakter ASCII, yang merupakan baris baru. Berikutnya, kita bergerak ke tepi memori lain dan pengurangan dengan {(
dan kemudian jalankan apa sebesar sekelompok noops: =${_=
. Sekarang, setelah satu iterasi dari loop ini, memori akan terlihat seperti:
9 \ / 10
|
42
Kali ini, memori menghadap keluar dari tepi menyimpan sembilan dalam diagram di atas. Selanjutnya kita jalankan <
yang bertindak sebagai kondisi loop untuk loop luar. Jika nilainya tidak nol, kami terpental dari beberapa cermin, lalu mulai jalankan instruksi yang berarti lagi setelah memasukkan bagian atas segi enam di "
barat daya yang bergerak. Ini menyebabkan kita bergerak mundur dan ke kiri, ke 42 lagi, tetapi menghadap ke dalam. Kemudian =
membalik arah kita, mengatur ulang negara dengan benar untuk memulai lingkaran dalam lagi. Jika tepi diatur ke nol, penunjuk instruksi melanjutkan petualangan kecil yang tidak melakukan apa-apa sampai keluar dari program.
Petualangan dimulai dengan penunjuk instruksi yang menjelajah timur laut, dengan mengabaikan keamanan kardinal. Dengan berani mengabaikan cermin yang selaras dengan diretionnya (/
) dan heroik melompat dari trampolin ($
) sepenuhnya menghindari jebakan maut dari trampolin lain yang sama sekali identik. Menatap kekosongan dari tepi segi enam yang tidak diinisialisasi, pointer, tanpa goyah sejenak, menambahkan dua tepi kosong yang dihadapinya bersama, mengatur tepi saat ini ke jumlah mereka: 0 (tepi sebenarnya nol sebelumnya, tetapi pointer suka percaya ini cukup penting). Karena ujungnya nol, penunjuk berbelok ke kiri di persimpangan jalan, berjalan ke hutan misterius (segi enam). Di sana, ia mendapati dirinya bingung, bergerak maju dan mundur dan maju, sampai berakhir di tempat yang sama dalam ingatan ketika ia mulai. Berpikir bahwa masalahnya pastilah bahwa edge saat ini ditetapkan ke nol terakhir kali, pointer dengan berani menanam a1
ke tepi saat ini. Kemudian, penunjuk mulia menyelidiki jalan lain, satu diletakkan dengan ... sebuah jebakan! Tepi saat ini dikurangi dan diatur kembali ke nol! Penunjuk, bingung oleh pergantian mengejutkan peristiwa, tersandung kembali ke dalam perangkap mengatur tepi saat ini ke yang negatif. Marah, penunjuk berusaha untuk kembali ke hutan yang relatif menyenangkan, hanya untuk memperhatikan bahwa karena tepi saat ini tidak positif, jalan lagi bergeser dan penunjuk menemukan dirinya berjalan ke gua. Dan dengan sebuah gua, maksudku mulut cacing heksagonal raksasa. Tak berdaya, penunjuk itu mengutuk seksualitas dengan napas sekarat. Juga, program berakhir.