Terima kasih Martin untuk 6 byte!
1="/}.!+/M8;
Diperluas:
1 = "
/ } . !
+ / M 8 ;
. . . .
. . .
Cobalah online
Tua, jawab. Ini dibiarkan masuk karena gambar dan penjelasannya mungkin bermanfaat bagi pengguna Hexagony baru.
!).={!/"*10;$.[+{]
Diperluas:
! ) .
= { ! /
" * 1 0 ;
$ . [ +
{ ] .
Ini mencetak urutan Fibonacci yang dipisahkan oleh baris baru.
Cobalah online! Namun berhati-hatilah, penerjemah online tidak terlalu menyukai hasil yang tidak terbatas.
Penjelasan
Ada dua "subrutin" untuk program ini, masing-masing dijalankan oleh salah satu dari dua IP yang digunakan. Rutin pertama mencetak baris baru, dan yang kedua melakukan perhitungan dan output Fibonacci.
Subrutin pertama dimulai pada baris pertama dan bergerak dari kiri ke kanan sepanjang waktu. Pertama mencetak nilai pada penunjuk memori (diinisialisasi ke nol), dan kemudian meningkatkan nilai pada penunjuk memori oleh 1
. Setelah no-op, IP melompat ke baris ketiga yang pertama-tama beralih ke sel memori lain, kemudian mencetak baris baru. Karena baris baru memiliki nilai positif (nilainya 10), kode akan selalu melompat ke baris kelima, berikutnya. Baris kelima mengembalikan penunjuk memori ke nomor Fibonacci kami dan kemudian beralih ke subrutin lainnya. Ketika kami kembali dari subrutin ini, IP akan melompat kembali ke baris ketiga, setelah menjalankan no-op.
Subrutin kedua dimulai di sudut kanan atas dan mulai bergerak ke Tenggara. Setelah no-op, kita terpental untuk melakukan perjalanan ke Barat di sepanjang baris kedua. Baris ini mencetak angka Fibonacci saat ini, sebelum memindahkan penunjuk memori ke lokasi berikutnya. Kemudian IP melompat ke baris keempat, di mana ia menghitung angka Fibonacci berikutnya menggunakan dua sebelumnya. Ia kemudian memberikan kontrol kembali ke subrutin pertama, tetapi ketika ia mendapatkan kembali kendali atas program, ia melanjutkan hingga bertemu lompatan, di mana ia memantul di atas cermin yang awalnya digunakan untuk mengarahkannya ke Barat, saat ia kembali ke baris kedua.
Gambar-gambar Cantik Pendahuluan!
Sisi kiri gambar adalah program, sisi kanan mewakili memori. Kotak biru adalah IP pertama, dan kedua IP menunjuk pada instruksi selanjutnya yang akan dieksekusi.
Catatan: Gambar mungkin hanya tampak cantik bagi orang-orang yang memiliki keterampilan yang sama terbatasnya dengan program pengeditan gambar: PI akan menambahkan setidaknya 2 iterasi lebih banyak sehingga penggunaan *
operator menjadi lebih jelas.
Catatan 2: Saya hanya melihat jawaban alephalpha setelah menulis sebagian besar dari ini, saya pikir itu masih berharga karena pemisahan, tetapi bagian Fibonacci sebenarnya dari program kami sangat mirip. Selain itu, ini adalah program Hexagony terkecil yang saya lihat menggunakan lebih dari satu IP, jadi saya pikir mungkin lebih baik untuk tetap menyimpannya: P
^2
sebagai pengganti0,1
. +1