Pembaruan: Pemenang telah diputuskan, tetapi tantangan belum berakhir!
Akhirnya, hampir 3 bulan setelah pertanyaan pertama dimulai, seseorang tetap menjadi penjawab terakhir selama lebih dari seminggu! Selamat untuk jimmy23013 dengan jawaban P1eq- nya !
Masih Namun 8 karakter tersisa: 48KSaclw
. Jika ada yang benar-benar ambisius, mereka dapat terus mencoba dengan itu: D
Terima kasih banyak untuk semua yang berpartisipasi, terutama Anda yang membuat kontes berlangsung begitu lama dengan banyak jawaban, terutama KennyTM dengan 25 jawaban besar !!
Juga, terima kasih kepada siapa pun yang terus memperbarui daftar jawaban, itu sangat membantu :) (terutama karena saya sudah jauh dari SE selama beberapa bulan: P).
Pertanyaan asli:
Pada tahun 2005 Institut Film Amerika menghasilkan 100 Tahun ... 100 Kutipan Film AFI , daftar kutipan terbaik di bioskop Amerika. Di sini mereka terdaftar persis seperti yang seharusnya digunakan dalam tantangan ini:
(answer 6) 1. "Frankly, my dear, I don't give a damn." - Rhett Butler
(answer 7) 2. "I'm gonna make him an offer he can't refuse." - Vito Corleone
(answer 5) 3. "You don't understand! I coulda had class. I coulda been a contender. I could've been somebody, instead of a bum, which is what I am." - Terry Malloy
(answer 3) 4. "Toto, I've a feeling we're not in Kansas anymore." - Dorothy Gale
5. "Here's looking at you, kid." - Rick Blaine
(answer 2) 6. "Go ahead, make my day." - Harry Callahan
(answer 11) 7. "All right, Mr. DeMille, I'm ready for my close-up." - Norma Desmond
(answer 8) 8. "May the Force be with you." - Han Solo
(answer 12) 9. "Fasten your seatbelts. It's going to be a bumpy night." - Margo Channing
(answer 13) 10. "You talking to me?" - Travis Bickle
(answer 16) 11. "What we've got here is failure to communicate." - Captain
(answer 15) 12. "I love the smell of napalm in the morning." - Lt. Col. Bill Kilgore
(answer 4) 13. "Love means never having to say you're sorry." - Jennifer Cavilleri Barrett
14. "The stuff that dreams are made of." - Sam Spade
(answer 18) 15. "E.T. phone home." - E.T.
(answer 20) 16. "They call me Mister Tibbs!" - Virgil Tibbs
17. "Rosebud." - Charles Foster Kane
(answer 10) 18. "Made it, Ma! Top of the world!" - Arthur "Cody" Jarrett
(answer 17) 19. "I'm as mad as hell, and I'm not going to take this anymore!" - Howard Beale
(answer 25) 20. "Louis, I think this is the beginning of a beautiful friendship." - Rick Blaine
(answer 26) 21. "A census taker once tried to test me. I ate his liver with some fava beans and a nice Chianti." - Hannibal Lecter
(answer 9) 22. "Bond. James Bond." - James Bond
(answer 22) 23. "There's no place like home." - Dorothy Gale
(answer 29) 24. "I am big! It's the pictures that got small." - Norma Desmond
25. "Show me the money!" - Rod Tidwell
(answer 31) 26. "Why don't you come up sometime and see me?" - Lady Lou
(answer 27) 27. "I'm walking here! I'm walking here!" - "Ratso" Rizzo
(answer 14) 28. "Play it, Sam. Play 'As Time Goes By.'" - Ilsa Lund
(answer 28) 29. "You can't handle the truth!" - Col. Nathan R. Jessup
(answer 23) 30. "I want to be alone." - Grusinskaya
(answer 30) 31. "After all, tomorrow is another day!" - Scarlett O'Hara
(answer 1) 32. "Round up the usual suspects." - Capt. Louis Renault
(answer 24) 33. "I'll have what she's having." - Customer
(answer 36) 34. "You know how to whistle, don't you, Steve? You just put your lips together and blow." - Marie "Slim" Browning
(answer 19) 35. "You're gonna need a bigger boat." - Martin Brody
(answer 39) 36. "Badges? We ain't got no badges! We don't need no badges! I don't have to show you any stinking badges!" - "Gold Hat"
(answer 40) 37. "I'll be back." - The Terminator
(answer 33) 38. "Today, I consider myself the luckiest man on the face of the earth." - Lou Gehrig
(answer 37) 39. "If you build it, he will come." - Shoeless Joe Jackson
(answer 43) 40. "My mama always said life was like a box of chocolates. You never know what you're gonna get." - Forrest Gump
(answer 34) 41. "We rob banks." - Clyde Barrow
(answer 38) 42. "Plastics." - Mr. Maguire
43. "We'll always have Paris." - Rick Blaine
(answer 49) 44. "I see dead people." - Cole Sear
(answer 21) 45. "Stella! Hey, Stella!" - Stanley Kowalski
(answer 32) 46. "Oh, Jerry, don't let's ask for the moon. We have the stars." - Charlotte Vale
(answer 35) 47. "Shane. Shane. Come back!" - Joey Starrett
(answer 42) 48. "Well, nobody's perfect." - Osgood Fielding III
(answer 51) 49. "It's alive! It's alive!" - Henry Frankenstein
(answer 41) 50. "Houston, we have a problem." - Jim Lovell
(answer 45) 51. "You've got to ask yourself one question: 'Do I feel lucky?' Well, do ya, punk?" - Harry Callahan
(answer 55) 52. "You had me at "hello."" - Dorothy Boyd
(answer 46) 53. "One morning I shot an elephant in my pajamas. How he got in my pajamas, I don't know." - Capt. Geoffrey T. Spaulding
(answer 44) 54. "There's no crying in baseball!" - Jimmy Dugan
(answer 59) 55. "La-dee-da, la-dee-da." - Annie Hall
(answer 60) 56. "A boy's best friend is his mother." - Norman Bates
(answer 47) 57. "Greed, for lack of a better word, is good." - Gordon Gekko
(answer 56) 58. "Keep your friends close, but your enemies closer." - Michael Corleone
(answer 48) 59. "As God is my witness, I'll never be hungry again." - Scarlett O'Hara
(answer 50) 60. "Well, here's another nice mess you've gotten me into!" - Oliver
(answer 65) 61. "Say "hello" to my little friend!" - Tony Montana
(answer 66) 62. "What a dump." - Rosa Moline
(answer 52) 63. "Mrs. Robinson, you're trying to seduce me. Aren't you?" - Benjamin Braddock
(answer 61) 64. "Gentlemen, you can't fight in here! This is the War Room!" - President Merkin Muffley
(answer 68) 65. "Elementary, my dear Watson." - Sherlock Holmes
(answer 64) 66. "Take your stinking paws off me, you damned dirty ape." - George Taylor
(answer 53) 67. "Of all the gin joints in all the towns in all the world, she walks into mine." - Rick Blaine
(answer 72) 68. "Here's Johnny!" - Jack Torrance
(answer 71) 69. "They're here!" - Carol Anne Freeling
(answer 73) 70. "Is it safe?" - Dr. Christian Szell
(answer 54) 71. "Wait a minute, wait a minute. You ain't heard nothin' yet!" - Jakie Rabinowitz/Jack Robin
(answer 77) 72. "No wire hangers, ever!" - Joan Crawford
(answer 67) 73. "Mother of mercy, is this the end of Rico?" - Cesare Enrico "Rico" Bandello
(answer 70) 74. "Forget it, Jake, it's Chinatown." - Lawrence Walsh
(answer 74) 75. "I have always depended on the kindness of strangers." - Blanche DuBois
(answer 78) 76. "Hasta la vista, baby." - The Terminator
(answer 75) 77. "Soylent Green is people!" - Det. Robert Thorn
(answer 76) 78. "Open the pod bay doors, HAL." - Dave Bowman
(answer 80) 79. Striker: "Surely you can't be serious." Rumack: "I am serious...and don't call me Shirley." - Ted Striker and Dr. Rumack
(answer 84) 80. "Yo, Adrian!" - Rocky Balboa
(answer 81) 81. "Hello, gorgeous." - Fanny Brice
(answer 83) 82. "Toga! Toga!" - John "Bluto" Blutarsky
(answer 63) 83. "Listen to them. Children of the night. What music they make." - Count Dracula
(answer 87) 84. "Oh, no, it wasn't the airplanes. It was Beauty killed the Beast." - Carl Denham
(answer 88) 85. "My precious." - Gollum
(answer 86) 86. "Attica! Attica!" - Sonny Wortzik
(answer 57) 87. "Sawyer, you're going out a youngster, but you've got to come back a star!" - Julian Marsh
(answer 82) 88. "Listen to me, mister. You're my knight in shining armor. Don't you forget it. You're going to get back on that horse, and I'm going to be right behind you, holding on tight, and away we're gonna go, go, go!" - Ethel Thayer
(answer 58) 89. "Tell 'em to go out there with all they got and win just one for the Gipper." - Knute Rockne
(answer 90) 90. "A martini. Shaken, not stirred." - James Bond
(answer 85) 91. "Who's on first." - Dexter
(answer 62) 92. "Cinderella story. Outta nowhere. A former greenskeeper, now, about to become the Masters champion. It looks like a mirac...It's in the hole! It's in the hole! It's in the hole!" - Carl Spackler
(answer 69) 93. "Life is a banquet, and most poor suckers are starving to death!" - Mame Dennis
(answer 89) 94. "I feel the need - the need for speed!" - Lt. Pete "Maverick" Mitchell and Lt. Nick "Goose" Bradshaw
(answer 79) 95. "Carpe diem. Seize the day, boys. Make your lives extraordinary." - John Keating
(answer 91) 96. "Snap out of it!" - Loretta Castorini
(answer 92) 97. "My mother thanks you. My father thanks you. My sister thanks you. And I thank you." - George M. Cohan
(answer 93) 98. "Nobody puts Baby in a corner." - Johnny Castle
(answer 94) 99. "I'll get you, my pretty, and your little dog, too!" - Wicked Witch of the West
(answer 95) 100. "I'm the king of the world!" - Jack Dawson
(Jangan ragu untuk menandai kutipan saat digunakan.)
Ada 95 karakter ASCII yang dapat dicetak (kode hex 20 hingga 7E), yang mendekati 100:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Dalam tantangan ini, pengguna akan secara bergiliran menulis program yang mencetak salah satu kutipan film menggunakan bahasa pemrograman baru dan subset yang lebih kecil dari ASCII yang dapat dicetak setiap kali.
Bagaimana Ini Bekerja?
Saya sudah mengirimkan jawaban pertama dan sudah memberi label 95 karena saya diizinkan untuk menggunakan semua 95 karakter ASCII yang dapat dicetak dalam program saya. Ini adalah program Python yang mencetak kutipan ke-100 "I'm the king of the world!" - Jack Dawson
,, ke stdout.
Orang kedua yang menjawab harus memilih kutipan baru, bahasa pemrograman baru, dan salah satu dari 95 karakter ASCII yang dapat dicetak untuk dikecualikan dari kode mereka. Mereka harus menulis sebuah program tanpa menggunakan karakter ini yang mencetak kutipan pilihan mereka ke stdout. Mereka harus menandai jawaban mereka sebagai 94 karena mereka memiliki 94 karakter ASCII yang dapat dicetak untuk dikerjakan (anggap saja seperti hitung mundur).
Orang ketiga yang menjawab harus memilih kutipan dan bahasa yang belum pernah digunakan dalam jawaban sebelumnya (hanya 95 dan 94 dalam kasus ini), dan karakter baru untuk dilupakan. Mereka tidak boleh menggunakan karakter ini atau karakter yang sebelumnya dilarang dalam kode mereka. Mereka menandai jawaban mereka sebagai 93.
Proses penjawaban ini berlanjut seperti ini sampai semua karakter ASCII yang dapat dicetak dilarang dan seseorang memberikan jawaban "1", atau lebih mungkin, tidak ada yang bisa menemukan cara untuk menjawab lagi.
Aturan (baca dengan seksama)
Penting untuk dipahami bahwa hanya satu orang yang dapat menjawab pada satu waktu dan setiap jawaban bergantung pada yang sebelumnya. Seharusnya tidak ada dua jawaban dengan nomor, kutipan, atau bahasa pemrograman yang sama.
Pasti ada bentrok jawaban yang diajukan pada saat yang sama, dan itu tidak masalah. Jika itu terjadi, orang yang secara teknis menjawab nanti harus dengan cepat (seperti 10 menit atau kurang) menghapus posting mereka atau mengeditnya sehingga menjadi jawaban berikutnya. Kalau tidak, jangan mengedit kode kecuali benar-benar diperlukan . Mengedit posting untuk memperbaiki format saja dianjurkan.
Aturan khusus
- Seorang pengguna yang baru saja menjawab harus menunggu setidaknya satu jam sebelum menjawab lagi.
- Seorang pengguna tidak boleh menjawab dua kali berturut-turut.
- Nomor kutipan yang Anda pilih tidak boleh lebih dari 5 di bawah nomor jawaban Anda. Misalnya, jawaban 90 dapat memilih kutipan yang tidak digunakan dari nomor 85 hingga 100. Ini meninggalkan kutipan yang lebih baik untuk jawaban yang lebih sulit. Selain aturan ini penomoran kutipan tidak relevan.
- Program hanya boleh berisi tab, baris baru, dan karakter ASCII yang dapat dicetak yang tidak dilarang sejauh ini. (Tab dan baris baru tidak pernah dilarang.)
- Tidak ada batasan panjang program, tetapi mungkin tidak ada lebih dari 64 tab atau 64 baris baru di program Anda.
- Bahasa dianggap berbeda jika mereka biasa disebut dengan nama yang berbeda. Versi bahasa pemrograman yang berbeda tidak dianggap berbeda. (Bahasa markup seperti HTML memang diperhitungkan tetapi bahasa pemrograman lebih lengkap.) Bahasa Anda harus sudah ada sebelum dimulainya kontes ini.
- Jika bahasa Anda tidak memiliki stdout gunakan beberapa mekanisme output teks yang serupa.
- Program Anda seharusnya tidak mengambil input atau memiliki efek samping yang tidak terduga seperti membuat file.
Harap pastikan program Anda valid. Itu harus dapat dijalankan sebagai program penuh apa adanya, tidak hanya di lingkungan REPL .
Perhatikan bahwa "kutipan" yang harus Anda keluarkan termasuk tanda kutip dan orang yang mengatakannya (tetapi bukan nomor kutipan). Program Anda seharusnya hanya menghasilkan penawaran persis seperti yang muncul dalam daftar di atas (baris baru yang mengarah / tertinggal baik-baik saja)
Memformat
Harap format jawaban Anda seperti ini, {stuff in curly braces}
perlu diganti:
#{answer number}. {language}, uses no <code>{the forbidden character you just chose}</code>
{program}
Output is quote {quote number}:
{program output, should be identical to quote}
[Previously forbidden:]({url of previous answer (hit "share" just below it)}) <code>{the previous answerer's forbidden character followed by his previously forbidden list}</code>
{anything else you wish to say}
The <code>
tag dapat diganti dengan tanda kutip mundur ( `
) selama tidak ada backtick terjadi dalam diri mereka.
Mencetak gol
Tujuan komunal dari tantangan ini adalah untuk menjaga jawaban datang selama mungkin.
Pemenang resmi adalah pengguna yang menjawab terakhir, setelah seminggu tidak ada jawaban tambahan. Saya akan menerima jawaban terakhir mereka.
Daftar Jawaban (terbaru lebih dulu)
4
Progresif Unarya
Bueuec
UdageS
1L_a105w
BinaryfuckK
Subskinl
23
n
P1eqt
Addleq9
x86 Kode Mesinr
BSMD
ShaFuck 0.2u
VillmarkO
Kode mesin PDP-11f
ProgFki
NUMPADH
Tri2
ferNANDoP
Runcingm
SubleqG
FlogScript?
Nqubl%
Glypho!
3varq
ETAj
BrainSpace 1.0V
Insomnia`
asdf6
Malas K.C
! Py! Batch 1.5T
BrengsekF
PoGoR
Golunarb
6502 kode mesin + Monitor Sistem Apple IIY
HeadecksI
segera kembaliU
BraincrashZ
Gembira luar biasaM
Tanah pertanianA
EnemaL
MENYESUAIKAN$
HippiN
Rebmug
DupdogB
GammaplexJ
Persetan45
A0A0W
GS2:
l33th
TonocoE
Malbolgek
D1ffe7e45e1
jahatQ
CaneCoded
Rumput#
URSL|
Bahan tertawaanx
Emmental~
Applesoft BASIC^
Keempat7
80386 kode mesin + DOS_
Argh!v
Rexx}
AlphaBetao
Tumpukan super!e
Pythz
TeX polos>
WASD]
Shell POSIX&
Gibberish/
GolfScript*
perakitan x86_640
AppleScriptX
Deadfish ~,
Sendok-
KODE OOo=
J@
Mathematica.
Perl+
DNA #<
Pi)
Nota bene[
ABCs
dc{
HTML(
Unary;
Ook!'
CJamPHP
"
Brainfuck\
Marbelous3
C ++y
Rubip
JavaScript- Python
(Jangan ragu untuk mengedit jika salah atau kedaluwarsa)
Pertanyaan ini bekerja paling baik ketika Anda mengurutkan berdasarkan "terlama".
CATATAN: Seperti pertanyaan terakhir saya , ini adalah tes jenis tantangan baru di mana setiap jawaban tergantung pada yang terakhir dan bertambah dalam kesulitan. Datanglah ke chat atau meta untuk mendiskusikan pertanyaan atau ide secara umum.
sumber
Jawaban:
8. P1eq (tidak menggunakan
n
)Ini membutuhkan platform non-Windows 64-bit untuk bekerja dengan benar, sama seperti jawaban Addleq. Ini menggunakan trik yang sama untuk -1.
Ini memiliki 64 baris baru dan 57 tab.
Itu lambat dan berakhir di sekitar 18mins di komputer saya.
Output adalah kutipan 8:
Sebelumnya dilarang :
Tersisa:
4
8
K
S
a
c
l
w
P1eq sama seperti Subleq dan Addleq, dengan instruksi B = A + 1 dan melompat jika B tidak diubah.
Penjelasan:
Program ini menambah * 444 dan * 484 bersamaan, dan me-reset * 444 ketika menjadi nilai tertentu. Ketika * 484 sama dengan data, * 444 akan menjadi sisa data dibagi dengan beberapa nilai.
Hanya 6 sel memori dalam kode yang dapat dialamatkan secara langsung dengan 4 dan 8. Saya harus menggunakan kembali beberapa dari mereka. Ini juga membuat beberapa operasi tidak dalam urutan yang saya inginkan, seperti menggunakan variabel yang tidak diinisialisasi. Tapi saya bisa membuang apa pun yang dikembalikan pada saat pertama kali dan menginisialisasi setelah itu.
Beberapa bahasa lain dianggap menarik tetapi tidak lagi dapat digunakan:
.
)*
)A
tetapi case case, sayangnya) saya menemukannya di Wikipedia bahasa Jepang.Sekarang saya memiliki 3 bahasa tersisa.
Bagi siapa saja yang ingin menulis lebih banyak jawaban, berikut adalah beberapa petunjuk untuk mencari:
Tepatnya, saya punya:
sumber
90. Brainfuck, gunakan no
"
Output adalah kutipan 90:
Sebelumnya dilarang:
py3\
Seseorang harus melakukannya sebelum ada
.+-
yang dilarang.Cobalah di sini: http://ideone.com/dlu8VE
sumber
"
? Itu agak berarti bagi semua orang setelah Anda.51. Malbolge (tidak menggunakan
E
)(Baris baru hanya untuk klarifikasi dan bukan bagian dari sumber.)
Outputnya adalah kutipan 49:
Sebelumnya dilarang :
"#&'()*+,-./0137;<=>@[\]^_ deopQksvxXyz{|}~
Karakter yang tersisa:
!
$
%
:
?
`
2
456
89
ABCD
FGHIJKLMNOP
RSTUVW
YZ
abc
fghij
lmn
qr
tu
w
Anda dapat menjalankannya dengan penerjemah Malbolge referensi .
sumber
10. Kode Mesin x86, menggunakan no
9
Ketika saya menyadari bahwa karakter yang tersisa termasuk opcode untuk 'Dec BX' dan 'Push BX', saya menyimpulkan bahwa program x86 masih mungkin.
Tautan untuk kode dan file .com
Kode ini terlihat seperti versi yang lebih panjang dari ini:
Kode, dikompresi dengan
bzip2
dan base-64-encoded, adalah ini:Output adalah kutipan 18:
Sebelumnya dilarang :
Karakter yang tersisa:
4
8
K
S
a
c
l
n
t
w
Ini adalah kode pengubah-sendiri yang membuat kode pengubah-sendiri, berikut cara kerjanya:
Teks pertama kali dikodekan dengan memasukkan tanda '4' yang diakhiri oleh '8', yang memetakan instruksi yang secara efektif NOP untuk program ini. Selanjutnya, BX dikurangi ('K') hingga memiliki nilai di mana kode cetak akan berakhir di tumpukan. Ini didorong 8 kali ('S'), dan kemudian Pop All, 'a', dijalankan untuk mengatur SI dan DI untuk nanti. BX kemudian berulang kali dikurangi dan didorong untuk memasukkan nilai arbitrer dari program cetak pada tumpukan (byte rendah), bersama dengan byte sampah (byte tinggi). Selanjutnya, deretan panjang pengurangan mendapat BX ke nilai 0xAAAD, yang merupakan dua instruksi 1-byte 'Load Word' dan 'Store Byte'. Setiap pasangan dari instruksi ini akan menghapus satu byte sampah dari kode cetak. Instruksi ini didorong 28 kali (ukuran program cetak), dan sisa file diisi dengan instruksi pengurangan lebih untuk bertindak sebagai NOP. NOP ini akan dieksekusi sampai wilayah memori yang digunakan oleh stack terkena, yang telah ditimpa dengan kode kondensasi. Kode kondensasi dijalankan, menghapus byte sampah dalam kode pada stack (ditunjukkan oleh SI dan DI, yang telah diatur sebelumnya). Akhirnya, ketika kode kondensasi selesai, program pencetakan telah berhasil disimpan dalam memori pada instruksi berikutnya untuk dijalankan.
Kode perakitan untuk menghasilkan kode mesin (FASM)
sumber
IMUL
dari tipe tertentu), jadi itu bisa disebut "bahasa" yang berbeda. Saya bahkan tidak mencoba memeriksa apakah x86 masih memungkinkan pada tahap ini - tampaknya memang!61. 80386 kode mesin + DOS, menggunakan no
7
Output adalah kutipan 64:
Sebelumnya dilarang:
"'&()*+-,./\03;<=>@X_[sovy pez]{}
Membuat file yang dapat dieksekusi yang hanya menggunakan ASCII yang dapat dicetak bukanlah tugas yang mudah. Untungnya, tidak banyak karakter yang dilarang oleh jawaban sebelumnya, jadi saya hanya perlu beberapa tambalan di sana-sini.
Untuk menjalankan program ini, salin ke file dengan ekstensi
.com
, dan jalankan (linebreak menggunakan format DOS0d 0a
; ada satuTAB
karakter dalam kode). Sayang sekali bahwa sistem Windows 64-bit modern tidak mendukung kode 16-bit; satu membutuhkan sistem Windows 32-bit atau DOSBox untuk menjalankan kode.Saya menggunakan
debug.com
debugger DOS untuk mengembangkan kode. Untuk "merakit" kode sumber ", arahkan kembali ke debugger. Di DOSBox:Kode sumber:
Beberapa catatan:
0x41
,,0x23
dan0x24
. Saya memilih topeng yang tidak dilarang.0xcd
dan0xc3
. Mereka juga bertopeng XOR, jadi kodenya harus memodifikasi sendiri.k
sangat penting di sini: ia mengkodeIMUL
instruksi perkalian. Saya menggunakannya untuk memperoleh nilai-nilai konstan: misalnya, konstanta0x216b
, ketika dikalikan dengan0x45
, memberikan konstanta yang berguna0x01d7
, yang merupakan pointer (dengan offset, seperti dijelaskan di atas) ke kode yang harus ditambal. Dengan cara yang sama, topeng penambalan adalah0x2132*0x36=0x8c
(jangan pedulikan pemotongan di sana).and ax, 2142; and ax, 4221
.ax
tidak berubah.Sunting: tidak lagi menggunakan
_
karakter (waktu yang buruk dalam posting) - tidak dapat digunakanpop di
, jadi gunakandi
register jauh lebih sedikit sekarang.sumber
@
sudah dilarang di 78, pilih simbol lain tolong.85. HTML5 (tidak menggunakan
{
)Outputnya adalah kutipan 91.
Sebelumnya dilarang :
py3\" ';(
sumber
12. ShaFuck 0.2 (tidak menggunakan
D
)Kode sumber panjangnya persis 4.784.128 byte, berisi semua karakter yang diizinkan kecuali
D
. Sepertinya:di sini (a × 1017) berarti karakter "a" diulang 1017 kali. File bzip2-terkompresi base64-encoded (247 byte) adalah:
Jumlah SHA1 dari file asli harus 1250ecf73c61ef93a31c4f7dfaa0a7631ada50bf.
Output adalah kutipan 9:
Sebelumnya dilarang :
Karakter yang tersisa:
4
8
9
K
S
a
c
l
n
r
t
w
ShaFuck adalah varian dari Brainfuck. Dibutuhkan setiap potongan 1024-byte, hitung ringkasan SHA-1, kemudian gunakan output 20-byte sebagai program Brainfuck. Seperti yang dijelaskan dalam posting blog yang ditautkan dari wiki, ada "kerentanan" di v0.2 bahwa SHA-1 menampilkan bentuk:
diterima. Ini memungkinkan konversi langsung dari perintah brainfuck ke potongan 2048-byte. Encoder menggunakan
a
-z
sebagai rangkaian karakter, yang tidak cocok untuk kita. Jadi kita perlu menulis "penambang" sendiri. Sekarang, ada 13 karakter valid yang tersedia. Dengan asumsi output SHA-1 adalah acak, jika kita ingin memperbaiki 3 byte pertama, itu sesuai dengan 3 × log₁₃ (256) ~ 6,5 karakter input. Karena itu kita perlu mengulang semua string 7-karakter yang dibuat dari 13 huruf ini:Kami kemudian dapat dengan cepat mendapatkan yang setara ini:
Jadi akhirnya kita memiliki encoder langsung ini:
sumber
SUFFIX = 'a' * (1024 - 7)
- Kalau1024 - 7
- kalau tidak selalu1017
? :-)(1024 - 7)
lebih mudah dibaca.87. Ook !, menggunakan no
;
Output adalah kutipan 84:
Sebelumnya dilarang:
py3\" '
sumber
76. oOo CODE , menggunakan no
-
Output adalah kutipan 78:
Sebelumnya dilarang :
py3\" ';({s[)<+.@=
Saya tidak akan memposting setara / turunan BF lain. Janji.
EDIT: Saya memperbarui kode agar lebih mudah dibaca. (lol) Tidak memengaruhi karakter terlarang.
Saya menggunakan alat ini untuk menghasilkan BF murni saya. Saya kemudian mengonversinya menjadi oOo CODE:
Dan kemudian menggunakan skrip Python ini untuk mendapatkan versi "dapat dibaca" dari KODE oOo murni dan teks input:
sumber
9. Addleq (tidak menggunakan
t
)Gunakan
sqasm.cpp
di halaman esolang untuk berkumpul. Membutuhkan platform non-Windows 64-bit untuk bekerja dengan benar.Tepatnya ada 64 tab dan 64 baris baru (tidak ada trailing baris baru). Wah.
Output adalah kutipan 22:
Sebelumnya dilarang :
Tersisa:
4
8
K
S
a
c
l
n
w
"Addleq" sebuah OISC mirip dengan "Subleq", tetapi menggunakan penambahan bukan pengurangan.
Membangun "-1"
Output di Addleq bekerja dengan menulis ke alamat memori -1. Karena semua angka ganjil dilarang, kami tidak dapat membuat -1 dengan cara normal. Namun, kita dapat menipu assembler untuk membuat -1:
Di sini
sscanf(s, "%d", &ret)
berperilaku sepertiret = strtol(s, NULL, 10);
(C11 §7.21.6.2 / 12), dan ketika input meluap,strtol
akan mengembalikan LONG_MAX (C11 §7.22.1.4 / 8). Jadi, jikasizeof(long) > sizeof(int)
, kita harus mendapatkannyaret == -1
. Namun, pada platform manasizeof(long) == sizeof(int)
misalnya 32-bit atau Windows, kita akan mendapatkan 0x7fffffff membuat solusi di atas tidak valid.Menyimpan tab dengan assembler
Dalam addleq tingkat rendah, setiap instruksi panjangnya 3-angka. Karena kami hanya memiliki 128 anggaran spasi putih, kami harus mencetak seluruh string dengan 129/3 = 43 instruksi. Ini sama sekali tidak cukup karena kutipan terpendek (dipilih di sini) adalah 32 karakter.
Meskipun demikian, assembler mendukung beberapa notasi steno:
Aturan # 2 dirancang untuk "subleq" untuk dengan cepat memberikan nol pada alamat. Tetapi untuk "addleq" memungkinkan kita menggandakan nilai tanpa tab.
Ini memungkinkan kita untuk menyesuaikan seluruh program menjadi 129 angka.
Menciptakan angka
Kutipan dipilih karena pendek dan memiliki banyak karakter duplikat. Angka-angka yang perlu kita buat adalah:
Kita bisa menggunakan angka di alamat 4, 8, 44, 48, 84, 88, .... Aturan # 1 assembler sudah menempatkan "9" di * 8 dan "45" di * 44, jadi kita hanya akan menggunakannya (Ada baiknya mereka angka ganjil). Selanjutnya, kami akan mencoba memasukkan "-1", "8" dan "44" ke dalam alamat-alamat ini dengan memindahkan perhitungan. Hasilnya adalah paruh pertama kode:
Baris terakhir
Setelah semua angka dibangun, kita dapat mencetak setiap karakter. Program terakhir, bagaimanapun, memiliki lebih dari 67 baris, dua terlalu banyak. Karena itu, kita harus menggabungkan 3 baris terakhir bersama-sama:
Karena jalur memiliki lebih dari 2 angka, kita harus secara manual menyediakan parameter ke-3 dari instruksi. Itu berarti kami menukar setiap baris baru dengan 2 tab. Untungnya sebelum kombinasi kami menggunakan 60 tab, jadi hasil akhirnya nyaris tidak memenuhi persyaratan.
sumber
4
dan8
ada0
dan7
.89. PHP, tidak menggunakan
Output adalah kutipan 94:
Sebelumnya dilarang :
py3\"
sumber
'
sekarang !!!81. PI , gunakan no
<
Output adalah kutipan 81:
Sebelumnya dilarang:
py3\" ';({s[)
Apa ? Pi tanpa
3
?Penerjemah saya di sini (maaf tentang UI yang belum sempurna, berdasarkan jawaban ini ): http://migl.io/projects/pi/index.php
sumber
79. Perl 5, menggunakan no
.
Output adalah kutipan 95:
Sebelumnya dilarang:
py3\" ';({s[)<+
Sebagai bahasa TMTOWTDI, Perl menawarkan banyak cara untuk mengatasi batasan. Metode yang digunakan di sini adalah membuat pernyataan
print "that quote"
sebagai string, dan mengevaluasinya.Meskipun
'
dan"
dilarang, Perl juga memungkinkan mengekspresikan string menggunakanq«…»
danqq«…»
masing - masing. Dan meskipun;
dilarang, karena semua pernyataan tidak palsu, kita dapat menggunakanand
untuk menyatukan pernyataan. Karena huruf besarP
,Y
,S
masih diperbolehkan, kita bisa menempatkanp
,y
,s
dalam string akhir menggunakanlc
(huruf kecil) fungsi, sedangkanchr
dapat digunakan untuk menempatkan simbol-simbol"
dan.
sumber
$foo=0
palsu, tentu saja.) Bagaimanapun, sangat bagus; +1.54. CaneCode (tidak menggunakan no
Q
)(Baris dan spasi baru tidak diperlukan.)
Output adalah kutipan 71:
Sebelumnya dilarang :
"#&'()*+,-./037;<=>@[\]^_ deopsvxXyz{|}~
CaneCode hanyalah turunan BF lainnya, dengan pemetaan:
Sekedar catatan: Karakter yang tersisa adalah:
!
$
%
:
?
`
12
456
89
ABCDEFGHIJKLMNOP
RSTUVW
YZ
abc
fghijklmn
qr
tu
w
sumber
6. Subskin (tidak menggunakan
K
)Baris 9 dalam program berikut ini diganti dengan sesuatu yang dapat diuji. Ini memiliki 2 trailing newlines, dan tepatnya total 64 newlines.
Untuk membuatnya memenuhi kriteria, baris 9 harus diganti dengan angka besar berikut. Saya pikir ini harus valid seperti varian Unary itu.
a
. Jadi digit terakhir adalaha
di mana k = 0, dan ada 159321460184447640588063043795531819638245990121854536131792918542864566418397339281153516086677425424423723475531974684547855358001230183547851703274577276601612622258171727288003902331619018508731805969660163575803761844794365403871421372122820829226554024584224464882571689865777 dari mereka.8
.Perhatikan bahwa angka yang dikonstruksikan berada di basis 16 (tetapi angka-angka dalam uraian di atas adalah di basis 10). Jika perhitungan saya benar, itu harus sama dengan angka asli dalam program mod 8 * (16 ^ 234-1) / 15. Jumlah apa pun yang cukup besar dan memenuhi kriteria ini seharusnya berhasil, tetapi saya tidak tahu bagaimana membangun yang lebih pendek dengan hanya
4
8
a
c
.Output adalah kutipan 1:
dengan baris baru yang memimpin dan tertinggal.
Sebelumnya dilarang:
Sisa karakter:
4
8
S
a
c
w
.Penjelasan
Subskin adalah OISC di mana instruksi untuk mengurangi, dan melewatkan instruksi berikutnya jika hasilnya negatif. 3 bidang pertama dalam memori dipetakan ke penunjuk instruksi, output, dan input. Petunjuk penunjuk dapat digunakan sebagai "goto", dan membacanya dapat menghasilkan beberapa angka yang tidak tersedia hanya menggunakan karakter yang dapat digunakan.
Pada awalnya saya mencoba mengompres kode ke dalam angka di beberapa pangkalan. Tapi saya tidak bisa memasukkan golf ke dalam 64 baris. Jadi saya beralih ke pendekatan modulus yang menghilangkan level loop.
Ini pada dasarnya hanya algoritma pembagi umum terbesar. A / B diekstraksi pada setiap langkah. Kemudian atur A = B dan B = A mod B dan lanjutkan.
Lebih tepatnya, ketika A> B itu menambah data saat ini, jika tidak maka bertukar angka dan memindahkan pointer. Setelah itu angka yang lebih kecil dikurangkan dari angka yang lebih besar.
Akhirnya kode ekstraksi diri menimpa sesuatu dalam loop dan memecahnya, dan terus ke kode yang diekstraksi. Kode yang diekstraksi cukup mudah.
Kode
Generasi
Asumsikan A dan B setelah kemajuan ekstraksi menjadi n dan m. Sangat mudah untuk membalikkan kemajuan ini dan mendapatkan A dan B (sebelum data yang berguna dimulai) dalam hal n dan m. Dan A = an + bm, B = cn + dm. Tetapkan A ke nomor acak yang cukup besar, dan dapat membuat n dan m keduanya positif (dan hanya menggunakan karakter yang tersedia). n dan m dapat dihitung menggunakan inversi modular. Kemudian B ditentukan oleh n dan m.
Tetapi tidak mudah untuk membuat B juga hanya terdiri dari karakter-karakter itu. Saya menggunakan langkah ekstra yang seharusnya hanya mengekstrak beberapa data sampah yang tidak berbahaya. Jadi B baru akan menjadi kA + B di mana k adalah bilangan bulat positif. Sangat mudah untuk melihat apakah ada. Tetapi saya tidak yakin apakah mungkin menemukan yang cukup pendek untuk diuji. Dan saya menggunakan teorema kecil Fermat untuk menemukan teorema yang berfungsi.
Saya hanya memiliki satu bahasa # 2 yang tersisa.
sumber
78. Mathematica, menggunakan no
@
Output adalah penawaran 76:
Sebelumnya dilarang:
py3\" ';({s[)<+.
Dihasilkan seperti:
Program ini kemudian:
dengan nilai-nilai dimasukkan untuk
n2
,ndiff
,d2
danddiff
dan semua ruang dihapus.Ide awal saya adalah untuk menggunakan
ToString
,FromDigits
,IntegerDigits
,Partition
danFromCharacterCode
. Namun keduanyaFromDigits
danIntegerDigits
memilikis
di dalamnya yang saya tidak perhatikan.sumber
72. perakitan x86_64 (nasm), menggunakan no
*
Menggunakan 61 tab dan 36 baris baru.
Output adalah kutipan 68:
Sebelumnya dilarang:
py3\" ';({s[)<+.@=-,X0
Ini menggunakan
write
panggilan sistem dengan nomor0x2000001
, yang mungkin hanya berfungsi pada OS X. Merakit, menautkan dan menjalankan:sumber
71. GolfScript, tidak menggunakan
/
Output adalah kutipan 69:
Sebelumnya dilarang:
py3\" ';({s[)<+.@=-,X0*
Terima kasih kepada Peter Taylor yang mengizinkan saya menggunakan beberapa keunikan GolfScript untuk membuat string. Pertama, saya bisa mendapatkan string kosong tanpa menggunakan tanda kutip, dengan menetapkan konten STDIN (kosong) ke variabel (
?
dalam hal ini). Lalu saya membangun array angka yang bersarang, yang diambil mod 256, adalah poin kode yang diinginkan. Dengan menambahkan beberapa 256, saya dapat menghindari duplikat dan angka yang mengandung0
dan3
. Terakhir saya mendorong string kosong dengan?
dan mengambil perbedaan set simetris. Ini meratakan array dan memaksanya menjadi string, di mana GolfScript hanya peduli dengan mod 256 yang tersisa.Uji di sini.
sumber
91. Marbelous , menggunakan no
\
Output adalah kutipan 96:
Sebelumnya dilarang :
py3
sumber
95. Python
Output adalah kutipan 100:
Tidak ada yang dilarang.
sumber
73. AppleScript, menggunakan no
0
(Semua "spasi" adalah "tab", sebagaimana diizinkan oleh OP. Ada 25 tab dan 8 baris baru.)
Output adalah kutipan 70:
Sebelumnya dilarang :
py3\" ';({s[)<+.@=-,X
Di sini kita pertama membangun variabel
c
yang merupakan daftar kode ASCII dari kutipan. Di AppleScript,number & number
menghasilkan daftar 2-elemen{number, number}
, danlist & number
menambahkan nomor ke daftar, sehingga memungkinkan kita untuk menghindari menggunakan{
atau,
. Selain itu,&
memiliki prioritas lebih rendah daripada*
dan/
, sehingga kami dapat membuat seluruh daftar dalam satu baris, menghindari(
atau membuat variabel (yang menghabiskan 3 tab).Setelah itu, kami mengonversi daftar angka
c
menjadi stringd
. Sekali lagi kita gunakan di&
sini, karenastring & string
merupakan gabungan. AppleScript tidak peka huruf besar-kecil, sehingga kami bisa menggunakannyadiSPlaY
untuk menyelesaikan masalahpys
karakter.sumber
set
dan gagal. Saya punya jawaban untuk kutipan # 62, tetapi saya tidak bisa menggunakannya sekarang; P57. Burlesque (tidak menggunakan
|
)Baris baru hanya untuk klarifikasi, tetapi tab diperlukan. Ada 4 tab.
Output adalah kutipan 87:
Sebelumnya dilarang :
"'&()*+-,./\037;<=>@_[sovy pezxX]^{}~
Burlesque mirip dengan GolfScript, tetapi biasanya setiap perintah memiliki panjang 2 karakter. Konstruksinya seperti ini:
Burlesque mendukung integer presisi sewenang-wenang, dan juga memungkinkan konversi ke basis 36. Jadi kami pertama-tama menyandikan semua karakter huruf kecil di basis 36:
Sayangnya, angka ini mengandung terlalu banyak 0, 3 dan 7, dan semua simbol aritmatika (
+-*/
) dilarang ... Biasanya kita bisa menggunakan modulus, tetapi Burlesque menggunakan urutan.%
yang titiknya juga tidak tersedia. Untungnya, operator xor anehnya$$
, jadi kita dapat mencoba untuk membangun ini dengan xor-ing dua nomor bebas dari 0, 3, 7. Ini adalah alasan dari angka yang sangat besar 41224222….Akhirnya kami memasukkan simbol yang tersisa seperti
,
,, dll kembali ke string. Berita buruknya adalah fungsi "chr" menggunakan urutan
L[
yang lagi-lagi dilarang! Kabar baiknya adalah ada berbagai cara untuk membangun string yang ada (misalnya??
membuat string versi"Burlesque - 1.7.3"
yang berisi "spasi"), dan kemudian mengekstrak (!!
) karakter dari itu.The kenaikan dan pengurangan operator juga menggunakan karakter terlarang
.+
,.-
, namun ada alternatif?i
,?d
yang memiliki efek yang sama. Dengan demikian kita dapat menghasilkan seluruh spektrum ASCII dari ini.sumber
34. 6502 kode mesin + Monitor Sistem Apple II (tidak menggunakan
b
)(Menggunakan 1 tab)
Output adalah kutipan 41:
Sebelumnya dilarang :
"#$&'()*+,-./01357:;<=>@[\]^_ ABdeEghIJLMNopQksUvWxXyYzZ{|}~
Karakter yang tersisa:
!
%
?
`
2
4
6
89
CD
FGH
K
OP
RST
V
a
c
f
ij
lmn
qr
tu
w
Jalankan di Apple // e (atau emulator). Pastikan karakter tab disalin sebagai tab dan bukan spasi.
Ini adalah kombinasi dari ide-ide kode mesin 80386 + jawaban DOS dan jawaban BASIC Applesoft saya sebelumnya .
Bagi mereka yang tidak terbiasa, Monitor Sistem pada komputer Apple II adalah penerjemah / debugger tingkat sangat rendah yang memungkinkan Anda untuk memodifikasi memori dan menjalankan kode (jika Anda menjalankan penerjemah BASIC, Anda dapat memasuki Monitor Sistem dengan melakukan
CALL -151
). Cara yang biasa untuk memasukkan kode mesin dalam Monitor Sistem akan<addr>: <hex_byte> <hex_byte> ...
, dan menjalankan kode dilakukan oleh<addr>G
(G untuk "Go"). Memasukkan kode dengan cara biasa menggunakan karakter terlarang; namun, buffer input untuk memasukkan baris teks dimulai pada memori 0x200. Jadi, one-liner memberitahu System Monitor untuk melompat ke 0x262, dan kemudian memasukkan kode seperti yang diikuti ASCII.Meskipun tidak menjadi bahasa esoteris, pembatasan opcodes yang dapat digunakan membuat kode lebih mirip dengan turunan brainfuck. Semua yang tersedia: membaca memori (tetapi tidak menulis), menambah & mengurangi memori, mengurangi dari akumulator, dan bercabang pada tidak 0. Hanya beberapa instruksi yang diperbaiki: panggilan ke rutin Monitor yang menghasilkan karakter, dan pengembalian untuk mengakhiri program.
Membongkar. Perhatikan bahwa semua input karakter mendapatkan bit set tinggi:
sumber
14. kode mesin PDP-11, menggunakan no
O
Output adalah kutipan 28:
Sebelumnya dilarang :
Karakter yang tersisa:
4
8
9
D
K
S
a
c
l
n
r
t
u
w
Beberapa detail teknis:
Untuk memverifikasi kode ini, saya menggunakan simulator Ersatz-11 . Untuk menjalankan kode, tulis kode ke file
test.pdp
, jalankan simulator, dan masukkan:Hasil:
Kode sumber (semua angka dalam notasi oktal):
Lebih mudah untuk menjelaskan cara kerjanya dari awal hingga akhir. Bagian outputnya seperti ini (setiap iterasi menghasilkan 2 byte):
Kode ini mengandung banyak byte terlarang, baik dalam kode maupun dalam pesan keluaran. Untuk memperbaikinya, kode tersebut diacak: setiap kata (16 bit) direpresentasikan sebagai jumlah dari 3 angka:
Kode patching (unscrambling):
Kode ini sendiri berisi byte terlarang, tetapi jauh lebih pendek (9 kata). Patcher yang menguraikan kode ini hanya menggunakan byte yang diizinkan (ada di bawah komentar "patch the patcher" di sumbernya), sehingga ia memiliki rangkaian operasi yang sangat terbatas (pada dasarnya, cukup "tambahkan"), sehingga menambal banyak byte akan terlalu banyak kode.
Menggunakan patcher ini tidak mudah. Untuk menambal sejumlah besar data dengan kode sederhana, saya memerlukan instruksi seperti
add r5, (r3)+
danadd r5, -(r3)
- dan satu-satunya register yang dapat digunakan seperti ini adalahr3
danr5
. Sayangnya, tidak ada perintah yang diizinkan dapat digunakan untuk menginisialisasi register ini, jadi saya harus menambal instruksi yang melakukan itu:Ini diperlukan menambal hanya 2 kata.
Saya telah mencari beberapa waktu untuk cara melakukan penambalan; satu-satunya cara saya datang dengan menggunakan mode "tidak langsung" yang terkenal:
Untuk menjalankan kedua instruksi ini, dibutuhkan sedikit persiapan:
patch1
) dalam memoriUntuk menghasilkan semua konstanta ini, saya menggunakan instruksi berikut:
Mereka menggunakan kata-kata di alamat 060562 dan 060564 sebagai variabel sementara; pengaturan yang tepat dari kedua instruksi ini dapat menghasilkan nilai apa pun dalam 10-20 langkah.
Instruksi yang digunakan dalam kode ini (tidak termasuk yang ditambal):
sumber
7. 23 , menggunakan no
l
Dengan trafeed linefeed (yang harus ada), ada persis 64 baris umpan dalam kode ini.
Menjalankannya mencetak kutipan kedua:
Terima kasih kepada @ jimmy23013 karena mengarahkan saya ke tantangan ini.
Verifikasi
Karena kode di atas bekerja di penerjemah online , tidak menggunakan spasi ( pure 23 ), no x s ( 23.ixsy ) dan tidak ada koma ( 23.dezsy ), saya menganggap itu valid 23. mudah (tidak berdokumen), yang hanya mengambil baris panjang ke akun.
Kode (baca mundur) sama dengan kode 23.dezsy berikut :
17,62
menginstruksikan juru bahasa untuk mencetak 62 bilangan bulat yang mengikuti sebagai karakter.Penerjemah tampaknya membutuhkan satu karakter lebih banyak pada setiap baris dari yang seharusnya. Saya berasumsi ini untuk menjelaskan baris baru bergaya Windows. Untuk membuat kode berfungsi sesuai dengan spesifikasi (atau di browser yang memperkenalkan pengembalian carriage), hapus satu
K
dari setiap baris.Untuk menguji kode, paste di Sumber wilayah, tekan Enteruntuk memasukkan linefeed Trailing, jenis
23
di Konsol daerah (untuk beralih dari default 23.dezsy notasi untuk auto-deteksi) dan klik Run Interpreter!.sumber
66 - Pyth, menggunakan no
e
Output adalah kutipan 62:
Menggunakan karakter
12456789:CDGJPRSTdhjkmtx
.Sebelumnya dilarang:
z" &'()*+,-./03;<=>@X[\]psy{
Ini didasarkan pada serangkaian penggantian regex -
:
dalam pyth, masing-masing mengganti `, karakter backtick, dengan string dua karakter yang berisi karakter baru diikuti oleh backtick.Semua penggantian diterapkan pada string asli just` (J).
Dua string huruf dihasilkan dengan menggunakan fungsi perubahan basis
j
,, pada nomor dan basis untuk menghasilkan daftar entri angka, yang kemudian ASCII disandikan ke dalam string 2 karakter oleh fungsi yang baru didefinisikanS
.Penjelasan:
sumber
z
dari 66 di bagan Anda. Ini memutus rantai karena entri berikutnya ada di halaman kedua.60. Keempat (tidak menggunakan
^
)(Ada 54 baris baru dan 51 tab.)
Output adalah kutipan 56:
Sebelumnya dilarang :
"'&()*+-,./\037;<=>@X_[sovy pez]{}
sumber
59. Applesoft BASIC, menggunakan no
~
(Menggunakan 11 baris baru)
Output adalah kutipan 55:
"La-dee-da, la-dee-da." - Annie Hall
Sebelumnya dilarang:
"'&()*+-,./\037;<=>@X_[sovy pez]^{}
Berjalan di Apple // e (atau emulator).
Penjelasan singkat: Setelah membersihkan layar, "CALL 2111" melompat ke kode mesin 6502 yang disematkan di baris 4-15, yang menulis setiap karakter langsung ke halaman teks.
Detail:
Membongkar:
Kode mesin tentu saja dapat dioptimalkan, tetapi beberapa kebiasaan disebabkan oleh pembatasan penyandian, misalnya:
sumber
41. MENYESUAIKAN (tidak menggunakan
L
)(Tidak boleh ada trailing baris baru)
Output adalah kutipan 50:
Sebelumnya dilarang :
"#$&'()*+,-./01357:;<=>@[\]^_ BdeEghJNopQksvWxXyz{|}~
Karakter yang tersisa:
!
%
?
`
2
46
89
A
CD
FGHI
K
M
OP
RSTUV
YZ
abc
f
ij
lmn
qr
tu
w
ADJUST adalah bahasa 2D dengan 1 register dan 2 tumpukan. Penunjuk kode dimulai dari sudut kiri bawah, lalu berjalan ke arah timur laut. Instruksi didasarkan pada faktorisasi utama dari kode karakter saat ini, misalnya
Z
= 90 = 5 × 3 × 3 × 2, sehingga karakterZ
akan melakukan tindakan "5" sekali, "3" dua kali, dan kemudian "2" sekali. Ini memungkinkan kami memiliki beberapa cara untuk melakukan satu fungsi dan menghindari karakter terlarang.Ide dasar dari program ini adalah:
Pada langkah 1 kita akan menggunakan surat-surat ini untuk memberikan 2 dan 5:
F
(7 × 5 × 2)R
(41 × 2)t
(29 × 2 × 2)8
(7 × 2 × 2 × 2)Ada beberapa 7, 29, 41 tetapi ini tidak akan mempengaruhi hasil akhir. Pada langkah 2 kita akan menggunakan
K
(5 × 5 × 3) untuk memberikan "3". Perhatikan bahwa sepasang "5" adalah no-op.Pada langkah 3 kita memilih
A
(13 × 5). Pada langkah 4 kita akan menggunakann
(11 × 5 × 2) untuk mengontrol ukuran tumpukan danK
untuk menyesuaikan arah.Secara umum, jika langkah 1 tidak mengandung apa pun
R
, kami gunakanKAnK
untuk mencetak karakter dan naik 4 baris. Kalau tidak, kita gunakanKKA
untuk mencetak dan bergerak ke bawah sebanyak 2 baris. Kadang-kadang ada jugaKnnK
untuk secara paksa naik 4 baris, karena titik awal harus di sudut kiri bawah.Jika ada yang tertarik, inilah lingkungan kerja untuk menghasilkan kode di atas. Tidak ada generator otomatis.
sumber
23. Glypho , menggunakan no
%
Output adalah kutipan 30:
Sebelumnya dilarang :
!"#$&'()*+,-./013567:;<=>@[\]^_` AbBCdeEFghIjJkLMNopqQRsTUvVWxXyYzZ{|}~
Karakter yang tersisa:
?
2
4
89
D
GH
K
OP
S
a
c
f
i
lmn
r
tu
w
Perhatikan bahwa ini bekerja dengan interpreter Java , tetapi itu tidak setuju dengan halaman esolangs pada pengkodean
[
dan+
. Namun, desain Glypho sedemikian rupa sehingga set instruksi lengkap tersedia selama Anda memiliki empat karakter berbeda, dan segala sesuatu yang terpisah dari loop tersedia jika Anda memiliki tiga, jadi ini adalah detail kecil.Saya sebelumnya telah memilih kutipan yang saya sukai dari film yang sebenarnya saya tonton, tetapi ternyata saya mengabaikan aturan. :(
sumber