Tantangan ini sebagai penghormatan kepada pemenang Best Picture di Oscar 2017, La La Land Moonlight!
Tantangan Anda adalah mencetak teks
La La Landjeda satu detik, lalu ubah teks untuk ditampilkan
Teks asli (La La Land) harus dicoret . Ini dapat dicapai baik dengan membersihkan layar, menggambar di atas teks asli, atau dengan solusi pintar lainnya.La La LandMoonlight
Ini adalah kode-golf sehingga byte terendah menang. Aturan standar kode-golf berlaku.
code-golf
string
kolmogorov-complexity
animation
vikarjramun
sumber
sumber
La La La(nd)
polanyaJawaban:
Jelly , 31 byte
Diuji dengan xterm dan
LANG=en_US
. Tidak berfungsi pada TIO karena beberapa alasan.Hexdump
Verifikasi
Latar Belakang
Jawaban ini memanfaatkan karakter kontrol dan urutan pelarian ANSI .
0d
(<CR>
) digunakan untuk kembali ke awal liner setelah mencetak La La Land .9b 39 6d
(<CSI> 9 m
) digunakan untuk mengaktifkan teks pemogokan sebelum mencetak La La Land untuk kedua kalinya.9b 6d
(<CSI> m
) digunakan untuk mengatur ulang latar depan dan latar belakang ke mode default, sehingga menonaktifkan pemogokan, sebelum mencetak Moonlight .Bagaimana itu bekerja
sumber
Vim, 37 byte
Solusi yang cukup mudah.
Berikut ini animasi yang sedang berjalan:
sumber
gs
tidur selama satu detik.HTML,
153148 byteMenggunakan animasi CSS. Diuji hanya pada Firefox dan Chrome.
sumber
@keyframes
deklarasi terakhir dan menghapus dua kurung kurawal penutupan.}
hilang, jadi sayangnya ini tidak dapat dilakukan.HTML + JavaScript, 18 + 59 = 77 byte
Sayangnya, sepertinya tidak ada cara yang efisien untuk digunakan kembali
O.innerHTML
...sumber
setTimeout('a=O.innerHTML;a=a.strike()+" Moonlight"',1e3)
bekerjaa
sana tidak akan berubahO.innerHTML
.Oktaf,
8166 byte15 byte disimpan berkat @Stewie
Demo Online Di Sini .
Sementara demo menunjukkan dua plot terpisah, ketika dijalankan dalam versi desktop MATLAB, itu menunjukkan plot pertama, menunggu 1 detik, dan kemudian menambahkan string kedua ke plot yang sama.
Karena Oktaf tidak memiliki dukungan untuk pemogokan melalui teks, saya malah memilih untuk menampilkan teks dalam suatu
axes
objek dalam gambar dan menampilkan "dicoret" dengan menampilkan'--------'
di atas teks awal (ide awal oleh @Stewie). Sebelumnya, saya benar-benar telah merencanakanline
objek untuk diserang'La La Land'
sumber
text(0,.5,'La La Land');pause(1);text(0,.5,'---------- Moonlight')
.'-'*8+
hal yang sama?.
)Bash,
70, 6966 byte-4 Poin terima kasih kepada Riley
echo La La Land;sleep 1;echo -e "\r\e[9mLa La Land\e[0m Moonlight"
Penghargaan untuk jawaban Sylvain Pineau di AskUbuntu untuk dicoret
sumber
\r
yang kedua,echo
bukanclear
. Juga, Anda tidak membutuhkan ruang sebelum yang keduaecho
.clear;
harus pergi dulu. Dan Anda memiliki ruang yang tidak perlu di; echo
.\e[A
, jadi tidakclear
diperlukan. Untuk info lebih lanjut tentang itu lihat saya .s="La La Land";echo $s;sleep 1;echo -e "\e[A\e[9m$s\e[0m Moonlight"
echo -n La La Land;sleep 1;echo -e "\r\e[9mLa La Land\e[0mMoonlight"
QBasic, 61 byte
Dengan menggunakan mode grafis, gambar garis yang sebenarnya melalui teks. Ini seperti apa di QB64 :
Kode harus cukup jelas, tetapi ini adalah versi tanpa tanda:
sumber
MATL, 46 byte
Karena MATL tidak memiliki dukungan untuk kode kontrol atau format teks, solusi ini hanya bergantian antara
'La La Land'
dan'-----------'
secepat mungkin untuk mensimulasikan teks dicoret.Penjelasan
sumber
Bash + pv , 50 byte
Ini dibangun berdasarkan jawaban Bash @ DigitalTrauma .
♪
mewakili carriage return ( 0x0d ),›
byte CSI ( 0x9b ).Hexdump
Verifikasi
Bagaimana itu bekerja
printf mengulangi string formatnya sebanyak yang diperlukan untuk menguras argumen lainnya. Karena ada satu kemunculan
%b
dan dua argumen (9m\\0
danm\ Moonlight
), itu akan menghasilkan aliran byte berikut.Ini melakukan hal berikut.
\r
membawa kursor ke awal baris.La La Land
dicetak kata demi kata.\x9b9m
mengaktifkan teks pemogokan.\0
menetapkan penanda garis akhir untukpv -0
.\rLa La Land
melakukan hal yang sama seperti sebelumnya.\x9bm
atur ulang latar depan dan latar belakang ke mode default, nonaktifkan pemogokan.Moonlight
dicetak kata demi kata.Akhirnya,
pv -0L1
mencetak satu baris nol-dihentikan per detik, memperkenalkan penundaan yang diinginkan.sumber
♪
membantu bermain golf Anda, atau apakah Anda secara khusus ingin menggunakannya dengan La La Land? Saya suka itu!♪
kadang - kadang hanya kebetulan yang bahagia.pv
bukannyasleep
seperti orang lain itu indah.pv
adalah apa yang saya ambil dari jawaban Bash yang tertaut, jadi saya tidak bisa benar-benar menghargai itu.HTML + JavaScript, 10 + 63 = 73 byte
sumber
PHP (
867569 Bytes)Menggunakan karakter UTF-8 U + 0336 untuk dicoret.
Sunting: Disimpan 17 byte dengan saran @Titus berkomentar
sumber
sleep
selalu mengembalikan 0; jadi Anda bisa melakukansleep(1)?:" ̶L̶a̶ ̶L̶a̶ ̶L̶a̶n̶d̶ Moonlight"
(-3 byte).\r
bukannya\033[10D
menyimpan 6 byte dan memasukkannya ke dalam string akhir menyimpan 4. byte lainU+0336
untuk dicoret".La La Land<?=
bukannya<?="La La Land",
menyimpan 3 byte lagi.Pyth - 47 byte
Apakah dicoret melalui hal sekarang.
sumber
"
di depan untuk +1.<exmpty line>
? Saya akan menyarankan<pre>
tag.C
8786 byteVersi tidak disatukan:
sumber
char
dan*
.f()
dalam versi yang tidak diserang, bukan?f()
.HTML + JavaScript, 100 byte
sumber
GNU sed + sleep,
6358 byteSunting: disimpan 5 byte, berdasarkan komentar Digital Trauma
Menunggu antara dua pernyataan cetak tidak dapat dilakukan dengan menggunakan sendiri, dan karena itu saya sebut
sleep 1
. Dimungkinkan untuk melakukan panggilan sistem dari sed, menggunakane
perintah, yang merupakan ekstensi GNU.Untuk membuat teks pemogokan (baris 3), "kombinasi long stroke overlay", U + 0336 , ditambahkan ke setiap karakter. Setelah itu, saya memindahkan kursor ke atas 1 baris, secara efektif mengganti teks lama ketika mencetak sesuatu yang baru, menggunakan yang disebut ANSI Escape Sequences . Ini ditafsirkan oleh terminal sebagai perintah pemformatan khusus. Anda dapat menemukan informasi lebih lanjut tentang mereka di sini .
Penjelasan:
sumber
\c
, penemuan yang bagus! Adapun unicode khusus itu, ini pertama kali saya mendengarnya, tetapi memang berhasil. Ketika dicetak oleh halaman ini, itu dikombinasikan dengans
pemisah perintah:
, jadi agak aneh melihatnya pada awalnya.Java 7,
207206171139 byteSaya agak curang dengan jawaban pertama ini, karena saya menggunakan unicode pemogokan .
Penjelasan:
Java 7 (dengan AWT),
444429341 byteDicoret 444 masih teratur 444; (
Karena konsol Java tidak memiliki markup seperti mogok, Anda harus menggunakan Java AWT. Dan, jika Anda berpikir Java Console sudah bertele-tele, maka ini bahkan lebih buruk (saya tahu, saya tahu, sebagian besar dari Anda bahkan tidak bisa membayangkan Java 7 menjadi lebih buruk ..)
Penjelasan:
Output gif:
sumber
String[] a
dan menggunakan1e3
bukannya1000
1e3
, itu ganda, danThread.sleep
berharap lama.1000
lebih pendek dari(long)1e3
. :)Swing
, bukanSpring
, bukan? Saya hampir mengalami serangan jantung! Spring in a codegolf ... Juga, untuk menyimpan byte, Anda dapat menggunakan AWT, bukan Swing.void m(){new Frame(){public void paint(Graphics g){g.drawString("La La Land",99,99);try{Thread.sleep(1000);}catch(Exception e){}AttributedString s=new AttributedString("La La Land Moonlight");s.addAttribute(java.awt.font.TextAttribute.STRIKETHROUGH,1>0,0,10);g.drawString(s.getIterator(),99,99);}}.show();}
Python 3, 90 byte
Gunakan Unicode (U + 0336) untuk menerobos, karena terminal macOS tidak mendukung
\e[9m
perintah itu.sumber
Arduino,
332331 byteTidak bersaing, hanya untuk bersenang-senang.
Bill of material:
sumber
#include
Python3, 99 byte
sumber
l = 'La La Land
tidak bisa Anda menghindari+s
untuk -2 karakter? .Bash + pv, 62
sumber
SmileBASIC, 45 byte
Satu byte lebih sedikit berkat trik periode ajaib 12Me21.
Sejauh yang saya ketahui, SB tidak memiliki karakter yang dicoret, jadi saya menggunakannya
GLINE
sebagai gantinya. Jelas mengasumsikan tampilan yang jelas, gunakanACLS
jika Anda perlu.sumber
AHK, 102 byte
Saya sedikit curang untuk mendapatkan teks yang dicoret dengan menggunakan karakter unicode overlay penggabungan panjang . Ini dapat membuat penampilan yang aneh tergantung pada pengaturan Anda. Notepad memberikan tampilan yang bagus.
AutoHotkey jelas bukan bahasa yang paling efisien untuk ini, tetapi itu adalah tantangan yang menyenangkan. Hati-hati di mana Anda menjalankannya karena itu tidak membuat tampilan sendiri dan menghapus semua teks dari jendela apa pun yang aktif.
sumber
Swift, 392 byte
Swift + UIKit benar-benar tidak ideal untuk bermain golf! Jalankan ini di taman bermain XCode dan hasilnya akan ditampilkan di panel pratinjau.
sumber
l.textColor=UIColor.red
perlu?Jelly , 41 byte
Tidak berfungsi pada juru bahasa online.
sumber
Python (137 Bytes)
sumber
import
. Saya juga menyarankan untuk menyimpan "La La Land" sebagai variabel.TI-BASIC,
5753 bytePerhatikan bahwa ini menggunakan kemampuan TI-84 + CE dengan OS terbaru untuk berhenti selama 1 detik. Ini akan mengembalikan kesalahan synthax pada TI-84 +. Untuk pengujian, Anda dapat menghilangkan jeda 1 detik dengan menghapus garis itu. Ingat juga untuk menekan Zoom, 6 terlebih dahulu sehingga Anda berada di pengaturan jendela default, jika tidak, perintah baris tidak akan berfungsi.
sumber
SpecBAS - 58 byte
Setiap karakter berukuran 8x8 piksel, sehingga menarik garis dari 0,4 ke posisi relatif 80,4 (80 ditambahkan ke koordinat pertama dan 0 ke detik sehingga tetap pada garis yang sama).
sumber
MINYAK , 76 byte
Ganti
⎋
dengan karakter pelarian dan↩︎
dengan carriage return. OIL tidak memiliki perintah tidur apa pun, jadi saya menirunya menggunakan loop yang menghitung mundur dari 89999 menjadi 1. Dibutuhkan sekitar satu detik di komputer saya, tetapi mungkin tidak pada Anda.3 baris pertama diabaikan oleh penerjemah, kemudian mencetak (
4
) baris kedua (baris 1; "La La Land"). Struktur berikut adalah loop yang mengurangi angka besar di ujung sampai sama dengan 1. Pada akhirnya, saya hanya mencetak 3 baris pertama.sumber
PHP, tidak bersaing (64 byte)
menggunakan UTF-8:
--
singkatanU+0336
- tetapi saya cukup yakin bahwa itu tidak berfungsi berdiri sendiri.Jika tidak, coba
~"1I"
atau~I1
alih-alih--
(+3 atau +1 byte).Tidak ada waktu untuk menyimpannya di file atau mencari tahu cara mengatur konsol saya ke UTF-8; jadi saya tidak bisa menguji salah satu dari ini; tapi siapa pun bisa: tolong beri tahu saya apakah ini BS lengkap atau tidak.
sumber
Powershell, 63 byte
Hanya bekerja di PowerShell ISE. Non-bersaing, karena dicoret oleh satu karakter dan aku tidak bisa memperbaikinya.
sumber