স্ট্যাক এক্সচেঞ্জ ফেভিকন প্রিন্ট করুন


19

চ্যালেঞ্জ

নীচে সরবরাহিত হিসাবে স্ট্যাক এক্সচেঞ্জ ফেভিকন প্রিন্ট করুন বা প্রত্যাবর্তন করুন:

 ___________________
/                   \
---------------------
|                   |
---------------------
|                   |
---------------------
\__________    _____/
           |  /
           | /
           |/

এটি , তাই প্রতিটি ভাষার সংক্ষিপ্ত উত্তর জিততে পারে।


2
উপরের বাম কোণটি কি সামান্য বিভ্রান্তির উদ্দেশ্যে?
ETH প্রোডাকশনগুলি

@ ইথ প্রডাকশনগুলি এটির উদ্দেশ্য ছিল তবে আমি এখন এটি পরিবর্তন করছি। এটি উভয় উপায়ে দেখতে এক ধরণের বিশ্রী দেখাচ্ছে looks
musicman523

2
প্রকৃত আউটপুটটি 219 বাইট, রেফারেন্সের জন্য।
সম্পূর্ণমানবিক

ট্রেলিং লাইন এবং / অথবা লাইনে ফাঁকা স্থানগুলি অনুমোদিত, তাই না?
ডিজাইমা

উত্তর:


43

অপারেশন ফ্ল্যাশপয়েন্ট স্ক্রিপ্টিং ভাষা, 263 195 বাইট

f={r="                   ";t="---------------------\n";s=" ___________________\n/"+r+"\\n"+t+"|"+r+"|\n"+t+"|"+r+"|\n"+t+"\__________    _____/\n           |  /\n           | /\n           |/";s}

কাজের জন্য সঠিক সরঞ্জাম নয়।

সাথে কল করুন:

hint call f;

আউটপুট:

ফর্ম্যাটটি ব্যর্থ হয়, কারণ ফন্টটি মনসোপিস হয় না।


49
শুধু কি আপনি একটি চ্যালেঞ্জ তাকান এবং মনে "ওহ, আমি অপারেশন প্রান্ত যে উত্তর করা উচিত" পাজল আমাকে করে ...
totallyhuman

7
@ টোটালিহুমান আমার ধারণা, এটির স্ক্রিপ্টিং ল্যাং লিখতে মজাদার It এটির মধ্যে বেশ কয়েকটি কৌতুক এবং সীমাবদ্ধতা রয়েছে, তাই আপনাকে মাঝে মাঝে কিছু অদ্ভুত কাজের ব্যবহার করতে হবে যা এটি আকর্ষণীয় করে তোলে (তবে খুব বেশি ব্যবহারিক নয়)।
স্টিডিবক্স

5
উত্তরের হার্ডকোডিং সম্ভবত আপনাকে আরও ভাল স্কোর দেবে।
নিডজেজেকোব

2
@ নিডজেজেকোব এখন আউটপুটকে হার্ডকডিংয়ের চেয়ে ছোট, তবে আগের সংস্করণটির চেয়ে বেশি বিরক্তিকর।
স্টেডিবক্স

@ টোটালিহুমান এবং বিশেষত এই চ্যালেঞ্জের সাথে, আমি পরীক্ষা করতে চেয়েছিলাম যে কোলমোগোরভ-জটিলতার চ্যালেঞ্জ (যার জন্য এটি আদর্শের চেয়ে অনেক কম) ভাষা কীভাবে ব্যবহার করবে test
স্টেডিবক্স

11

কাঠকয়লা , 38 37 33 30 বাইট

←×_χ↓F/||⟦ι¹¹⟧\×_⁹‖B_×ψ⁴↙↙³↑↑³

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। সম্পাদনা করুন: প্রতিবিম্বের সাহায্যে একটি বাইট সংরক্ষণ করার ব্যবস্থা করা হয়েছে, যদিও @ কার্লোস আলেজো দেখায় যে এটি আসলে প্রতিফলিত না করে 37 বাইটে করা যায়। বামটি আঁকতে এবং ফাইনালের প্রতিফলিত করে আরও 4 বাইট সংরক্ষণ করা ¼ সম্পাদনা করুন: পূর্ববর্তী 33-বাইট উত্তরটি ReflectButterflyOverlap()প্রতিবিম্বের সাথে ওভারল্যাপ অঞ্চলটি ওভারপ্রিন্ট না করার উপর নির্ভর করে , সুতরাং যদি এই আচরণটি পরিবর্তিত হয়, আমি এমন একটি সমাধান চেয়েছিলাম যা তার উপর নির্ভর করে না এবং ফলাফল যাইহোক ছোট হতে পারে, ধন্যবাদ আমার অ্যারে মুদ্রণের সৃজনশীল ব্যবহার ব্যাখ্যা:

