Senar berliku-liku terlihat seperti ini:
T AnE eOf ifi ing
h s x l A k e r
isI amp Sna dSt
Tugas Anda
Ambil string s
dan ukuran n
, lalu keluarkan string snakified. Masukan ThisIsAnExampleOfaSnakifiedString
dan 3
akan menghasilkan contoh di atas.
Spesifikasi
s
hanya akan berisi karakter ASCII antara titik kode 33 dan 126 inklusif (tanpa spasi atau baris baru).s
panjangnya antara 1 dan 100 karakter.n
adalah bilangan bulat yang mewakili ukuran setiap segmen string output. Setiap baris karakter (atas / bawah atau kiri / kanan) yang membentuk kurva dalam "ular"n
panjangnya karakter. Lihat contoh uji untuk contoh.n
akan antara 3 dan 10 inklusif.- String output selalu mulai mengarah ke bawah.
- Ruang tambahan di setiap baris diperbolehkan.
- Mengejar baris baru di akhir output juga diperbolehkan.
- Ruang terkemuka tidak diizinkan.
- code-golf berarti kode terpendek dalam byte yang menang.
Uji Kasus
a 3
a
----------
Hello,World! 3
H Wor
e , l
llo d!
----------
ProgrammingPuzzlesAndCodeGolf 4
P ngPu Code
r i z d G
o m z n o
gram lesA lf
----------
IHopeYourProgramWorksForInputStringsWhichAre100CharactersLongBecauseThisTestCaseWillFailIfItDoesNot. 5
I gramW tStri 100Ch gBeca CaseW DoesN
H o o u n e a n u t i t o
o r r p g r r o s s l I t
p P k n s A a L e e l f .
eYour sForI Which cters ThisT FailI
----------
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 10
! <=>?@ABCDE `abcdefghi
" ; F _ j
# : G ^ k
$ 9 H ] l
% 8 I \ m
& 7 J [ n
' 6 K Z o ~
( 5 L Y p }
) 4 M X q |
*+,-./0123 NOPQRSTUVW rstuvwxyz{
code-golf
string
ascii-art
code-golf
code-golf
string
balanced-string
decision-problem
code-golf
string
geometry
grid
code-golf
tips
lisp
code-golf
quine
tips
king-of-the-hill
code-challenge
math
code-golf
string
palindrome
math
fastest-code
code-golf
string
counting
code-golf
code-golf
internet
code-golf
quine
source-layout
hello-world
code-golf
math
number
sequence
arithmetic
code-golf
ascii-art
grid
code-golf
number
grid
code-golf
string
crossword
code-golf
code-golf
ascii-art
grid
counting
code-golf
code-golf
math
sequence
arithmetic
number-theory
code-golf
code-golf
graphical-output
geometry
random
code-golf
ascii-art
grid
counting
code-golf
string
ascii-art
code-challenge
test-battery
code-golf
string
code-golf
ascii-art
kolmogorov-complexity
code-golf
interpreter
code-golf
math
sequence
code-golf
math
primes
set-partitions
code-golf
pengguna81655
sumber
sumber
Jawaban:
Pyth,
4845444342 byteCobalah online.
Pendekatan ini melakukan trailing spasi penyalahgunaan yang sama dengan jawaban Ruby.
sumber
Ruby, 87 byte
Beberapa penyalahgunaan kecil dari aturan
Trailing spaces on each line are allowed.
Setiap baris outputw
panjang karakter, ditambah baris baru, di manaw
panjang string asli, yaitu cukup lama untuk menampung seluruh input. Oleh karena itu ada banyak ruang putih yang tidak perlu ke kanan untuk ukuran besarn
.Tidak digabungkan dalam program uji
sumber
JavaScript (ES6), 143 byte
Di mana
\n
merupakan baris baru literal. Tidak Disatukan:sumber
Pyth,
857459 byteKl@Q0J0=Y*]d-+*@Q1K@Q1 1FNr1@Q1=XY-+*KNN1b;VK=XYJ@@Q0N=+J@[+K1 1-_K1 1).&3/N-@Q1 1;sY
=G@Q1=H@Q0KlHJ0=Y*]dt+*GKGFNr1G=XYt+*KNNb;VK=XYJ@HN=+J@[hK1t_K1).&3/NtG;sY
Terima kasih kepada @FryAmTheEggman yang telah banyak membantu saya!
Golf sebanyak yang saya bisa. Coba di sini! Untuk beberapa alasan, garis pembungkus membuat output aneh. Anda mungkin ingin melihat output pada halaman penuh
Penjelasan
Tarik napas sebentar, dan fokus. Ini dapat dipecah menjadi tiga bagian, seperti hampir semua algoritma "klasik".
Bagian pertama
Di sinilah variabel diinisialisasi. Itu dapat dibagi menjadi dua bagian:
bagian kedua :
Bagian kedua
Ini berisi logika aktual.
Bagian ketiga
Ini adalah bagian output. Tidak terlalu menarik ...
BONUS
Saya menulis program pyth dari skrip python ini.
sumber
JavaScript (ES6), 122 byte
Algoritma yang sama dengan jawaban @ LevelRiverSt.
sumber
C, 138 byte
Ini menggunakan pelarian ANSI. Bekerja di terminal linux.
Tidak Disatukan:
sumber
JavaScript (ES6), 131
Algoritma: memetakan posisi
x,y
dalam output ke indeks dalam string input, entah bagaimana jawaban ini (tidak terkait).Saya meminjam dari @LevelRiverSt trik menjaga lebar horisontal sama dengan panjang input.
Kurang golf
Ini adalah draft kerja pertama sebelum bermain golf
Uji
sumber
Pyth, 122 byte
Saya telah membuat rumus untuk menghitung posisi x, y dari setiap karakter berdasarkan ukuran segmen / modulo, tetapi mereka mendapat lebih besar dari yang saya harapkan: c
Penjelasan:
Tes di sini
Untuk rumus Matematika, saya menggunakan mod untuk menghasilkan 0/1 bendera dan kemudian dikalikan dengan faktor berdasarkan input
n
, menambahkan spreadsheet dengan setiap langkah pada potongan di bawah iniTampilkan cuplikan kode
sumber
PHP,
127126124120119118117110106 byteMenggunakan penyandian ISO-8859-1.
Jalankan seperti ini (
-d
ditambahkan hanya untuk estetika):Tidak Disatukan:
Tweaks
<
alih-alih!=
0
pada awalnya, jadi saya tidak perlu menambahkan sebelumnya0
(jika output pertama dalam sebuah baris adalah0
), menghasilkan kebenaran00
.$o[$y]
==
untuk membandingkan arah dengan 1 untuk mengubah koordinat xnull
keint
untuk string offset, karena string offset dilemparkan ke int$c
sumber