Fission , 958 + 752 = 1710 byte
._.
Kiri
D
z
^@$$$$$$$$$$$$$$$$$$$@!@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@!@~~~@!!@~~~@!@$$$$$@!@~~~~~@!@$$$$$$$$$$$$@!@~~~~~~~~@!@~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~@!@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@!@~~~~@!@$$$@!@~@!@~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~@!@~~~~~~~~~~~~~~~~~~~~~~~~~~~@!@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@!@~~~~@!@$$$$$$$$$@!@~~~~~~~~@!@$$$@!@~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~@!@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@!@$$$$$@!@~~~~~~~~@!@$$$@!@~~~~~@!@~~@!@$$$$$@!@~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~@!@~~~~~~~~~~~~~~~~~~~~~~~~~~~@!@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@!@$$$@!@~~~@!!@~~~@!@$$$$$$$@!@~@!@$@!@~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~@!V
Cobalah online!
Kanan
} \} \ } \ } \ } \ } \ } \ } \ } \ } \ } \ } \ } \ } \ } \ } \ } \ } \ } \ } \ } \ } \} \ } \ } \ } \ } \ } \ } \ } \ } \ } \ } \ } \ } \ } \ } \ } \ } \
O________________________________________I'/O\/O\__u'/O\____i'/O\++p'/O\___/O\_i'/O\__u'/O\___/O\_____i'/O\++p'/O\+++/O\+/O\_______/O\_i'/O\_________________________________________I'/O\_u'/O\++p'/O\____/O\___/O\_i'/O\_u'/O\/O\____i'/O\++u'/O\__u'/O\_________________________________________I'/O\_/O\+/O\+++/O\____/O\___/O\_i'/O\++p'/O\___/O\_i'/O\_u'/O\____/O\____i'/O\+++++++P'L
Cobalah online!
OK, di sini kita beruntung, sebenarnya ._.
Fitur keren pertama dari Fission adalah ia memiliki 4 perintah untuk membuat pointer perintah, atom AKA:, RLDU
jadi saya memiliki dua perintah untuk grup kiri dan kanan.
Lucky lucky kedua adalah 2 perintah untuk keluaran !
dan O
, yang terjadi dalam kelompok yang berbeda.
Ketiga kalinya pesona. Kedua perintah keluaran menghasilkan ASCII yang setara dengan massa atom. Jadi saya perlu mengubahnya. Beruntung saya! Kedua + (+1 mass)
dan _ (-1 mass)
berada dalam satu kelompok dan semua membutuhkan tiga $ (+1 energy)
, ~ (-1 energy)
, @ (swap mass and energy)
berada di kelompok lain.
Juga ada cermin untuk mengontrol atom di kedua kelompok! Tapi saya tidak menggunakannya dalam program pertama
Jadi tidak ada yang menghentikan saya, tetapi tidak bisa kompak, mengatur massa langkah demi langkah.
Program pertama
Program pertama hanya terdiri dari Dz^@$~!V
D create atom, going down
z set its mass to ASCII code of 'z'
^ split atom in 2, dividing their mass. One goes left, second - right
Mulai bisa lebih sederhana (hanya R
), tetapi menggunakan divide menyimpan beberapa byte untuk huruf pertama.
Atom, yang pergi ke kiri, membungkus dan bertemu V
, yang membuatnya turun dan membungkus tanpa batas, tidak melakukan apa-apa.
Atom kedua berjalan kokoh dan akan menemukan banyak pola berulang @...@!
untuk setiap huruf yang akan dihasilkan.
@ swap atom's mass and energy
... increament or decrement energy until it would match desired ASCII code
@ swap again
! print character by atoms mass
Akhirnya ia akan menghadapi V
dan berbagi nasib atom pertama. Tidak ada cara untuk menghancurkan mereka atau berhenti dengan bagian kiri keyboard.
Program kedua
Kedua hadir dengan pasang surut. Saya punya perintah untuk mengubah massa secara langsung, tetapi perintah output O
menghancurkan atom, jadi saya harus mempertahankannya.
Program dimulai dari kanan L
dengan atom ke kiri.
Pola berulang:
} \
/O\...X'
'
menempatkan kode ASCII char yang di-encoutered berikutnya dalam massa atom, sehingga kode beberapa X
disimpan terlebih dahulu, daripada massa diubah oleh _
dan +
ke nilai yang tepat.
Terkadang X'
dilewati, jika penggunaannya lebih singkat _
dan adil +
.
Atom berasal dari kiri, cermin dua kali dan klik }
dari kiri. Dalam hal ini }
berfungsi seperti cloner, mengirimkan dua atom identik ke atas dan ke bawah. Atom turun dipantulkan oleh cermin dan ke kiri. Atas atom membungkus, mengenai cermin yang sama tetapi dari bawah dan karenanya mencerminkan benar, bertemu O
dan mencetak.
Pada akhirnya atom yang terakhir bertemu final O
untuk dihancurkan.