var QUESTION_ID=91182,OVERRIDE_USER=26997;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>
Jawaban:
Excel VBA,
142179175160155 bytePetunjuk:
Atur lembar kerja Excel di mana sel A1 adalah input dan kolom C sebagai output.
Setel perataan teks di kolom C ke tengah. Tulis dan jalankan kode berikut di Jendela Segera:Ungolfed the code:
Keluaran:
Catatan: Fon dan warnanya hanyalah pilihan pribadi.
15 byte disimpan karena saran edc65. Terima kasih.
5 byte disimpan karena saran TaylorScott. Terima kasih.
sumber
"_"
ke T. Suka ini[C1]="|":[C2]="/_\":T=[A1]&" ":For i=1To Len(T):Cells(i+2,3)="|"&Mid(T,i,1)&"|":Next:Cells(i+2,3)="/__\":Cells(i+4,3)="VvV":Columns(3).HorizontalAlignment=-4108
[C:C].HorizontalAlignment=-4108:[C1]="|":[C2]="/_\":T=[A1]&"_":For i=1To Len(T):Cells(i+2,3)="|"&Mid(T,i,1)&"|":Next:Cells(i+2,3)="/__\":Cells(i+3,3)="VvV
[C:C].HorizontalAlignment=3:[C1]="|":[C2]="/_\":T=[A1]&"_":For i=1To Len(T):Cells(i+2,3)="|"&Mid(T,i,1)&"|":Next:Cells(i+2,3)="/___\":Cells(i+3,3)="VvV
Perl 6, 75 byte
sumber
slurp.chomp.comb
... Perl itu aneh.{[~] " |\n /_\\\n",|(" |$_|\n"for $_.comb)," |_|\n/___\\\n VvV"}
65 byteJavaScript (ES6), 54
Mudah
Uji
sumber
Sebenarnya, 40 byte
Ya, baris baru itu seharusnya ada di sana.
Cobalah online!
Penjelasan:
Baris baru diwakili oleh
\n
untuk pemformatan yang lebih mudahsumber
C,
83, 82 byteTes utama:
sumber
F(char*c){for(puts(" |\n /_\\");*c;printf(" |%c|\n",*c++),puts(" |_|\n/___\\\n VvV");}
puts
harus dijalankan hanya sekali, bukan setelah setiapprintf
. Tapi ya, 1 byte disimpan, yay!Python 2,
93666261 byteA FGITW. Mungkin bisa sangat bermain golf. Saran diterima.
Sunting: 27 bytes berkat Mego. 4 byte berkat TheBikingViking. Terima kasih 1 byte ke user3030010.
Cobalah secara Online!
sumber
PHP,
73726962 byteMengambil string untuk dicetak di badan pesawat sebagai argumen pertama dari baris perintah ketika skrip dipanggil.
Perbaikan:
join
.Cobalah online!
Ini sangat menyenangkan! :-)
Contoh panggilan:
sumber
brainfuck , 179 byte
Cobalah online!
sumber
Ruby,
5755 byte-2 bytes oleh @ValueInk
Versi lama, mengasumsikan baris baru dalam input:-5 bytes dengan mengasumsikan bahwa tidak ada baris baru dalam input, seperti yang disarankan oleh @manatwork. Input baris-kurang dapat diberikan misalnya dengan
echo -n
, misalnyaecho -n hey | ruby rocket.rb
.Ruby,
6260 bytesumber
.chop
.\\
dengan Anda\
. (Dalam string yang dikutip tunggal, karakter tidak lolos, kecuali untuk\'
.Haskell, 58 byte
sumber
Retina ,
4437 byte7 byte berkat Martin Ender.
Cobalah online!
sumber
Jelly ,
3736 byteSkor yang sama dengan entri yang ada, tetapimenggunakan fitur baru yang menyenangkan -ŒB
, versi vektor dariŒḄ
, yang dikenal sebagai pentalan. Memantul berjalan melalui daftar sampai akhir lalu kembalix[:-1]+x[::-1]
misalnya:bounce("codegolf") == "codegolflogedoc"
.-1 byte berkat Dennis (gunakan versi bouncing yang di vektorisasi)
Bagaimana?
Uji di TryItOnline
sumber
ŒB
kependekan dariŒḄ€
.Pyke ,
403735 byte(Diperbarui untuk bekerja dengan versi terbaru)
Coba di sini!
sumber
V ,
41,39 byteCobalah online!
Perhatikan bahwa untuk beberapa alasan, penerjemah online menghasilkan hasil yang tidak terduga, jadi saya mendorong versi debug ke penerjemah online yang berjalan jauh lebih lambat. Seharusnya menghasilkan hasil yang benar sekarang.
Karena program ini mengandung karakter yang tidak patut dicetak, berikut adalah hexdump:
sumber
R, 163 byte
Tidak Disatukan:
Saya tidak terlalu suka fakta bahwa saya harus meletakkan beberapa spasi di baris terakhir, tapi hei!
sumber
PowerShell v2 +,
595551 byteCobalah online!
Menyalahgunakan default
Write-Output
di akhir eksekusi untuk menempelkan baris baru di antara setiap elemen, karena ini semua hanyalah string literal pada pipa. Satu-satunya bit "tricky" adalah loop melalui setiap elemen input$args
sebagai char-array untuk mendapatkan tubuh roket.Menggunakan baris baru literal seperti yang ditunjukkan oleh ConnorLSW untuk menghemat beberapa byte.
-4 byte lagi berkat Veskah.
sumber
\r
PowerShell, 70 byte
Setel $ a ke input.
Jika harus mengambil input selain dari variabel, ia dapat disalurkan ke:
Contoh:
sumber
Mathematica, 50 byte
Fungsi anonim. Mengambil daftar karakter sebagai input dan mengembalikan string sebagai output.
sumber
PHP,
10810088 byte-8 Bytes berkat kucing bisnis
-12 byte berkat YetiCGN
cukup mudah
Ideone
sumber
foreach(str_split($a)as$c)
bukan yang lain untuk loop. Selain itu, Anda dapat memasukkan $ c langsung ke string jika Anda menggunakan tanda kutip ganda:echo" |$c| ....";
function f($a){echo' |. /_\\',preg_replace('/./',' |$0|',$a),' |_|/___\\ VvV';}
$a
dengan$argv[1]
dan menjalankan dari baris perintah membuatnya lebih pendek.C #,
106978074 byteSaya tidak punya C # 6 untuk mencoba di atas tetapi saya yakin itu akan berhasil
Disimpan 7 byte berkat Kevin Cruijssen
Terima kasih kepada manatwork karena mengarahkan saya ke arah yang benar untuk menghemat 17 byte
Disimpan 6 byte berkat susu
sumber
using System.Linq;s=>$(" |\n /_\\\n{string.Join("",s.Select(c=>" |"+c+"|\n"))} |_|\n/___\\\n VvV");
( 100 byte )Select
:" |"+c+"|\n"
→c+"|\n |"
bersamaan dengan memindahkan `|` dari setelah{}
sebelumnya.\n
2 byte. Jadi Anda akan menghemat 5 byte lebih banyak dengan menggantinya dengan baris baru. Ya, jika Anda menggunakan Visual Studio maka secara default baris baru akan menjadi 2 byte, tetapi Anda dapat membuka file sumber dalam hex editor (Visual Studio memilikinya) dan menghapus karakter carriage return. Outputnya akan tetap sama.C,
131, 121 bytesumber
p=s
ke inisialisasi, dan menggunakanp
di dalamscanf
:main(){char s[99],*p=s;scanf("%s",p);P(" |\n /_\\\n");while(*p)P(" |%c|\n",*p++);P(" |_|\n/___\\\n VvV\n");}
Jelly,
3837 byteCobalah online!
Gagasan yang sama dengan jawaban Pyth saya, tetapi ini mungkin bisa golf.
sumber
05AB1E ,
50474337 byteCobalah online!
Disimpan 9 byte berkat Adnan.
sumber
IðJ
di awal program, yang juga termasuk dasar badan pesawat.«
sebelumnya tanpa banyak keberuntungan. Ini jauh lebih baik.U
dan menggantiX
dengans
juga menyimpan byte :).Kotlin, 68 byte
Cukup mudah. Menggunakan string multiline dan penggantian regex. Ini adalah lambda dengan
(String)->String
tipe. Uji:sumber
Gema, 50 karakter
Contoh dijalankan:
sumber
BASH
8470Disimpan 14 berkat manatwork
Lebih dari setengah dari byte adalah untuk menambahkan hidung, dan mesin.
sumber
grep
?(cat&&echo _)|sed 's~.~ |&|\n~g;1s~^~ |\n /_\\\n~;$s~$~/___\\\n VvV~'
. Sebenarnya saya tidak melihat alasan untuk menggunakancat
danecho
baik. Akan lebih pendek diubah menjadised
solusi murni .GolfScript,
6151 byteGolf kode pertama saya, saya harap ini cukup bagus.
Penjelasan
Cobalah online!
sumber
Vim,
4139 byteDi sini
<End>
secara harfiah kunci "Akhir".Tidak dapat dicetak jadi:
sumber
GNU sed ,
544948 bytesIni adalah jawaban pertama saya terhadap tantangan di situs ini. Solusinya sederhana, terutama pencetakan, jadi saya menghabiskan waktu memastikan tidak bisa golf lagi.
Cobalah online!
Maju cepat setengah tahun kemudian, saya menulis ulang skrip, menggunakan trik untuk ukuran yang baik dan memutarnya menjadi 1 byte lebih pendek. Nah, itu kemajuan!
Penjelasan: ruang pola pada setiap langkah disebutkan untuk kejelasan, diberikan contoh input "GO"
sumber
Lua,
83, 92 bytefunction f(x)return' |\n /_\\\n'..x:gsub('(.)',' |%1|\n')..' |_|\n/___\\\n VvV'end
sumber