Ular klasik kami telah mengembangkan ketidakseimbangan hormon pertumbuhan . Lebih buruk lagi, ekornya membeku di tempat! Diberikan masukan terarah seperti yang ditentukan dalam Figure 1
, menulis program untuk menentukan di mana ia akan tumbuh
Gambar 1. Input terarah.
Spesifikasi program
- Baca input karakter dengan karakter aktif
STDIN
. - Setelah membaca karakter, output ular ke
STDOUT
. Harap sertakan garis kosong di antara setiap kali Anda mencetak ular. - Ular itu terdiri atas
<>v^
dan satu kepala. Kepala ular mungkin setiap karakter putaran yang Anda pilih, sepertio
,0
,O
, atau☺
. - Kombinasi apa
wasd
pun valid untuk input. - Program Anda tidak boleh berasumsi bahwa input berada dalam jangka waktu tertentu.
- Ular itu bisa bertumpuk, menimpa
<>v^
. Lihat contoh untuk mekanika pertumbuhan ular. - Mengejar ruang kosong tidak apa-apa, tetapi ular Anda harus terlihat benar.
Mencetak gol
Ini adalah kode-golf . Skor Anda adalah jumlah karakter dalam program Anda. Menang skor terendah!
Contoh ular:
Memasukkan: ddddssaassdddddww
Keluaran:
>>>>v
v
v<< ☺
v ^
>>>>>^
Memasukkan: dddsssaaawww
Keluaran:
☺>>v
^ v
^ v
^<<<
Memasukkan: dddsssdddddasddddwww
Keluaran:
>>>v
v ☺
v ^
>>>>v< ^
>>>>^
Memasukkan: dddwwdddssssaaaaaaaaawww
Keluaran:
>>>v
☺ ^ v
^ >>>^ v
^ v
^<<<<<<<<<
Memasukkan: ddddssssaawwddddd
Keluaran:
>>>>v
v
>>>>>☺
^ v
^<<
Memasukkan: dddddssaawwwwddddd
Keluaran:
>>>>>☺
^
>>>^>v
^ v
^<<
Memasukkan:
ddddaaaasssssdddddddddddwwwwwaaaasssssdddddddddddwwwwwwwwwwsssssaaaasssssdddddddwwwwwddddssaaaasssddddaaaassssssssssdddwwwwwwwddddswaaaassssddaasssaaaaaaaaaawwwwddddssssaaaaaaaaaaawwwwddddsssssssssaaaa
Keluaran:
v
v
v
v
v
v<<<< v<<<< v<<<< >>>>v
v v ^ v ^ ^ v
v v ^ v ^ v<<<<
v v ^ v ^ v
v v ^ v ^ v
>>>>>>>>>>>>>>>>>>>>>v<<<<
v
v
v v<<<<
v v ^
v v
>>>>v >>>>v v v
^ v ^ v v v<<
^ v ^ v v v
^ v ^ v v v
^<<<v<<<<<<<<<<<<<
v
v
v
v
O<<<<
Jawaban:
Ruby, 207 karakter
Tidak Disatukan:
(lambda untuk
a
menulis kembali karena baris tugas di atas menulis tidak lagi di papan tulis)sumber
ECMAScript 6 Javascript (399
401431)Harus dijalankan di browser yang mendukung ECMAScript 6 karena fungsi panah.
Berikut adalah biola yang telah diubah untuk berjalan di peramban (umum) apa pun dengan tidak menggunakan fungsi panah. Mereka juga mencetak ke
textarea
:Versi Golf
GIF animasi:
Salah satu contoh OP:
Contoh dari Stretch Maniac :
Tidak disatukan
Berikut ini adalah (sedikit) versi ungolfed dari waktu sebelum saya mulai benar-benar bermain golf bawah:
sumber
convert
. Cukup mudah :)sed, 71
Golfscript,
165126Pendekatan yang sama dengan jawaban saya sebelumnya, tetapi memposisikan kursor dengan benar sebelum dan sesudahnya. Saya cukup bangga dengan pendekatan penentuan posisi kursor - pada dasarnya, ia menjalankan ular secara terbalik, tanpa mencetak karakter.
sumber
echo "dddddssaawwwwddddd" | sed -e 's/w/\^\x1B[D\x1B[A/g' -e 's/a/<\x1B[2D/g' -e 's/s/v\x1B[S\x1B[D/g' -e 's/d/>/g' -e 's/$/@/'
tidak memberikan hasil yang benar untuk saya.\n
s setelah perintah@
Anda masuk ke tempat lain.Java - 646
Mungkin juga yang pertama!
Saya yakin Anda semua bisa mengalahkan ini.
un (semacam) golf
Lebih kecil -
masukan - dddsssdddwwwwaaaaaaaassssssssssddddddddddddddddd
masukan - dddsssddddasddddwww
favorit pribadi saya - dwdwdwddaasassdddddwdwdwddsdswawaasassdddddddwdwdwddsdswawaasassddddwwwwwwwssssssdsdddwwwwddaassddaassddddsssdddwdwdwddaasasassddddwwwwssssssssasasaaawdwwdwddwwdddddddwdwdwddsdswawaasassddddddddddwwdwwwwaasssassdsdddddddwdwdwwwwasasssssssssssdwwwwwwwddd
sumber
C # 607
"Tidak digabungkan" dengan spasi putih (ini tidak akan disinkronkan dengan versi golf):
sumber
Python 3: 259 Bytes
Saya memutuskan untuk menyimpan ular di dalam dikt, dengan koordinat untuk kunci. Kemudian temukan dan ulangi rentang output, gantikan ruang kosong.
PS. Golf pertama saya :) Beri tahu saya jika jawaban saya tidak tepat
sumber
O
bukannya☺
menghemat 2 byte.☺
adalah herring merah.☺
sebenarnya tidak dihitung sebagai 3 byte.O
, jadi saya tidak akan khawatir tentang hal itu. Jelas dari kode bahwa itu masih akan berfungsi untuk karakter lain tetapi menggunakan☺
memungkinkan Anda dengan mudah menjalankan kasus uji dari tantangan tanpa perubahan.#coding=utf-8
. Catatan yang#coding=utf-16
tidak berfungsi. Karenanya☺
harus dihitung sebagai 3.Python 2.7 - 274 byte
Versi tidak disatukan
sumber
SyntaxError: invalid syntax
.05AB1E ,
35343028 byteDigunakan
0
sebagai kepala ular.-4 byte terima kasih kepada @Grimy .
Cobalah secara online (tidak ada rangkaian uji untuk semua kasus uji sekaligus, karena tidak ada cara untuk mengatur ulang Kanvas, sehingga output akan tumpang tindih ..).
Penjelasan:
Lihat tip tambang 05AB1E ini (bagian Bagaimana mengompresi string bukan bagian dari kamus? Dan Bagaimana mengompresi bilangan bulat besar? ) Untuk memahami mengapa
.•₃º•
ini"adsw"
danŽO^
sekarang6240
.Adapun penjelasan singkat tentang Canvas builtin
Λ
dan tiga argumennya:Argumen pertama: length (s): ukuran garis yang ingin kita gambar. Karena kita harus ingat tumpang tindih, kita menggunakan ukuran 2 untuk setiap karakter, dan 1 tambahan untuk kepala ular.
Argumen kedua: string: karakter yang ingin kita tampilkan. Yang merupakan karakter dalam kasus ini, ditambahkan dengan karakter kepala ular.
Argumen ketiga: direction (s): arah garis karakter ini dari panjang yang diberikan harus ditarik. Secara umum kita memiliki arah
[0,7]
yang memetakan ke arah ini:6240
Lihat tip tambang 05AB1E ini untuk penjelasan lebih terperinci tentang kanvas bawaan
Λ
.sumber
γ
diperlukan sama sekali. Ini sepertinya bekerja dengan baik.Perl - 394
Bukan yang terpendek, tapi itu mengalahkan Javascript, C # dan Java setidaknya.
Beberapa trik:
Hal-hal yang menyakitkan:
sumber
C - 273 byte - dengan Input Interaktif!
Bidang dicetak setiap kali karakter dimasukkan dan tumbuh jika kepala ular mendekati tepi. Saya tidak tahu seberapa portabelnya - seseorang di Internet mengatakan getch () tidak berfungsi pada platform non-Windows. Sulit mengatakan apakah ASCII 1 akan terlihat seperti wajah yang tersenyum.
Versi golfnya cukup menjengkelkan karena tidak ada cara untuk keluar dari program dengan anggun. Control-C tidak bekerja untuk saya. Di sisi lain, versi yang tidak disatukan berakhir jika karakter selain 'w', 'a', 's', atau 'd' dimasukkan.
Apa yang disebut "ungolfed":
sumber
05AB1E , 23 byte
Cobalah online!
Penjelasan:
sumber