ทั้งหมดบนรถไฟ ASCII


45

ทั้งหมดบนรถไฟ ASCII!

    o O O   ___     ___     ___     ___     ___     ___     ___     ___     ___  
   o       | C |   | O |   | D |   | E |   |   |   | G |   | O |   | L |   | F | 
  TS__[O]  |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___| 
 {======|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|
./o--000'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'

คุณควรเตรียมตัวขี่รถไฟเพราะคุณกำลังจะสร้างรถไฟที่คุณกำลังขี่อยู่ รับสตริงsเอาท์พุทขบวนรถไฟที่เกิดขึ้นอย่างเต็มที่ตามที่อธิบายไว้ข้างต้น สิ่งแรกที่เอาท์พุทมักเป็นเอ็นจิ้นที่จะดึงสายของคุณตามที่ปรากฎด้านล่าง:

    o O O 
   o      
  TS__[O] 
 {======| 
./o--000' 

การติดตามหัวรถจักรคือรถรางที่บรรจุตัวละครของสินค้าอันมีค่าของคุณ เพื่อประหยัดความสับสนเมื่อขนถ่าย บริษัท ของคุณได้มอบหมายให้คุณติดป้ายด้านนอกของรถยนต์เหล่านี้ รถยนต์ที่มีปัญหาจะมีลักษณะเช่นนี้เสมอ:

   ___ 
  | # |
  |___|
_|"""""|
"`-0-0-'

ในกรณีที่#เป็นตัวแทนของตัวละครที่อยู่ภายใน "สินค้า" ถือ การผูกมัดเครื่องยนต์ให้กับรถยนต์แต่ละคันก็เป็นส่วนหนึ่งของงานของคุณเช่นกันเนื่องจากคุณได้รับมอบหมายให้ดูแลการไหลและความสำเร็จของการขนส่งทั้งหมดนี้ ดังนั้นเมื่อคุณติดป้ายรถทุกคันและได้เครื่องยนต์บนรางรถไฟคุณต้องแน่ใจว่ารถไฟถูกประกอบและพร้อมที่จะม้วน

กฎระเบียบ

  • อินพุตเดียวที่โปรแกรมของคุณควรใช้คือสตริงเดี่ยว
  • เครื่องยนต์จะต้องส่งออกเสมอแม้ว่าการจัดส่งของคุณจะว่างเปล่า
  • รถแต่ละคันสามารถมีตัวละครได้เพียงตัวเดียวอย่าผลักดันโชคของคุณคุณอาจทำให้สินค้าเสียหายได้
  • คุณต้องรองรับเฉพาะอักขระ ASCII ที่พิมพ์ได้ดังต่อไปนี้: _-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
    หากคุณทำสิ่งต่างๆมากขึ้นก็ไม่เป็นไรเช่นกัน
  • ยอมรับ 1-2 ช่องว่างต่อท้ายเป็นบรรทัดใหม่ต่อท้ายเดียว
  • นี่คือ , การนับไบต์ที่สั้นที่สุด


1
ฉันไม่คิดว่านี้เป็นจริงKolmogorov ซับซ้อน ขึ้นอยู่กับการโพสต์เมตานี้คำถามนี้เป็นที่แน่นอนบนเส้นแบ่งระหว่างความเหมาะสมและไม่เหมาะสมคำนิยามของเราและผมเองจะบอกว่ามันไม่พอดีกับแท็กคล้ายกับคำถามนี้ซึ่งยังถามสำหรับประเภทของสตริงห่อ
ข้าวสาลีตัวช่วยสร้าง

5
นี่คือศิลปะ ASCII
CAD97

@WeatWizard มันเป็นส่วนผสมของหลายประเภท เครื่องยนต์จะตกอยู่ภายใต้ความซับซ้อนของ kolmogrov สิ่งทั้งหมดภายใต้ ASCII-Art และมันอาจตกอยู่ในการจัดการสายอักขระเล็กน้อย
Magic Octopus Urn

ฉันรู้สึกว่าการบีบอัดรูปแบบที่แท้จริงของรถไฟจะคุ้มค่ากับแท็ก แต่ฉันจะลบออกเพื่อหยุดการโต้เถียง
Magic Octopus Urn

คำตอบ:



37

JavaScript (ES6), 149 144 ไบต์

s=>`    o O Oa   ___  
   o     a  | $& | 
  TS__[O]a  |___| 
 {======|a_|"""""|
./o--000'a"\`-0-0-'`.replace(/a(.*)/g,(_,c)=>s.replace(/./g,c))

ฉันไม่คิดว่าเครื่องยนต์สามารถบีบอัดได้ แต่อาจเป็นไปได้

ตัวอย่างการทดสอบ


อักขระที่ซ้ำกันจำนวนมากควรเป็นไปได้ที่จะบีบไบต์เพิ่มเติมออกไป
orion

17
ใคร ๆ ก็สามารถเห็นรถไฟที่บรรจุอยู่ในซอร์สโค้ด :-)
หลุยส์เมนโด

15
ขึ้นต้นแล้วเพราะรหัสคล้ายกับรถไฟ
Rohan Jhunjhunwala

คะแนนโบนัสเพราะมันทำงานอยู่ที่นั่นในเบราว์เซอร์!
DGM

6

Befunge ขนาด276 270 ไบต์

p1p~:7>7+#:`#~_$:v
>#p0p10:p00:+1g00_v#:
v"!!```!!!"v>0p01g\-0g1+53p  
v"!}!#!}!!"v0 p115<
v"!}```}!!"v^:-1<
v"}#####}`">00g:|
>"(.1.1.a#"^+<v1<
v"P!P!p!!! "v5>g00p
v"!!!!!p!!!"v6
v"^P\``TU!!"vp
v"}>>>>>>|!"v+
>"(111..p0/"v6
v-1:g110">>"<g
>:11p!#v_p011^
#-:#1_@>$$$$>,#

ลองออนไลน์!

คำอธิบาย

รถยนต์และเครื่องยนต์ได้รับการเข้ารหัสเป็นสองชุดห้าสายในบรรทัดที่ 3 ถึง 12 ค่าอักขระจะถูกปิดด้วย 1 เพื่อหลีกเลี่ยงการจัดการกับอัญประกาศคู่ซึ่งไม่สามารถใช้ในสตริง Befunge

รหัสทำงานโดยการสร้างชุดอักขระที่จำเป็นในการเรนเดอร์รถไฟในกองซ้อน สำหรับแต่ละบรรทัดของการส่งออกสตริงรถยนต์ที่เหมาะสมจะถูกเพิ่มลงในสแต็กเป็นครั้งแรกซ้ำหลาย ๆ ครั้งตามความจำเป็นสำหรับการขนส่งสินค้าและจากนั้นคัดลอกหนึ่งของสายเครื่องยนต์ที่เหมาะสม

หลังจากสร้างแต่ละบรรทัดแล้วลูกศรชี้ลงทางซ้ายของสตริงจะถูกแทนที่ด้วยลูกศรขวาดังนั้นการวนซ้ำครั้งถัดไปของลูปจะทำตามเส้นทางที่แตกต่างกันผ่านรหัสโดยใช้คู่สตริงที่แตกต่างกันสำหรับรถยนต์และ เครื่องยนต์

เมื่อข้อมูลทั้งหมดถูกสร้างขึ้นบนสแต็กจะมีลูปการเรนเดอร์สุดท้ายซึ่งเขียนอักขระลบออก 1 แต่ละครั้งเพื่อบัญชีการเข้ารหัสเริ่มต้น

เป็นโบนัสแหล่งที่มาได้รับการออกแบบในรูปของป้อมปืนในกรณีที่รถไฟเข้ามาโจมตี นักกอล์ฟทำลายป้อมปืนของฉัน


นักกอล์ฟทำลายป้อมปืนของฉัน LOL +1 แต่มันเต้น C # และ Java
Zacharý

6

PHP, 218 211 204 187 183 ไบต์

    o O O<?for(;$y<5;print"\n".["   o     ","  TS__[O]"," {======|","./o--000'"][+$y++])for($p=0;$c=a&$argn[$p++];)echo["   ___  ","  | $c | ","  |___| ",'_|"""""|',"\"`-0-0-'"][+$y];

รับอินพุตจาก STDIN; -nRทำงานด้วย

การบีบอัดเอ็นจิ้นหรือเกวียนจะต้องใช้รหัสเพิ่มเติมในการคลายบีบอัดกว่าที่บันทึกไว้ในที่จัดเก็บ
ฉันไม่เห็นศักยภาพที่นี่อีก


a&$c=$argn แทน""<$c=$argv[1]
JörgHülsermann

@ JörgHülsermannใช่แล้วโพสต์นี้เป็นโบราณ :)
ติตัส

4

Python 2, 176 ไบต์

lambda i:'\n'.join(map(''.join,zip(*[["    o O O","   o     ","  TS__[O]"," {======|","./o--000'"]]+[["   ___  ",'  | '+x+' | ',"  |___| ",'_|"""""|',"\"`-0-0-'"]for x in i])))

ตัวอย่าง:

print f('Python')

จะช่วยให้

    o O O   ___     ___     ___     ___     ___     ___  
   o       | P |   | y |   | t |   | h |   | o |   | n | 
  TS__[O]  |___|   |___|   |___|   |___|   |___|   |___| 
 {======|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|
./o--000'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'

4

Powershell, 167 166 ไบต์

$l=($a=$args[0]).Length;"    o O O"+"   ___  "*$l;"   o     "+($a[0..$l]|%{"  | $_ |"});"  TS__[O]"+"  |___| "*$l;" {======|"+'_|"""""|'*$l;"./o--000'"+'"`-0-0-'''*$l

ตัวอย่าง:

.\train.ps1 "PowerShell!"
    o O O   ___     ___     ___     ___     ___     ___     ___     ___     ___     ___     ___  
   o       | P |   | o |   | w |   | e |   | r |   | S |   | h |   | e |   | l |   | l |   | ! |
  TS__[O]  |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___| 
 {======|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|
./o--000'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'

อาจไม่ถูกต้อง! หากเรียกใช้โดยไม่มีสิ่งใด ๆ เลยก็จะลองและพิมพ์สตริงที่ว่างเปล่าหนึ่งสตริงและมีลักษณะดังนี้:

    o O O
   o       |  |
  TS__[O]
 {======|
./o--000'

หากทำงานด้วยสตริงอินพุตว่างมันจะส่งคืนอย่างถูกต้องอย่างไรก็ตาม

.\train.ps1 ""
    o O O
   o     
  TS__[O]
 {======|
./o--000'

(ใจ) Ungolfed:

$l=($a=$args[0]).Length
"    o O O"+"   ___  "*$l
"   o     "+($a[0..$l]|%{"  | $_ |"})
"  TS__[O]"+"  |___| "*$l
" {======|"+'_|"""""|'*$l
"./o--000'"+'"`-0-0-'''*$l

การบีบอัดที่สั้นที่สุดใน Powershell จะเป็น+'c'*xที่ซึ่ง c คือ char และ x คือจำนวนของการทำซ้ำและสำหรับการทำซ้ำหรือนำหน้าการทำซ้ำของสตริงกลางจะต้องเพิ่มพิเศษ+และพิเศษ"- ดังนั้นจึงไม่มีประเด็นในที่นี้ ฉันสามารถเห็นการบีบอัดประหยัดพื้นที่ใด ๆ และชุดถ่านซ้ำเพียงอย่างเดียว___ซึ่งเป็นเพียง 3 ตัวอักษร

คำอธิบาย:

$l=($a=$args[0]).Length หาเรื่องแรกใส่ลงใน $ a จากนั้นนำความยาวของ $ a และใส่ลงใน $ l นี่เป็นตัวแปรเดียวที่คุณต้องการ

" o O O"+" ___ "*$l บิตอื่น ๆ ส่วนใหญ่จะเป็นไปตามรูปแบบของส่วนด้านซ้ายและจากนั้นส่วนด้านขวาจะคูณจำนวนตัวอักษรที่ต้องการ

" o "+([char[]]$a|%{" | $_ |"})วนรอบ ( |%{}) ถึง $ a เป็นอาร์เรย์ถ่านดังนั้นforeach (char $_ in $a)สำหรับรุ่นที่ไม่ใช่ไปป์ไลน์แล้วใส่ถ่านลงในข้อความ

นี่เป็นวิธีที่ง่ายมาก แต่เนื่องจากฉันไม่สามารถหาวิธีที่ดีในการบีบอัดสตริงที่ผ่านมานี้ดูเหมือนว่ามีประโยชน์มากที่สุด

บันทึกแล้ว 1 ไบต์ขอบคุณนักเทศน์! และที่นี่ฉันคิดว่าคงไม่สั้นไปกว่านี้อีกแล้ว ..


คุณไม่ต้องรับมือกับสิ่งใด ๆ :)
Magic Octopus Urn

@carusocomputing yay ขอบคุณที่แจ้งให้เราทราบ
colsw

ดี! คุณสามารถบันทึก 1 ไบต์โดยเปลี่ยน[char[]]$aเป็น$a[0..$l] :)
นักเทศน์

อากำลังใช้งานชุดถ่านก่อนที่ฉันจะประกาศ$lและลืมไปโดยสิ้นเชิง ขอบคุณสำหรับสิ่งนั้น!
colsw

2

Java, 361 ไบต์

class C {static void main(String[]v){Scanner q = new Scanner(System.in);String i = q.nextLine();String[] t = {"    o O O   ", "   o       ", "  TS__[O]  ", " {======|", "./o--000'",};for (char c: i.toCharArray()) {t[0]+="___     ";t[1]+="| # |   ".replace('#',c);t[2]+="|___|   ";t[3]+="_|\"\"\"\"\"|";t[4]+="\"`-0-0-'";}for(String p:t) System.out.println(p);}}
class C {
    static void main(String[]v)  {
        Scanner q = new Scanner(System.in);
        String i = q.nextLine();
        String[] t = {
                "    o O O   ",
                "   o       ",
                "  TS__[O]  ",
                " {======|",
                "./o--000'",
        };
        for (char c: i.toCharArray()) {
            t[0]+="___     ";
            t[1]+="| # |   ".replace('#',c);
            t[2]+="|___|   ";
            t[3]+="_|\"\"\"\"\"|";
            t[4]+="\"`-0-0-'";
        }
        for(String p:t)
            System.out.println(p);

    }
}

ตัวอย่าง

java
    o O O   ___     ___     ___     ___     
   o       | j |   | a |   | v |   | a |   
  TS__[O]  |___|   |___|   |___|   |___|   
 {======|_|"""""|_|"""""|_|"""""|_|"""""|
./o--000'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'

1
ฉันรู้ว่ามันได้รับครึ่งปี แต่คุณสามารถกอล์ฟค่อนข้างบิต (ยังด้วยช่องว่างเอา): interface C{static void main(String[]v){String n="\n",b=" o O O ",c=" o ",d=" TS__[O] ",e=" {======|",f="./o--000'";for(String x:new java.util.Scanner(System.in).nextLine().split("")){b+="___ ";c+="| "+x+" | ";d+="|___| ";e+="_|\"\"\"\"\"|";f+="\"`-0-0-'";}System.out.print(b+n+c+n+d+n+e+n+f);}}( 318 ไบต์ ) หรือแม้กระทั่งมากขึ้นถ้าคุณแทนที่new java.util.Scanner(System.in).nextLine()ด้วยv[0]เป็น input ทางเลือก ( 279 ไบต์ ) ลองได้ที่นี่
Kevin Cruijssen

2

Perl, 137 ไบต์

โค้ดขนาด 132 ไบต์ + 5 ไบต์สำหรับ-pFแฟล็ก

ascii_train.pl:

#!/usr/bin/perl -apF
s/./  | $& | /g;$_="    o O O!   ___  
   o     $_
  TS__[0]!  |___| 
 {======|!".'_|"""""|'."
./o--000'!\"`-0-0-'";s/!(.*)/$1x@F/ge

โปรดทราบว่าฉันได้เพิ่มการ-aตั้งค่าสถานะในรหัส แต่เพียงเพราะ Perl รุ่นเก่าต้องใช้-aเมื่อ-Fใช้

วิธีเรียกใช้:

echo -n "code-golf" | perl ascii_train.pl

อินพุตจะต้องจัดหาโดยไม่มีการขึ้นบรรทัดใหม่ (พร้อมกับecho -nตัวอย่าง)

คำอธิบาย:
จากสิ่งที่ฉันได้เห็นมันเป็นความคิดคร่าวๆกับคำตอบ JavaScript ของ ETHProduction
มีไม่มากเกิดขึ้น: น่าเศร้าที่รูปแบบจะสั้นไปเล็กน้อยเพื่อให้xผู้ประกอบการมีมูลค่าการใช้
ขั้นแรกให้s/./ | $& | /gล้อมรอบอักขระแต่ละตัวของอินพุตด้วย|(และช่องว่าง) เพื่อสร้างระดับที่สองของรถไฟ
จากนั้นภายในสตริงที่ยาวนั้นทุกอย่างระหว่าง a !และ newline เป็นรูปแบบที่เราต้องการทำซ้ำเพื่อสร้างรถยนต์ ซ้ำนั่นคือทำเพื่อขอบคุณ s/!(.*)/$1x@F/geregex (ฉันใช้!เพราะอินพุตไม่สามารถมีได้)


1

C #, 277 ไบต์

แข็งแรงเล่นกอล์ฟ:

string T(string s){var o=new string[]{"     o O O","   o        ","   TS__[O]","  {======|","./ o--000'" };for(int i=0;i<s.Length;i++){o[0]+="   ___  ";o[1]+="| # |   ".Replace("#",s[i]+"");o[2]+="  |___| ";o[3]+="_|\"\"\"\"\"|";o[4]+="\"`-0-0-'";}return string.Join("\r\n",o);

Ungolfed:

public string T(string s)
{
  var o = new string[] { "     o O O", "   o        ", "   TS__[O]",
    "  {======|", "./ o--000'" };

  for (int i = 0; i < s.Length; i++)
  {
    o[0] += "   ___  ";
    o[1] += "| # |   ".Replace("#", s[i] + "");
    o[2] += "  |___| ";
    o[3] += "_|\"\"\"\"\"|";
    o[4] += "\"`-0-0-'";
  }

  return string.Join("\r\n", o);
}

การทดสอบ:

Console.Write(new AllAboardTheASCIITrain().T(""));

     o O O
   o        
   TS__[O]
  {======|
./ o--000'

และ...

Console.Write(new AllAboardTheASCIITrain().T("Programming Puzzles & Code Golf"));

     o O O   ___     ___     ___     ___     ___     ___     ___     ___     ___     ___     ___     ___     ___     ___     ___     ___     ___     ___     ___     ___     ___     ___     ___     ___     ___     ___     ___     ___     ___     ___     ___  
   o        | P |   | r |   | o |   | g |   | r |   | a |   | m |   | m |   | i |   | n |   | g |   |   |   | P |   | u |   | z |   | z |   | l |   | e |   | s |   |   |   | & |   |   |   | C |   | o |   | d |   | e |   |   |   | G |   | o |   | l |   | f |   
   TS__[O]  |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___| 
  {======|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|
./ o--000'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'

1

C # 221 ไบต์

ไม่มีอะไรพิเศษเกิดขึ้นที่นี่ .. เพียงแค่สร้างแต่ละบรรทัดและเข้าร่วมกับบรรทัดใหม่

s=>{var t=new[]{"    o O O","   o     ","  TS__[O]"," {======|","./o--000'"};foreach(var c in s){t[0]+="   ___  ";t[1]+=$"  | {c} | ";t[2]+="  |___| ";t[3]+="_|\"\"\"\"\"|";t[4]+="\"`-0-0-'";}return string.Join("\n",t);};

1

C, 217 212 208 Bytes

i;f(char*t){char d[]="    o O O   o       TS__[O] {======|./o--000'   ___    | C |   |___| _|\"\"\"\"\"|\"`-0-0-'",*p;for(;i<5;i++){printf("%.9s",d+i*9);for(p=t;d[57]=*p++;)printf("%.8s",d+45+i*8);puts("");}}

ลองออนไลน์

เอาท์พุท:

    o O O   ___     ___     ___     ___     ___     ___     ___     ___     ___     ___     ___     ___     ___     ___  
   o       | C |   | O |   | D |   | E |   |   |   | G |   | O |   | L |   | F |   |   |   | I |   | N |   |   |   | C | 
  TS__[O]  |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___| 
 {======|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|
./o--000'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'

1

SOGL V0.12 , 57 56 ไบต์

Τ¡ā↓mΛC┌─⁵℮Ƨ⅛□→(š;∞⅟¹°⅔Ζ‽ζ÷⁴‘9n,{"s=Ο!NθæιžGš‼t╬¼Xg`‘8n┼

ลองที่นี่!

คำอธิบาย:

..‘             push a compressed string of the locomotive in a single line
   9n           split in line lengths of 9
     ,{         for each character in the input
       "..‘       push a compressed string of a wagon in a single line
           8n     split to line lengths of 8
             ┼    add horizontally

1

Jq 1.5 , 178 ไบต์

[["    o O O   o       TS__[O] {======|./o--000'"|_nwise(9)]]+[range(length)as$i|[.[$i:$i+1]|"   ___    | \(.) |   |___| _|\"\"\"\"\"|\"`-0-0-'"|_nwise(8)]]|transpose|map(add)[]

ขยาย

# engine
def E:"    o O O   o       TS__[O] {======|./o--000'"|_nwise(9);

# car (note string interpolation)
def C:"   ___    | \(.) |   |___| _|\"\"\"\"\"|\"`-0-0-'"|_nwise(8);

  # generate train
  [[E]] + [range(length) as $i| [.[$i:$i+1] |C]]

  # combine rows and concatenate strings     
| transpose | map(add)[]

วิ่งตัวอย่าง

$ jq -MRr train.jq <<< "golf"
    o O O   ___     ___     ___     ___  
   o       | g |   | o |   | l |   | f | 
  TS__[O]  |___|   |___|   |___|   |___| 
 {======|_|"""""|_|"""""|_|"""""|_|"""""|
./o--000'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'

$ wc -c < train.jq
  178

ลองออนไลน์


0

Excel VBA ขนาด 218 ไบต์

ฟังก์ชันหน้าต่าง VBE แบบไม่ระบุชื่อทันทีที่รับอินพุตจากช่วง[A1]และเอาต์พุตไปยังหน้าต่างทันที VBE

[B1]=[Len(A1)]:?"    o O O"[Rept("   ___  ",B1)]:?"   o     ";:For i=1To[B1]:?"  | "Mid([A1],i,1)" | ";:Next:?:?"  TS__[O]"[Rept("  |___| ",B1)]:?" {======|"[Rept("_|""""""""""|",B1)]:?"./o--000'"[Rept("""`-0-0-'",B1)]

จัดรูปแบบเพื่อให้อ่านง่าย

[B1]=[Len(A1)]
?"    o O O"[Rept("   ___  ",B1)]
?"   o     ";:For i=1To[B1]:?"  | "Mid([A1],i,1)" | ";:Next:?:
?"  TS__[O]"[Rept("  |___| ",B1)]:
?" {======|"[Rept("_|""""""""""|",B1)]:
?"./o--000'"[Rept("""`-0-0-'",B1)]

ตัวอย่างผลลัพธ์

    o O O   ___     ___     ___     ___     ___     ___     ___     ___     ___     ___     ___  
   o       | V |   | B |   | A |   |   |   | E |   | x |   | p |   | r |   | e |   | s |   | s | 
  TS__[O]  |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___|   |___| 
 {======|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|
./o--000'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.