... dan golf asli untuk teman kode saya.
Ini adalah tantangan berdasarkan komik XKCD berusia satu tahun yang sebagian besar terdiri dari roti panggang (parodi dari komik pertama) mengikuti pola yang berbeda, tetapi dengan sedikit variasi.
Tugas Anda adalah menulis sebuah program (atau fungsi) yang mengambil bagian pertama dari setiap roti bakar dari komik (semuanya hingga dan termasuk friends
) sebagai input (melalui stdin atau argumen fungsi) dan menghasilkan (atau mengembalikan) teks tepat dari babak kedua. Anda tidak harus menangani input yang tidak valid, celah standar berlaku, kode terpendek dalam byte menang.
Contohnya
Untuk membantu mereka yang tidak ingin menyalin roti panggang dari tempat lain, inilah semuanya, dipisahkan menjadi input dan output.
Input: Champagne for my real friends
Output: and real pain for my sham friends!
Input: Pseudopods for my real friends
Output: and real pods for my pseudo-friends!
Input: Petticoats for my real friends
Output: and real coats for my petty friends.
Input: Loosestrife for my real friends
Output: and real strife for my loose friends!
Input: Ladybugs for my real friends
Output: and real bugs for my lady friends!
Input: Single-payer for my real friends
Output: and RealPlayer for my single friends.
Input: Tumbleweeds for my real friends
Output: and real weed for my Tumblr friends!
Input: Fauxhawks for my real friends
Output: and real hawks for my faux friends!
Input: Platonic solids for my real friends
Output: and real solids for my platonic friends!
Single-payer
(bukanSingle-player
).Single-payer
.Jawaban:
Retina , 119 byte
Versi sebelumnya tidak mengelola dengan benar ruang dalam "padatan platonis", ini berfungsi dan lebih pendek :)
Cobalah online!
Ini mengubah input menjadi output melalui serangkaian pergantian.
Bagian yang paling menarik adalah substitusi ini (semacam golf regex):
Yang melakukan hampir semua pekerjaan, dengan memisahkan kata pertama, menempatkan potongan-potongannya di tempat yang tepat, menghilangkan ruang ekstra, dan membangun struktur output. Untuk bekerja dengan benar pada test case "Tumbleweeds" ini tergantung pada subtitusi sebelumnya "eds" -> "ed".
Sisanya sebagian besar terdiri dari pergantian yang menangani kasus-kasus khusus. Bagian menarik lainnya adalah:
Ini mengubah segalanya kecuali "T" (untuk Tumblr) menjadi huruf kecil.
Ini menempatkan "." pada akhir setiap kalimat yang mengandung kata dengan "y" beberapa huruf setelah "p" ("picik" dan "pembayar" dalam praktiknya). Lalu beri tanda "!" di akhir semua kalimat yang diakhiri dengan "s" (semua yang lain).
sumber
platonic
. Perbaikan yang disarankan: TIO (+5 byte)Python 2,
291269293255247 byteTerima kasih
Erik the Outgolfer
telah menghemat 22 byte!+24 byte untuk memperhitungkan beberapa output yang berakhir dengan
.
bukannya!
Solusi sederhana untuk memulai. Periksa huruf kedelapan input, seperti yang disarankan dalam komentar, dan mencari output yang sesuai dalam
kamusarray.Cobalah secara Online!
sumber
Single-payer for my real friends
...RealPlayer
adalah kasus khususSOGL , 143 byte
Ini menggunakan string ini sebagai bagian utama. "|" adalah pemisah dan "_" adalah penampung ruang jadi split akan bekerja dengan benar.
Contoh input: "Padatan Platonis untuk teman-teman saya yang sebenarnya" Penjelasan:
sumber
Python 3 ,
788,403,359396 byteVersi terbaru
Ini sekarang usaha saya yang kelima. Saya sudah berhasil setengah dari program asli saya. Sekarang termasuk "-" yang hilang dan saya percaya adalah solusi lengkap. Masih saya curiga di sisi besar; tetapi lebih dekat ke gawang. Saya sudah banyak membantu . Terima kasih untuk semua panduannya.
Cobalah online!
Posting Asli
Ini adalah posting pertama saya di golf kode jadi permintaan maaf sebelumnya untuk program saya yang canggung. Tidak dapat melihat bagaimana suatu program dapat dibuat untuk mengubah "Champagne" menjadi "pain", "sham" dengan menguraikan kata-kata. Namun saya ingin melihat orang lain menyelesaikannya. Jadi, ketika tingkat kemampuan saya menentukan bahwa program saya perlu tahu sebelumnya bahwa "Champagne" adalah "pain", "sham", tampaknya ada sedikit gunanya dalam benar-benar mengkode permintaan input. Sebagai hasilnya saya meninggalkannya dan menjadi sedikit literal dengan hasil cetak saya. Semoga tidak apa-apa :)
sumber
Röda ,
299292288259 byte4 byte disimpan berkat @fergusq untuk menggunakan
,
alih-alih..
dalampush
pernyataanBytes disimpan berkat @fergusq yang menunjukkan jalan
indexOf
Cobalah online!
Sangat dekat dengan Python ... sangat dekat ....
Langkahmu, Python.Penjelasan
sumber
..
dengan,
.r=indexOf(a[7:8],"noarspekc")
.JavaScript (ES6),
230228221216 byteUji
Tampilkan cuplikan kode
sumber
PHP,
202220204203 bytesumber
Perl,
173168 bytesMenghapus baris baru dan lekukan, ini menjadi 173 byte kode Perl5. Tanpa malu-malu mencuri regexp pertama dari jawaban Retina Leo. (Punyaku beberapa karakter lagi)
Untuk versi perl5> = 5.14 5 byte lainnya dapat dicukur dengan eval dan modifier substitusi reg / baru. Berakhir dengan 168 byte:
Cobalah online!
sumber
C, 367 byte
Tidak berakhir sesingkat kelihatannya.
sumber
Java 7,
585553 byte-32 byte berkat @Zircon .
Pasti bisa bermain golf dengan menggunakan sesuatu yang berbeda dari Peta ..
Penjelasan:
Kode uji:
Coba di sini. (ideone.com disadap akhir-akhir ini, jadi saya menggunakan TIO sekarang ..)
sumber
put
bukannyam.put
.C (gcc) , 311 byte
Pola yang jelas, tetapi begitu banyak pengecualian. Tetap saja, pasti ada cara yang lebih baik dari ini!
Cobalah online!
sumber