←×_χ                            Print 10 `_`s leftwards (top row)
    ↓                           Move down to the next row
     F/||                       For each character in the string `/||`
          ι                     Current character
           ¹¹                   Integer 11, prints as `-----------`
         ⟦   ⟧                  Put both into an array
                                Implicitly print on separate lines
              \                 Implicitly print `\`
               ×_⁹              Implicitly print 9 `_`s
                  ‖B            Reflect right, overlapping the axis
                    _           Implicitly print `_`
                     ×ψ⁴        Implicitly delete 4 characters
                        ↙↙³     Move down left and print three `/`s
                           ↑↑³  Move up and print three '|'s

2
খুব ভাল খেলেছে। আমি ভালোবাসি যে সেখানে চার এই প্রশ্নের কাঠকয়লা উত্তর! ‖BOআমি যখন শেষবার এটি ব্যবহার করেছি তখন ভাষায় ছিল না - আমাকে ভবিষ্যতের জন্য এটি মাথায় রাখতে হবে।
DLosc

"চূড়ান্ত প্রতিফলিত with" দিয়ে আপনি কী বোঝাতে চেয়েছেন তা আমার নিজের জন্য দেখতে হয়েছিল । সত্যিই ভাল খেলেছে!
চার্লি 21

8

/// , 98 বাইট

/'/  //&/
"""
|!! |//%/\\\/
!'|//#/_____//"/-------//!/'''' / ###____
\/!! \\&&
"""
\\##''#%'% %\/

এটি অনলাইন চেষ্টা করুন! বা, এটি ইন্টারেক্টিভভাবে দেখুন!


3
এমন কোনও ইউটিলিটি আছে যা আমাকে /// প্রোগ্রামের বিভিন্ন "পদক্ষেপ" দেখতে দেয়? (প্রতিটি প্রতিস্থাপনের পরে আংশিক মৃত্যুদন্ড কার্যকর করা)) এটি আমাকে আরও ভালভাবে বুঝতে সাহায্য করতে পারে।
CAD97

@ CAD97 আমি অনলাইনে অনুবাদকের সাথে ঘুরে বেড়াচ্ছি, এবং এটি সাধারণত ডিবাগ বিকল্পগুলি নিয়ে আসে তবে অনলাইন দোভাষী যেভাবে যুক্তির আদেশ দেয়, এটি সেভাবে কার্যকর হয় না। আপনি দোভাষীর একটি অনুলিপি নিজেই ধরতে পারেন এবং এরকম কিছু করতে পারেন perl slashes.pl -d1 code.txt। আমি বর্তমানে /// এর জন্য একটি অনলাইন এক্সিকিউশন পরিবেশে কাজ করছি, তবে এতে কিছুটা সময় লাগতে পারে।
কনর ও'ব্রায়েন

3
@ CAD97 বলেছেন অনলাইন জিনিস শেষ, একবার দেখুন!
কনর ও ব্রায়ান

8

জাভাস্ক্রিপ্ট (ES6), 113 112 বাইট

(@ ক্রেইগ আয়রে ধন্যবাদ জানায় একটি বাইট সংরক্ষণ করুন।)

let f=

_=>` _19
/ 19\\
-21
| 19|
-21
| 19|
-21
\\_10 4_5/
 11| 2/
 11| /
 11|/`.replace(/.(\d+)/g,([a],b)=>a.repeat(b))
 
 console.log(f());


দেখে মনে হচ্ছে প্রতিস্থাপনের কাজটি করার আগে আপনার কাছে বিপথগামী জায়গা রয়েছে। আমি মাত্র 113 বাইটে আমার জেএস সমাধানের জন্য একই ধরণের আপডেট নিয়ে এসেছি। আমার এটি পোস্ট করা উচিত কিনা তা আপনি জানেন না।
শেগি

আহ, অপেক্ষা করুন, কেবলমাত্র এখনই দেখছি যে আপনি আমার পোস্ট করার আগে আপনার সমাধান পোস্ট করেছেন। আমি যখন একটি কম্পিউটারে আসি তখন আমি আমার মুছতে পারি এবং আপনি একটি বাইট সংরক্ষণ করতে পারেন replace(/.(\d+)/g,(a,b)=>a[0].repeat(b))
শেগি

ধন্যবাদ, শেগি আমি এই ধরণের উত্তরটি স্বয়ংক্রিয় করতে একটি প্রোগ্রাম লিখেছিলাম এবং এটি একটি অপ্রয়োজনীয় স্থান আউটপুট করা নির্বোধ ছিল। আপনার প্রস্তাবিত replaceবিবৃতি অবশ্যই একটি উন্নতি, যা আমি এখন আমার প্রোগ্রামে অন্তর্ভুক্ত করেছি।
রিক হিচকক

1
আপনি যদি একটি বাইট অ্যারের ম্যাচিং সংরক্ষণ করা a: ([a],b)=>a.repeat(b))?
ক্রেগ আয়রে

হ্যা ধন্যবাদ! আমি সেই বাক্য গঠন সম্পর্কে অপরিচিত ছিলাম।
রিক হিচকক

7

এসওজিএল ভি0.12 , 32 31 বাইট

^$∙r↑Ψ«2τγæΕž‘╬Æ╬⁷"ƧΡ⅟?0Ξ³‘6«8ž

এখানে চেষ্টা করুন!

ব্যাখ্যা:

...‘               push a quarter of the icon
    Β             palindromize vertically
      ╬⁷           palindromize horizontally (these two should be ╬3 together, but spacing doesn't work correctly (though now it does since I fixed it))
        "...‘      push the extention
             6«8ž  at coordinates [12; 8] in the quad-palindromized image put that in

ত্রৈমাসিক:

 __________
/
-----------
|
-----------

এবং অন্যান্য অংশ:

    
|  /
| /
|/

"togethe"? "নালা"? এছাড়াও, .ব্যাখ্যাটি বোঝার জন্য এটিটি একটু সময় নিয়েছিল string। সম্ভবত ব্যবহার ^...'এবং "...'?
ক্যালকুলেটরলাইন

@ ক্যালকুলেটরফ্লাইন আমি সাধারণত সংক্ষেপিত ...স্ট্রিংগুলির জন্য করতাম (ওরফে ননসেন্স) তবে ইদানীং আমি দু'একটি করা শুরু করি। এবং আমার ভুল এবং ব্যাকরণ ঠিক করতে নির্দ্বিধায়: p
dzaima

7

পাইথন 2 , 115 বাইট, আরও সৃজনশীল ধারণা

t,u,v,w,x,y,z='\n -/\\_|';k=w+t+11*u+z;i=t+21*v+t
print u+19*y+t+w+19*u+x+(i+z+19*u+z)*2+i+x+10*y+4*u+5*y+k+u,k,k+w

এটি অনলাইন চেষ্টা করুন!

পাইথন 2 , 102 বাইট, বিরক্তিকর ধারণা

print'eNrjUojHBFz6CpgghksXG+CqwaK2hgpqYxDuASkDM/S5kDUqKKDxUbn6XADUmClx'.decode('base64').decode('zip')

এটি অনলাইন চেষ্টা করুন!


2
আমি এই পদ্ধতিটি খুব বেশি বার ব্যবহার করে দেখেছি বলে আমি এটিকে ভোট দিচ্ছি। বারবার দেখার জন্য এটি বিরক্তিকর।
আর কাপ,

8
@ আর.ক্যাপ যদি না ছোট উপায় না হয় তবে এটি ডাউনভোট করার পক্ষে বরং স্বেচ্ছাচারী কারণ।
ডেনিস

1
@ ডেনিস হয়তো, তবে আমি এখনও আমার মতের সাথে দাঁড়িয়ে আছি এবং এটি প্রকাশ করার অধিকার আছে। আমি এই পদ্ধতিটি এই ধরণের চ্যালেঞ্জগুলির জন্য অগণিত সময় ব্যবহার করে দেখেছি এবং এর জন্য ওপি'র পক্ষ থেকে সৃজনশীলতার কম দরকার নেই, কমপক্ষে আমার মতে, কলমোগোরভ জটিলতার চ্যালেঞ্জগুলি সম্পর্কে এটি আমার পক্ষে বড় কারণ এবং তাই ভোট-ডাউনের জন্য আমার কারণ ।
আর কাপ,

2
@ আর.ক্যাপ যদি সাধারণ উদ্দেশ্য সংকোচন অ্যালগরিদমগুলি ম্যানুয়ালগুলি সহজেই পরাজিত করতে পারে তবে এটি চ্যালেঞ্জের সমস্যা, উত্তর নয়। আমি জেলির সাথে বুবলগামকে পরাস্ত করতেও পারি নি, এবং জেলিতে ডিকম্প্রেশনটির খুব বেশি ওভারহেড ছিল।
ডেনিস

2
@ ডেনিস আমি এখানে কোড দৈর্ঘ্যের বিষয়ে কথা বলছি না। আমি প্রচেষ্টা এবং সৃজনশীলতার কথা বলছি, যার উত্তরটি আমার মতে এমন ভাষায় প্রদর্শন করতে ব্যর্থ হয় যেখানে কেউ আরও বেশি কিছু করতে পারে, যার কারণেই আমি নীচে ভোট দিয়েছি। এখন, আপনি যদি আমার যুক্তির সাথে একমত না হন তবে তা ঠিক। সেক্ষেত্রে আসুন আমরা এই কথোপকথনটি দীর্ঘায়িত হওয়ার আগেই এখানে অসম্মতি জানাতে এবং শেষ করতে সম্মত হই। :)
আর কাপ,

6

পাইথন 2, 124 বাইট

a,b,d,e,f,g,h=' _-|/\\\n';r=d*21+h+e+a*19+e+h;n=f+h+a*11+e;print a+b*19+h+f+a*19+g+h+r*2+r[:22]+g+b*10+a*4+b*5+n+a*2+n+a+n+f

এটি অনলাইন চেষ্টা করুন!


আপনি কখনও ব্যবহার করবেন না c, তাই আপনি এটি 3 বাইটের জন্য নির্মূল করতে পারেন। এটি অনলাইন চেষ্টা করুন!
musicman523

@ musicman523 আমি কেন জানি না কেন আমি এটি জানি না। ধরার জন্য ধন্যবাদ! :)
আর কাপ,

6

সি (জিসিসি) , 187 বাইট

কোডি গ্রেের জন্য 2 বাইট সংরক্ষণ করা হয়েছে, এবং কিউ গানকে 3 বাইট ধন্যবাদ!

#define a"         "
#define s a" "a
#define l"\n---------------------\n"
f(){puts(" ___________________\n/"s"\\"l"|"s"|"l"|"s"|"l"\\__________    _____/\n"a"  |  /\n"a"  | /\n"a"  |/");}

এটি অনলাইন চেষ্টা করুন!


2
putsতুচ্ছভাবে সংক্ষিপ্ততর হবে, যদি একটি নতুন লাইনের পিছনে গ্রহণযোগ্য হয়।
কোডি গ্রে

আপনি f()পরিবর্তে ব্যবহার করতে পারেন main()। একটি ফাংশনও গ্রহণযোগ্য।
কিউ গান

5

মরিচা , 181 বাইট

||" ___________________
/2\\
1
1
3
\\__________    _____/
4|  /
4| /
4|/".replace("1","3
|2|").replace("2",&" ".repeat(19)).replace("3",&"-".repeat(21)).replace("4",&" ".repeat(11))

এটি অনলাইন চেষ্টা করুন!

মরিচা , 184 বাইট

প্রতি সংস্করণে আরও replaceকম ব্যয় যোগ করার কারণে এই সংস্করণটি আরও গল্ফযোগ্য হতে পারে । প্রথমটি replaceলুপটির অংশ নয় কারণ এটি ডাবল ডিউটিটিকে sএকটি এর Stringপরিবর্তে পরিবর্তিত করে &'static str

||{let mut s=" 5__5__5
/2\\
1
1
3
\\55    5/
4|  /
4| /
4|/".replace("1","3
|2|");for p in vec![("2"," ",19),("3","-",21),("4"," ",11),("5","_",5)]{s=s.replace(p.0,&p.1.repeat(p.2))}s}

এটি অনলাইন চেষ্টা করুন!


5

সি, 167 বাইট

i;char*d=" q    /()\\   A   |()|    A   |()|    A   \\h#c/  #&|!/   #&| /   #&|/",c,b;main(j){while(c=d[i++],b=c%5==2||c>123?c:c>95?95:c>45?45:c>=32?32:++c,i<47)for(j=c;j-->=b;)putchar(b);}

এটি অনলাইন চেষ্টা করুন!

দ্রষ্টব্য: উপরের অনেকগুলি স্পেস স্পেসগুলি আসলে ট্যাব চরিত্র।

পঠনযোগ্য সংস্করণ:

i;
char *d = " q   /()\\   A   |()|    A   |()|    A   \\h#c/  #&|!/   #&| /   #&|/", c, b;
main(j) {
    while(
        c = d[i++],
        b = c % 5==2 || c > 123 ? c:
            c > 95 ? 95:
            c > 45 ? 45:
            c >= 32 ? 32:
            ++c,
        i < 47
    )
        for(j = c; j-- >= b;)
            putchar(b);
}

ব্যাখ্যা:

ডেটা অ্যারে, ডি, আক্ষরিক একক অক্ষরগুলিতে উত্তরটি এনকোড করে এবং কোডেড পুনরাবৃত্ত অক্ষরগুলিতে। ডেটা অ্যারেতে প্রতিটি অক্ষর, সি, একটি বেস অক্ষর, খ এবং বিভিন্ন পুনরাবৃত্তিতে ম্যাপ করা হয়। তারপরে এটি বহুবার মুদ্রিত হয়।

যে অক্ষরগুলি কেবলমাত্র এককভাবে ব্যবহৃত হয় (স্ল্যাশ এবং পাইপ) এর ASCII কোড 47, 92 এবং 124 রয়েছে these এর মধ্যে দুটি দুটি বাকী 5 দিয়ে বিভাজ্য (c%5=2||c>123) । আমি তিনটিই পরীক্ষা করার জন্য একটি সংক্ষিপ্ত শর্ত খুঁজে পাইনি।

যে ASCII কোডগুলি যথাক্রমে 95, 45, এবং 32 সহ পুনরাবৃত্তি হয় (আন্ডারস্কোর, ড্যাশ এবং স্পেস), উচ্চতর ASCII কোড সহ কোডড হয় - পুনরাবৃত্তি প্রতি এক দ্বারা বৃদ্ধি করা হয়। সুতরাং, উদাহরণস্বরূপ, একটি একক স্থান কেবল একটি স্থান, তবে দুটি স্পেসটি পরবর্তী ASCII অক্ষর দ্বারা উদ্দীপনা বিন্দু দ্বারা কোড করা যায়। যেখানে কোডেড অক্ষরটি অনুপযুক্ত হবে কারণ এটি উপরের মডুলোর শর্তটি পূরণ করে, এটি বিভক্ত হতে পারে, যেমন # & এগারো স্পেস উপস্থাপনের জন্য। স্থান এবং ড্যাশ অক্ষর রেঞ্জের মধ্যে ওভারল্যাপ এড়াতে একই কৌশল ব্যবহার করা হয়।

অবশেষে, দশটি নিউলাইনগুলি বাইটস সংরক্ষণের জন্য ট্যাব হিসাবে এনকোড করা হয়েছে যা ব্যাকস্ল্যাশ দিয়ে নিউলাইনগুলি ছেড়ে পালাতে ব্যয় করা হত, তারপরে মুদ্রণের জন্য বর্ধিত ( ++c)।


সাবাশ! আমি জানতাম সেখানে আরও ভাল উত্তর দেওয়া আছে।
musicman523

ধন্যবাদ! এটি একটি মজার চ্যালেঞ্জ ছিল। আমি এটিতে চার ঘন্টার মতো কিছু ব্যয় করেছি, তাই আমি খুশী হয়েছি যে শেষ পর্যন্ত এটি কার্যকর হয়েছিল।
jiv

4

কাঠকয়লা , 49 37 বাইট

↓⁵\…_χ↓↓³↗↗³…_⁵↑/↑⁵↖\←…_¹⁹↓ /F³«P²¹¶¶

এটি অনলাইন চেষ্টা করুন!

শেষ পর্যন্ত আমি এই কিছুটা গল্ফ করতে পারে। এই উত্তরটি (অন্যান্য চারকোলের উত্তরগুলির মতো নয়) প্রতিবিম্ব ব্যবহার করে না, তবে সমস্ত পাতাগুলি একটি পাসে আঁকবে, শেষের জন্য অনুভূমিক বারগুলি রেখে।

ভার্বোজ সংস্করণে লিঙ্ক ।


"অন্যান্য চারকোলের উত্তরগুলির মতো নয়" আসলে আমার প্রথম উত্তরটিও প্রতিচ্ছবি ব্যবহার করে নি, তবে আমি স্বীকার করব যে বাম উল্লম্ব লাইন দিয়ে অঙ্কন শুরু করে আমি কোনও বাইট গল্ফ করার সুযোগটি খুঁজে পাইনি। (আমাদের সমাধানগুলির মধ্যে কেবলমাত্র অন্যান্য পরিবর্তনগুলি হ'ল আপনি টাইমগুলি ব্যবহার করেছিলেন সেখানে আপনি ব্যাপ্তি ব্যবহার করেন এবং আপনি \যেখানে সবেমাত্র :UpLeft1 টি পদক্ষেপ মুদ্রণ করেছিলেন সেখানে মুদ্রণ করুন ))
নিল

যদিও এটি মনে হচ্ছে প্রতিবিম্বটি যাওয়ার পথে ...
নীল

এছাড়াও এখন এটি দ্বিগুণ হয়ে গেছে যে আমার এস কীটি কার্যকর হয়নি ...
নীল

3

বাবল গাম , 40 বাইট

একটি ট্রেইলিং নিউলাইনটি সরিয়ে 1 বাইট সংরক্ষণ করা হয়েছে, ধন্যবাদ @ ওভেস!

00000000: 5388 c704 5cfa 0a98 2086 4b17 1be0 aac1  S...\... .K.....
00000010: a2b6 860a 6a63 10ee 0129 0333 f4b9 9035  ....jc...).3...5
00000020: 2a28 a0f1 51b9 fa00                      *(..Q...

এটি অনলাইন চেষ্টা করুন!


একটি trailing সম্পর্কে newline ছাড়া, এই পায় 40 বাইট
ovs

ধন্যবাদ! আমি মনে করি আমার পাঠ্য সম্পাদকটি স্বয়ংক্রিয়ভাবে
একটিটিতে

আপনি এটি কীভাবে তৈরি করেছেন? zlib.compress(s.encode(), 9)46 বাইট আউটপুট দেয় এবং উত্তরটি zlib বলে মনে হয়।
নিডজেজেকোব

প্রতি ডেনিস এর পরামর্শ , আমি ব্যবহার zopfli --deflateকাঁচা চুপসে স্ট্রিম, তারপর ব্যবহার করা জেনারেট করতে xxdএটা xxd যাও বিন্যাসে রূপান্তর করবে। আমি বিশ্বাস করি zlibএকটি চেকসাম ছেড়ে যায়, বা অন্য কোনও কারণে এটি কাঁচা ডিফল্ট স্ট্রিম নয়।
musicman523

3

কাঠকয়লা , 38 বাইট

←…_χP↑⁵P\F³«↑P¹¹↑»↗¹…_χ‖BM²¦⁷P↓⁴… ⁴↙↙³

এটি অনলাইন চেষ্টা করুন!

আমি কার্লোসের উত্তরটিকে মূল আকারে জাম্পিং-অফ পয়েন্ট হিসাবে ব্যবহার করেছি, তবে অনুভূমিক প্রতিসাম্যের সুযোগ নিয়ে একটি প্রতিবিম্ব ব্যবহার করে বেশ কিছুটা সংরক্ষণ করেছি। (উল্লম্ব প্রতিসাম্য এর মূল্য ছিল না কারণ আন্ডারস্কোরগুলি ভুল সারিতে শেষ হয়েছিল)) আপনি এখানে প্রতিটি পদক্ষেপে ক্যানভাসের বিবর্তন দেখতে পাবেন ।

এখানে ভার্জোজ সংস্করণ


btw you can use -d to show each step (also sorry i've been changing charcoal so much, i'm not sure very many of the new ideas are very useful, especially the goat ascii-art builtin and part of the wolfram language haha)
ASCII-only


3

Python 2, 119 117 116 bytes

print''.join(' \n-/|\\_'[ord(x)/8-4]*int('1245abjl'[ord(x)%8],36)for x in' V(8&H(7(@&@(7(@&@(7(HT"S8(%@!8(%@ 8(%@8')

Try it online!

A bit of tortured run-length encoding...

EDIT: Save 3 bytes by replacing the set of lengths:

[1,2,4,5,10,11,19,21][ord(x)%8]

with

int('1245abjl'[ord(x)%8],36)


Wow! I was trying to think of an effective way to do this myself.
GarethPW

Nice code, but it seems that it is 119 bytes?
mdahmoune

@mdahmoune: Quite right - forgot to use r'' when checking the length...
Chas Brown

3

C++ 11 - 162 159 154 152 150 bytes

MSVC:

void f(){char*i="b t_b\nb/t b\\b\nv-b\nb|t b|b\nv-b\nb|t b|b\nv-b\nb\\k_e f_b/b\nl b|c b/b\nl b|b b/b\nl b|b/";while(*i)cout<<string(*i++-97,*i),i++;}

GCC: (+4 chars)

int f(){char*i="b t_b\nb/t b\\b\nv-b\nb|t b|b\nv-b\nb|t b|b\nv-b\nb\\k_e f_b/b\nl b|c b/b\nl b|b b/b\nl b|b/";while(*i){cout<<string(*i-97,*(i+1));i+=2;}}

Input string i is coded in char pairs:

  1. Count of chars to repeat (added to 'a' to be a legible character)
  2. Char to print

I think, there's still a lot of room for improvement here.

Edit:

  1. Replaced putchar with cout<<
  2. Remove while, Use string constructor to repeat chars
  3. Removed space before pointer and a spurious semi-colon ;;
  4. Compounding instructions with comma, removing braces.

C++11 does not support auto as a return type, that's a C++14 feature. However, you can fix this and save a byte by making the return type int. It doesn't appear that this code works, though; could you test it on Try it online! and see if you can fix it?
musicman523

Changed the return type auto -> void. I was testing on Visual Studio 2017 - automatically C++14. Added a version for gcc.
Robert Andrzejuk

Oh okay, gotcha. I'm running Linux so I don't have VS. Nice job!
musicman523

Hi Robert - your run length encoding approach is similar to my own; see here. I additionally pack each (length,char) pair into a single char instead of 2. There are 7 possible characters, and 8 distinct lengths; so I use the 56 characters in ' '..'X' for encoding; which saves 40 bytes with a little extra overhead for decoding.
Chas Brown


3

R16K1S60 Assembly, 152 144 Bytes

Writes output to screen peripheral the R16K1S60 in ASCII. Runs on The Powder Toy save 2012356. (See link in header for info)

The byte size of the program is the compiled result (Cells Used * 2), not the assembly.

You know you've done well when the logo takes more space than your bytecode.

a:
mov ex, ip
mov ax, .string
mov sp, ip
mov dx, 0x1000
send sp, dx
.loop:
mov bx, [ax]
cmp bx, ip
je .end
cmp bx, ip
je .newline

shr bx, cx, 8
and cx, 0x00FF
.inner:
send sp, cx
sub bx, ex
jnz .inner
.reentry:
add ax, ex
jmp .loop
.newline:
add dx, 0x0020
send sp, dx
jmp .reentry
.string:
dw 0x0120
dw 0x135F
dw 0x000C
dw 0x012F
dw 0x1320
dw 0x015C
dw 0x000C
dw 0x152D
dw 0x000C
dw 0x017C
dw 0x1320
dw 0x017C
dw 0x000C
dw 0x152D
dw 0x000C
dw 0x017C
dw 0x1320
dw 0x017C
dw 0x000C
dw 0x152D
dw 0x000C
dw 0x015C
dw 0x0A5F
dw 0x0420
dw 0x055F
dw 0x012F
dw 0x000C
dw 0x0B20
dw 0x017C
dw 0x0220
dw 0x012F
dw 0x000C
dw 0x0B20
dw 0x017C
dw 0x0120
dw 0x012F
dw 0x000C
dw 0x0B20
dw 0x017C
dw 0x012F
dw 0x0009
.end:
hlt

Explanation

The assembly code above implements a simple compression algorithm, with the words 0x000C being a newline and 0x0009 being the command to stop execution.

The other words are encoded simply, like this: 0xTTCC

  • T: Times to repeat the value

  • C: The ASCII character to print

The ASM uses every register available to it, including some of the less commonly used ones:

  • The Instruction Pointer, to get a few known values into quick recall to save some bytes (A constant value in an instuction that's not just a register uses an extra byte to store it)

  • The Stack Pointer is used as 6th general purpose register, because none of the code uses the stack.

Only AX, BX, CX, and DX are actually used for important data. EX and SP are used to store some constants that get frequently used.

It's somewhat simple, and has nil chance of winning, but it was fun to write!

See revision history for the old answer (It's just as large in terms of ASM)

funfact: if this was measured in words (in the case of the R16K1S60,16 bits) it'd be smaller than the pyth answer, at 72 bytes




2

Mathematica, 163 bytes

Row@Map[Column,Characters/@{" /-|-|-\\   ",r="_ - - -_   ",r,r,r,r,r,r,r,r,r,"_ - - - |||","_ - - -   /","_ - - -  / ","_ - - - /  ",r,r,r,r,r," \\-|-|-/   "},{1}]


2

Python 2, 171 bytes

p,u,q,v,r,s,F=' ','_','/','|','-'*21,'\\',lambda f,m:f+m*19+f;B=lambda n:p*11+v+p*n+q
print'\n'.join([F(p,u),q+p*19+s,r,F(v,p),r,F(v,p),r,s+u*10+p*4+u*5+q,B(2),B(1),B(0)])

Each line is exactly 85 bytes! Hoorah!


2

Zsh, 244 bytes

This is specifically written for Zsh, not Bash, as it allows a bit more in terms of weird syntax.

alias p=printf
function r { p "$1%.s" {0..$2}}
function l { p $1;r $2 19;p $3;p "\n"}
l " " _ " "
l / " " \\
l - - -
l \| " " \|
l - - -
l \| " " \|
l - - -
p \\
r _ 10
r " " 4
r _ 5
p "/\n"
r " " 11
p "|  /\n"
r " " 11
p "| /\n"
r " " 11
p \|/

Note: when I tried to run it on tio.run the output is different than on my terminal. The fix to this is replacing

function r { p "$1%.s" {0..$2}}

with

function r { p "$1%.0s" {0..$2}}

which would make it 245 bytes (link).

Edit Seems like I was too eager to hit that post button and I missed some spaces, making my solution a bit less efficient. My new output seems off though, but I think I counted correctly (but it wouldn't change the length anyway).


Welcome to PPCG! Notice that the lower line of underscores has a gap of four spaces in it, which is missing from the output of your code.
Steadybox

@Steadybox Ohh silly me. I've updated the answer, thanks for pointing it out!
Luca_Scorpion

No problem! Unfortunately, I think it's still a bit off, but this should fix it (and it saves you a byte too!).
Steadybox

I think you can save a few bytes by using 'funcname(){}' instead of 'function funcname{}'
Winny


2

Python 2, 159 153 139 bytes

s=" "*19;e="-"*21;a=" "*9;print" %s\n/%s\\\n%s\n|%s|\n%s\n|%s|\n%s\n\%s    %s/\n%s|  /\n%s| /\n%s|/"%("_"*19,s,e,s,e,s,e,"_"*8,"_"*7,a,a,a)

Try it online!

EDIT: Saved 6 bytes by using % formatting instead of .format().
EDIT: Saved another 14 bytes by fixing the output, thanks to musicman523.


1
This isn't printing the exact text (extra lines are present). Fixing this will probably save some bytes as well.
officialaimm

Here is a fixed version, coming in at a hot 139 bytes
musicman523


1

JavaScript (ES6), 151 bytes

_=>` 2_________
/0\\
1
|0|
1
|0|
1
\\2    _____/
3|  /
3| /
3|/`.replace(/\d/g,a=>a.repeat.call(...[[" ",19],["-",21],["_",10],[" ",11]][a]))

Test Snippet

f=
_=>` 2_________
/0\\
1
|0|
1
|0|
1
\\2    _____/
3|  /
3| /
3|/`.replace(/\d/g,a=>a.repeat.call(...[[" ",19],["-",21],["_",10],[" ",11]][a]))

O.innerHTML=f()
<pre id=O>




1

,,,, 115 101 98 bytes

I am absolutely ashamed that this is the best I can produce. >.>

"|/
"' 11×:"| /
"⇆:"|  /
"⇆'
'/'_5×' 4×'_10×92c'
'|' 19×'|'
'-21×+++++3×110⇆⊣"\
"' 19×'/'
'_19×' #
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.