এএসসিআইআই ট্রেন গল্ফ


60

এই সাতটি ASCII ট্রেন গাড়ি বিবেচনা করুন।

ইঞ্জিন (ই)

            __
======      \/
| [] |=========
|              )
================
 O-O-O   O-O-O \\

যাত্রী গাড়ি (পি)

===============
| [] [] [] [] |
===============
 O-O       O-O

বক্সকার (খ)

===============
|-|-|  |  |-|-|
===============
 O-O       O-O

ট্যাঙ্কার (টি)

 _____---_____
(             )
===============
 O-O       O-O

হপার (এইচ)

_______________
\ | | | | | | /
===============
 O-O       O-O

ফ্ল্যাটবেড (এফ)

===============
 O-O       O-O

কাবুস (সি)

    =====
====|   |====
| []     [] |
=============
 O-O     O-O

একটি প্রোগ্রাম লিখুন যা চরিত্রগুলির একটি ক্রম EPBTHFCদেওয়ার পরে, --গাড়ীর দম্পতির জন্য ব্যবহার করে এটি ASCII ট্রেনের প্রতিনিধিত্ব করে out বামতমতম ইনপুট অক্ষরগুলি ডানদিকের ট্রেনের গাড়িতে পরিণত হয়। ট্রেন সবসময় ডান মুখী হয়।

উদাহরণস্বরূপ, একটি ইনপুট EEHTBPFCউত্পাদন করা উচিত

                                                                                                                __                __
    =====                                                                                           ======      \/    ======      \/
====|   |====                   ===============  ===============   _____---_____   _______________  | [] |=========   | [] |=========
| []     [] |                   | [] [] [] [] |  |-|-|  |  |-|-|  (             )  \ | | | | | | /  |              )  |              )
=============--===============--===============--===============--===============--===============--================--================
 O-O     O-O    O-O       O-O    O-O       O-O    O-O       O-O    O-O       O-O    O-O       O-O    O-O-O   O-O-O \\  O-O-O   O-O-O \\

বিস্তারিত

  • এটি কোড গল্ফ; বাইটস মধ্যে সংক্ষিপ্ততম প্রোগ্রাম।
  • এক বা একাধিক বর্ণের EPBTHFCযে কোনও অনুক্রম বৈধ ইনপুট।
  • আপনার প্রোগ্রামটি অবশ্যই 7 টি গাড়ি ধরণের উপরের মতো দেখতে আউটপুট করতে সক্ষম হবে।
  • কমান্ড লাইন থেকে সরাসরি ব্যবহারকারীর কাছ থেকে ইনপুট নিন (যেমন বার্তা বাক্স)। Stdout যাও আউটপুট। (ইনপুট চারপাশের উদ্ধৃতি ভাল।)
  • ট্রেনের গাড়ি আঁকতে আউটপুটটির উচ্চতা হয় 6 বা সর্বোচ্চ উচ্চতা হওয়া উচিত।
  • --প্রথম গাড়ির সামনের দিকে বা শেষ গাড়ির পিছনে কাপলিংগুলি ( ) রাখবেন না ।


সবসময় কি Eসামনে থাকবে এবং Eমাঝখানে কোনও জায়গা থাকতে পারে ?
মার্টিন ইন্ডার

1
"সবচেয়ে সংক্ষিপ্ততম প্রোগ্রামটি জিতেছে।" => আমরা কি বাইট বা অক্ষর গণনা করব?
xem


1
আরেকটি সম্পর্কিত প্রশ্ন: কোডগল্ফ.স্ট্যাকেক্সেঞ্জাও.ইউ
জাস্টিন

উত্তর:


21

পার্ল, 265 বাইট

যেহেতু এই এন্ট্রিটিতে বাইট রয়েছে যা প্রিন্টযোগ্য এএসসিআইআই অক্ষরের সাথে সামঞ্জস্য করে না, তাই এটি সরাসরি এখানে অনুলিপি-আটকানো যাবে না। পরিবর্তে, আমি এটিকে হেক্স ডাম্প হিসাবে সরবরাহ করছি। ইউনিক্স-ইসহ সিস্টেমে ব্যবহারকারীরা নিম্নলিখিত হেক্স ডাম্পকে xxd -rকমান্ডটি সরবরাহ করে স্ক্রিপ্টটি পুনর্গঠন করতে পারবেন :

0000000: 7573 6520 436f 6d70 7265 7373 275a 6c69  use Compress'Zli
0000010: 623b 6576 616c 2075 6e63 6f6d 7072 6573  b;eval uncompres
0000020: 7320 2778 daad 9241 6b83 3014 c7ef f914  s 'x...Ak.0.....
0000030: ef10 6add f67c 5ed6 8b06 c646 476f dda1  ..j..|^....FGo..
0000040: 3723 c183 1d85 8212 c740 087e f625 a6a3  7#.......@.~.%..
0000050: b1f6 24fd 3de1 3d7f e8fb e790 b74a 74ed  ..$.=.=......Jt.
0000060: f9f4 c3e9 25cf a328 6310 a094 6b4c 8c78  ....%..(c...kL.x
0000070: 2569 5406 8a12 8cf8 c7ab 09b1 ff71 0222  %iT..........q."
0000080: 833d da02 b874 2981 c10d 3333 df74 39c1  .=...t)...33.t9.
0000090: f531 d6dc 0f03 8f9f 9666 a12d 7021 6e7a  .1.......f.-p!nz
00000a0: 6416 2807 228e dd99 3584 c40f cc52 53ac  d.(."...5....RS.
00000b0: 9160 82a2 4559 0bcd a22c ff2e 1cc1 0e63  .`..EY...,.....c
00000c0: 9d09 6f85 25b8 13b3 8470 3fe3 5c27 a1eb  ..o.%....p?.\'..
00000d0: df5a 7735 b44d 2b86 9eb6 5fef 87dd e707  .Zw5.M+..._.....
00000e0: a5b8 219d b1ae eaed 3743 4709 f1aa d83c  ..!.....7CG....<
00000f0: f1d5 3357 257d 6be7 1039 9186 63a3 214d  ..3W%}k..9..c.!M
0000100: 9257 f607 1251 a1e7 27                   .W...Q..'

স্ক্রিপ্টটি পার্ল 5.10 sayবৈশিষ্ট্যটি ব্যবহার করে এবং তাই এটি চালানো দরকার perl -M5.010। এটি অক্ষরগুলি সমন্বিত একটি একক কমান্ড লাইন আর্গুমেন্ট গ্রহণ করে এবং এটির EPBTHFCসাথে সম্পর্কিত ট্রেনের গাড়ি আউটপুট দেয়। উদাহরণস্বরূপ, ইনপুট FEHনিম্নলিখিত আউটপুট উত্পাদন করে:

                             __                     
                 ======      \/                     
_______________  | [] |=========                    
\ | | | | | | /  |              )                   
===============--================--===============
 O-O       O-O    O-O-O   O-O-O \\  O-O       O-O   

স্ক্রিপ্টের শুরুতে পঠনযোগ্য কোডটি সহজেই স্ক্রিপ্টের শৃঙ্খলাতে থাকা জিলিব-সংক্ষেপিত স্ট্রিংটিকে সংক্ষেপিত করে এটিকে ব্যাখ্যা করে। ঘূর্ণনশীল কোডটি ঘুরে দেখা যায়:

@a=split$/,<<'';
            __    
======      \/    
| [] |=========   
|              )  
================--
 O-O-O   O-O-O \\ 


===============  
| [] [] [] [] |  
===============--
 O-O       O-O   


===============  
|-|-|  |  |-|-|  
===============--
 O-O       O-O   


 _____---_____   
(             )  
===============--
 O-O       O-O   


_______________  
\ | | | | | | /  
===============--
 O-O       O-O   




===============--
 O-O       O-O   

    =====      
====|   |====  
| []     [] |  
=============--
 O-O     O-O   

$i=reverse pop=~y/EPBTHFC/0-6/r;
say$i=~s/./$a[6*$&+$_]/gr=~s/--$//r for 0..5

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

দ্রষ্টব্য যে এটি একটি প্রথম প্রথম প্রচেষ্টা। আমি নিশ্চিত যে উত্সে ট্রেনের গাড়িগুলিকে পুনরায় অর্ডার করার মতো বিভিন্নতা নিয়ে খেলে দৈর্ঘ্যের বেশ কয়েকটি বাইট শেভ করা সম্ভব হবে।


62

পাইথন, 464

from curses import*
E,P,B,T,H,F,C='eJyNkM0NgDAIhe9MwVEPpBN0AxMHsKaLdHgfpVr7E+NHUyCQR4C5EiP5jKXBUeLj5ORvkDes5DtEiHeBoWo+hI36NtN9XurrRaVMQTSTEBizPo3+SGBBICLZ0/K9y0whtlDA/Gruj8SwyaRJA9tSPz16qmdTxqO9VeAvC5VloQ=='.decode('base64').decode('zlib').split('L')
i=[s.split('\n')for s in map(eval,raw_input()[::-1])]
h=max(sum(map(bool,s))for s in i)
w=initscr()
x=0
for t in i:[w.addstr(y,x,t[y+6-h])for y in range(h)];x+=len(t[-2])
w.addstr(h-2,x-2,'  ')
w.getch()
endwin()

আমি অভিশাপ ব্যবহার করে একটি পদ্ধতির জন্য গিয়েছিলাম। এটি সত্যিই প্রতিযোগিতা করতে পারে না, তবে আমি এটির সাথে কিছুটা মজা করেছি (30 630 বাইট):

রেলগাড়ি

from curses import*
E,P,B,T,H,F,C='eJyFkMENwCAIRe9M8Y/tgTiBGzTpALVxEYcvSFqiNO2DCAb8BgCnVsodu5ZEDceJlm/kPrBSniDsLCY1i6VsNDeZ6uMt1GEKMJU3ARYD1DX7F5DRBGbukZbvKeL7OkJF/nZL/wJxhrlFE6vooYtuviwlrso1JF745GMr'.decode('base64').decode('zlib').split('L')
i=[s.split('\n')for s in map(eval,raw_input()[::-1])]
h=max(sum(map(bool,s))for s in i)
w=initscr()
m=w.getmaxyx()[1]
for o in range(-sum(2+len(t[-2])for t in i),m):
 x=o
 for t in i:
  if m>x>o:w.addnstr(h-2,max(x,0),'--'[max(0,-x):],m-x);x+=2
  [w.addnstr(y,max(x,0),t[y+6-h][max(0,-x):],m-x)for y in range(h)if x<m];x+=len(t[-2])
 w.move(h,0);w.refresh();w.clear();napms(90)
endwin()

10
বাহ, যে অ্যানিমেশন দুর্দান্ত! (+1) অ্যানিমেটেড জিআইএফ পোস্টগুলিতে কাজ করে, তাই আপনি কোনও লিঙ্কের পরিবর্তে প্রকৃত চিত্রটি সম্পাদনা করতে পারেন, যা আপনার সমাধানটিকে ফ্যানসিয়ার দেখাবে। ;)
ডুরকনবব

2
@ ডুরকনব ধন্যবাদ আমি ছবিটি putুকিয়ে দেব - অ্যানিমেটেড জিআইএফ খুব বিরক্ত হবে কিনা তা আমি নিশ্চিত ছিলাম না।
grc

24
@ জিআরসি বিরক্তিকর? আপনি কি নিশ্চিত যে আপনি ভীতিহীন মানে না?
nderscore

4
এএসসিআইআই আর্ট গিফের চেয়ে ভাল আর কিছুই নেই। +1 টি!
ক্রিস সাইরেফাইস

4
এটি হোমব্রুতে পাঠান! sl২.০
ক্রোলটান

8

পাইথন ( 582 488 476 450 চর)

import sys
A=sys.argv[1]
h=0
c='eJyVkrEKAzEIhnef4h97g9x+kOVKS7d2uK0peZE8fNXQS3NCpb+BREU/YnIhfKkUgJKpBfIsgYrnCzV9pIFBE6WDCHcWk1zbMy0PGovg/GMPw+6rujwaAY0CWtb/ESwG6NJTjNhChMxQxMy2g06/R+URtxBRRlGWC3SbY8Q1vkXgh4gz+Qb7v7Jy/US1P7TKP3NvbG3fy/V/Cw=='.decode('base64').decode('zlib').split(':')
C={}
for x in c:X=x.split('\n');C[X[0]]=X[1:-1]
for c in A:h=max(h,1+('F..CE'.find(c)+1or 3))
for y in range(6-h,6):print(' -'[y==4]*2).join(C[c][y]for c in A[::-1])

আসকি-সালাদ হ'ল বেস 64 এনকোডেড জিলিব-সংক্ষেপিত স্ট্রিং যা পরিসংখ্যানগুলি সহ ...


1. string.decode('base64')2. j=lambda y:y==4and'--'or' '3. 1-স্পেস for c in A[::-1]:i.append(C[c][y])f.append(j(y).join(i)
ইনডেন্টস

এছাড়াও, গত 6 লাইন হতে পারেfor l in((y==4and'--'or' ').join(C[c][y]for c in A[::-1])for y in range(6-h,6)):print l
seequ

1
আমি কিছু উন্নতি সহ একটি সম্পাদনা প্রস্তাব।
seequ

1
মনে আসা, শেষ লাইনটি হতে পারেfor y in range(6-h,6):print(y==4and'--'or' ').join(C[c][y]for c in A[::-1])
seequ

@TheRare আপনার দ্বিতীয় (!) উন্নতি অন্তর্ভুক্ত! তোমার!
ম্যাক্সহারেডুম

7

পাইথন, 402 369

import sys
for n in range(6):
 l= sys.argv[1][::-1]
 for x,y in zip("EPBTHFC",range(0,42,6)):
  l=l.replace(x,'eJytktsNgCAMRVfpp340TMAHEziAGBZhePvgLYmGeGosXqQXSAEqIfDbWUElb0SKcF4QbUaljr0srCA6OJCC5jV7cDAyUYY6eQPlic9/kleqoKNVL6QANkmj37zohglElMzK9naJy16hhxRPR6ph/jzXB2XBS76bZpQa3Hex7Qpm1hOtg+Yb0a6PSA=='.decode('base64').decode('zlib').split('A')[y+n]).strip('-')
 print l

উন্নতির জন্য আপনাকে ধন্যবাদ, উগোরেন!


আমার কোড ফর্ম্যাট করার জন্য আপনাকে ধন্যবাদ! আমি এটির জন্য নতুন এবং আমি সত্যিই জানি না আমি কী করছি।
এলভিওন

1
: কিছু অক্ষর সংরক্ষণ range(6),for x,y in zip("EPBTHFC",range(0,42,6)):
ugoren

4

জাভাস্ক্রিপ্ট,> 471 বাইট

ওয়েল ক্রেপ, ইতিমধ্যে সেরা স্কোরের ওপরে, এবং এখনও আমি এটি ক্রমানুসারে সমস্ত কিছু মুদ্রণ করতে পারিনি। তবে আমি এটির জন্য একটি বিকেল কাটিয়েছি এবং এখনও এটি দেখাতে চেয়েছিলাম।

function c(i){
    var i=i.replace(/f/,"=15r h 7h").match(/(\D)(\d+)?/g),
    s={
        's':'\\',
        'w':' []',
        'b':' |',
        'h':'O-O',
        't':'-|',
        'r':'\n'
    }
    ,
    a=[];
    for(j in i){
        x=/(\D)(\d+)?/g.exec(i[j]),
        a[j]=x[1],
        n=x[2]/1,
        o="";
        while(x[2]&&0<n--)o+=a[j];
        a[j]=o||a[j];
    }
    r=a.join('');
    for(j in s)r=r.replace(RegExp(j,"g"),s[j]);
    return r;
}
E=" 12_2r=6 6s/r|wb=9r| 14)r=16r h-O 3h-O ss",
P="r2=15r|w4brf",
B="r2=15r|t2 b bt2rf",
T="r2 _5-3_5r( 13)rf",
H="r2_15rsb6 /rf",
F="r4f",
C="r 4=5r=4| 3|=4r|w 4wbr=13r h 5h";
console.log(c(C));

শুধু console.log(c(L)); // L=train car letterএবং এটি কনসোলে একটি গাড়ি প্রিন্ট করবে। আমি জানি আমি কেবল এটি করার জন্যও অনেক কিছু ছাঁটাই করতে পারি, তবে আমি হাল ছেড়ে দিই না। : P: P


6
আমাকে এটি করতে হয়েছিল: jsfiddle.net/34w2z
উইলিয়াম বারবোসা

3
@ উইলিয়াম বারবোসা হা, আমি পিছিয়ে আছি আমি ছিলাম, "এটি কী যাদু? আমার কোডটি চলমান।" এবং স্ক্রিপ্টটি তৈরি করতে আপনি স্ক্রিপ্টে যা পরিবর্তন করেছেন তার জন্য সমস্ত অনুসন্ধান করে ... তারপরে আমার চোখগুলি এইচটিএমএল পর্যন্ত সরিয়ে নিয়েছে। আহ, <marquee>তুমি শয়তান! কেন তারা কখনও আপনাকে হতাশ করেছে?
ফিল টুন 19

4
@ উইলিয়াম বারবোসা আমার বিশ্বাস আপনি এই ট্যাগটির জন্য একমাত্র এবং বৈধ ব্যবহার সন্ধান করেছেন।
মাইক ক্লার্ক

3

জাভা (583 টি অক্ষর)

বেসিক হোমমেড সংকোচনের সাথে - নিশ্চিত নয় যে এটি এতটা দক্ষ যদিও :-) ট্রেনের স্ট্রিং (যেমন EEHTBPFC) অবশ্যই প্যারামিটার হিসাবে পাস করতে হবে be

class C{public static void main(String[]a){String s="",y="thAthA",x=" *!*h*!* A",q="vjA",r=q+x+y;String[]m=("hP78A^\\#$8A% &' %j.,A%hh) Ajj.A *!*!*8*!*!* /A"+y+q+"% &' &' &' &' %A"+r+q+"%!%!%,%,%!%!%A"+r+" [9[ A(tP)A"+r+"ss+A# % % % % % % $A"+r+y+q+x+"tPADRDAF%8%FA% &'P&' %AvRA *!*P*!* ").split("A");for(int l,z,i,j=0;j<6;j++){for(i=a[0].length()-1;i>=0;i--){z=a[0].charAt(i);r=m["EPBTHFC".indexOf(z)*6+j];for(int c:r.toCharArray()){c-=32;for(l=0;l<=c/12;l++)s+=" -=\\/|[]()O_".charAt(c%12);}if(i>0)for(l=0;l<(z=='E'&&j!=4?1:2);l++)s+=j==4?"-":" ";}s+="\n";}System.out.println(s);}}

দুচোখে:

class C{
    public static void main(String[]a){
        String s="",y="thAthA",x=" *!*h*!* A",q="vjA",r=q+x+y;
        String[]m=("hP78A^\\#$8A% &' %j.,A%hh) Ajj.A *!*!*8*!*!* /A"+y+q+"% &' &' &' &' %A"+r+q+"%!%!%,%,%!%!%A"+r+" [9[ A(tP)A"+r+"ss+A# % % % % % % $A"+r+y+q+x+"tPADRDAF%8%FA% &'P&' %AvRA *!*P*!* ").split("A");
        for(int l,z,i,j=0;j<6;j++){
            for(i=a[0].length()-1;i>=0;i--){
                z=a[0].charAt(i);
                r=m["EPBTHFC".indexOf(z)*6+j];
                for(int c:r.toCharArray()) {
                    c-=32;
                    for(l=0;l<=c/12;l++)
                        s+=" -=\\/|[]()O_".charAt(c%12);
                }
                if(i>0)for(l=0;l<(z=='E'&&j!=4?1:2);l++)s+=j==4?"-":" ";
            }
            s+="\n";
        }
        System.out.println(s);
    }
}

3

সি #, 758 664 603 562bytes

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

using c=System.Console;class P{static void Main(){string d=c.ReadLine(),a="",z=@"99 1_5 4=78 5=5 \/1 3=|2 |3=14 29= 4_2-4_ 14_| [] |8= | []4 [] |14 | [] [] [] [] 1|-|-|1 |1 |-|-|(12 )\ | | | | | | /|13 )103= O-O4 O-O1 O-O6 O-O1 O-O6 O-O1 O-O6 O-O1 O-O6 O-O1 O-O6 O-O1 O-O-O2 O-O-O c";int j=0,e;foreach(var h in z)if(h>47&&h<58)j=j*10+h-48;else for(j++;j>0;j--)a+=h;int[]x={0,13,28,43,58,73,88,104};for(;j<6;j++){z="";foreach(var h in d)z=a.Substring(j*104+x[e="CFPBTHE".IndexOf(h)],x[e+1]-x[e])+(j==4?"--":"  ")+z;c.WriteLine(z.Replace("c ",@"\\").Trim('-'));}}}

কিছুটা ফর্ম্যাট করা:

using c=System.Console;
class P{static void Main(){
    string d=c.ReadLine(),a="",z=@"99 1_5 4=78 5=5 \/1 3=|2 |3=14 29= 4_2-4_ 14_| [] |8= | []4 [] |14 | [] [] [] [] 1|-|-|1 |1 |-|-|(12 )\ | | | | | | /|13 )103= O-O4 O-O1 O-O6 O-O1 O-O6 O-O1 O-O6 O-O1 O-O6 O-O1 O-O6 O-O1 O-O-O2 O-O-O c";

    int j=0,e;

    foreach(var h in z)
        if(h>47&&h<58)
            j=j*10+h-48;
        else
            for(j++;j>0;j--)
                a+=h;

    int[]x={0,13,28,43,58,73,88,104};

    for(;j<6;j++)
    {
        z="";
        foreach(var h in d)
            z=a.Substring(j*104+x[e="CFPBTHE".IndexOf(h)],x[e+1]-x[e])+(j==4?"--":"  ")+z;
        c.WriteLine(z.Replace("c ",@"\\").Trim('-'));
    }
}}

স্ট্রিংটি খুব সহজভাবে সংক্ষিপ্তভাবে অক্ষর দ্বারা অনুসরণ করা অক্ষরগুলির সংখ্যার একটি স্ট্রিং প্রতিনিধিত্ব করে (বিয়োগ 1), বা কেবলমাত্র একটি চরিত্র যদি তাদের মধ্যে একটি থাকে তবে (আমি ASCII এর সাথে লেগে থাকতে চাই এবং কিছু করা এড়াতে চাইতাম) সাব-চার স্তরে)। এনকোডার (স্কোর অন্তর্ভুক্ত নয়):

string compress(string str)
{
    str += (char)0; // too lazy to write a proper loop
    string res = "";

    char prev = str[0];
    int count = 1;

    for (int i = 1; i < str.Length; i++)
    {
        char cur = str[i];
        if (cur != prev)
        {
            if (count != 1)
                res += (count - 1).ToString();
            res += prev;

            prev = cur;
            count = 1;
        }
        else
        {
            count++;
        }
    }

    return res;
}

3

এখানে আমার সমাধানটি পিএইচপি (v5.4 সামঞ্জস্যপূর্ণ), 512 বাইটস। সংক্ষিপ্ত হতে পারে তবে এটি চেষ্টা করার জন্য কেবল একটি দ্রুত নির্মাণ তৈরি করা হয়েছে।

<?php $m=array_combine(str_split('EPBTHFC'),explode('$',gzinflate(base64_decode('jZDBDYAwCEXvfwoOHvRAnKAzOICYLtLhhVYlrY320RQI5BMgcmJEyJRUViTaD0rhRvOKBaEBtLGa1ooXmdA2FdXnJfQ0rgkW9RRYjcieRQMKupzCzNlj/t6jIxBrIDrdbR1QwH+PRaVkn107+cWM971cxPwJ'))));$t=['','','','','',''];$i=str_split(strrev(strtoupper($argv[1])));foreach($i as $w=>$n){$c=$m[$n];$c=explode("\n",$c);foreach($t as $j=>&$p){$p.=str_pad($c[$j],$n=='E'?18:($n=='C'?15:17),$j==4?'-':' ');if($w==count($i)-1)$p=rtrim($p,' -');}}echo implode("\n",$t)."\n";

এটি সহজ পঠনের জন্য একটি স্প্রেড-আউট সংস্করণ:

<?php
$m=array_combine(
    str_split('EPBTHFC'),
    explode('$',
        gzinflate(
            base64_decode(
                'jZDBDYAwCEXvfwoOHvRAnKAzOICYLtLhhVYlrY320RQI5BMgcmJEyJRUViTaD0rhRvOKBaEBtLGa1ooXmdA2FdXnJfQ0rgkW9RRYjcieRQMKupzCzNlj/t6jIxBrIDrdbR1QwH+PRaVkn107+cWM971cxPwJ'
            )
        )
    )
);
$t=['','','','','',''];
$i=str_split(strrev(strtoupper($argv[1])));
foreach($i as $w=>$n)
{
    $c=$m[$n];
    $c=explode("\n",$c);
    foreach($t as $j=>&$p)
    {
        $p.=str_pad($c[$j],$n=='E'?18:($n=='C'?15:17),$j==4?'-':' ');
        if($w==count($i)-1)$p=rtrim($p,' -');
    }
}
echo implode("\n",$t)."\n";

2

পাইথন, 491 বাইট

import zlib as z,sys,base64 as d
y=eval(z.decompress(d.b64decode('eNqlksEOwiAMhl/lv1WTkd1NdtFovLmDt7HwIOK729LJmJDY6F8SyA/0g6YPOtNhIhQKAaCOhiS1fJ+siGlGHN5Sa6N9vriKLdwcB+/r7D3NHY2fYCRI7dT50kPyiM0zUCKUCiEe/yA6DkCGrKzEu5XIVWc559Iszu5bYdvEq5UYtmLH8/fW6K3Ei/mPP1W+QTxVxCVXbtklk3RnLHtG1OqYkqOU5wsfZZmx')))
w=sys.argv[1][::-1]
x=[""]*6
v=range
u=len(w)
for j in v(6):
 for i in v(u):
  if j==5 and w[i]=='E':k="\\ "
  elif j==4 and i!=u-1:k="--"
  else:k="  "
  x[j]+=y[w[i]][j]+k
for q in x:print q

আমি এটি পছন্দ করেছিলাম কীভাবে এটি প্রকাশিত হয়েছিল, যদিও এটি বিজয়ী হবে না।


আপনি কিছুটা সংরক্ষণ করতে পরিবর্তন if j==5...x[j]+=y[w[i]][j]+kকরতে x[j]+=y[w[i]][j]+('\\ 'if j==5 and w[i]=='E'else'--'if j==4 and i!=u-1 else' ')পারেন। (এছাড়াও আপনি সামনে দুটি জায়গার পরিবর্তে একটি ট্যাব রাখতে পারেন x[j]...))
ক্যালভিনের

1

জিএনইউ সেড , 491 বাইট

s/./& #/g
s:E:0S__s%1esss\\/s%2|bpef %3|Ss)%4E=@5 o-Os o-O \\\\:g
s/P/zE%3|bbbbp%4E@5ut/g
s/B/zE%3|-|-|s|s|-|-|%4E@5ut/g
s/T/z l---l %3(S )%4E@5ut/g
s:H:zlll%3\\pppppp /%4E@5ut:g
s/F/zSs %3Ss %4E@5ut/g
s/C/0S %1ssf==ss%2f=|spf=%3|bssbp%4ee=@5 ts t/g
s/z/0Ss %1Ss %2/g
s/%/s%/g
s/@/--%/g
s/u/ tss /g
s/t/os/g
s/S/ssssss/g
s/s/  /g
s/E/eef/g
s/e/ff/g
s/f/===/g
s/b/ []/g
s/p/ |/g
s/o/O-O/g
s/l/_____/g
s/^/0123456;/
:
s/([0-6])(.*;)\1([^%#]+)[%#](.*)/\1\3!\2\4/
t
s/(--!)?[1-6]/\n/g
s/[0!;]//g

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

ব্যাখ্যা

এটি মূলত একটি সুপার ন্যাভ কাস্টম কম্প্রেশন স্কিম। প্রথম লাইনটি ইনপুটটির প্রতিটি বর্ণের সাথে একটি স্থান এবং #প্রতিটি অংশের শেষে চিহ্নিত করতে যুক্ত করে:

s/./& #/g

পরবর্তী 7 টি লাইন প্রতিটি অক্ষরকে সংশ্লিষ্ট ASCII চিত্রের সংকীর্ণ উপস্থাপনের সাথে প্রতিস্থাপন করে:

s:E:0S__s%1esss\\/s%2|bpef %3|Ss)%4E=@5 o-Os o-O \\\\:g
s/P/zE%3|bbbbp%4E@5ut/g
s/B/zE%3|-|-|s|s|-|-|%4E@5ut/g
s/T/z l---l %3(S )%4E@5ut/g
s:H:zlll%3\\pppppp /%4E@5ut:g
s/F/zSs %3Ss %4E@5ut/g
s/C/0S %1ssf==ss%2f=|spf=%3|bssbp%4ee=@5 ts t/g

পরবর্তী 14 লাইনগুলি "ডিকম্প্রেশন" করে। উদাহরণস্বরূপ, Sছয়টি এসকে একটি সংশ্লেষিত করা s, এবং sদুটি স্পেসে একটি সংক্ষেপিত হয়, তাই S12 স্পেসে পরিণত হয়।

s/z/0Ss %1Ss %2/g
s/%/s%/g
s/@/--%/g
s/u/ tss /g
s/t/os/g
s/S/ssssss/g
s/s/  /g
s/E/eef/g
s/e/ff/g
s/f/===/g
s/b/ []/g
s/p/ |/g
s/o/O-O/g
s/l/_____/g

সঙ্কুচিত, প্রতিটি গাড়ির লাইনগুলি একটি লাইন সংখ্যার আগে হয় এবং প্রতিটি গাড়ি সমাপ্ত হয় #। বাকী কোডটি 0123456;প্যাটার্ন স্পেসে (লাইন নম্বর এবং ডিলিমিটার) প্রিপেন্ড করে এবং তারপরে একটি লুপে প্রতিটি ডিজিটকে প্রতিটি গাড়ির সাথে সম্পর্কিত লাইনের সাথে প্রতিস্থাপন করে।

s/^/0123456;/
:
  s/([0-6])(.*;)\1([^%#]+)[%#](.*)/\1\3!\2\4/
  t

শেষ অবধি, এটি অঙ্কগুলিতে বিভক্ত হয়ে প্যাটার্ন স্পেসকে লাইনে বিভক্ত করে এবং বহিরাগত অক্ষরগুলি পরিষ্কার করে:

s/(--!)?[1-6]/\n/g
s/[0!;]//g

এখানে উন্নতির জন্য অনেক জায়গা রয়েছে। আমি সংকোচনের সর্বোত্তম সেট সন্ধান সম্পর্কে মোটেও কঠোর ছিলাম না, এবং 14 টি পৃথক এসের পরিবর্তে একটি অনুসন্ধান টেবিল ব্যবহার s///gকরা সহজ জয় হবে। আমি এই আরও কিছু দিয়ে নুডল করতে পারি বা নাও পারি।


1

পাইথন 3 , 529 বাইট

a=['']*6
T,R="EPBTHFC",{'S':' '*3,'E':'='*3,'W':'[] ','U':'_'*5,'P':'| ','H':'O-O'}
A=('SSSS__  ',)+('S'*5,)*5+('SSSS ',),('EESS\/  ',)+('S'*5,)*5+('S E==S ',),('PW|EEE ','E'*5,'E'*5,' U---U ','U'*3,'S'*5,'E=|S|E='),('P SSSS)','PWWWW|','|-|-P P |-|-|','(SSSS )','\ PPPPPP/','S'*5,'PWS W|'),('E'*5+'=--',)+('E'*5+'--',)*5+('EEEE=--',),(' H-OSH-O \\\\ ',)+(' HSS HS',)*5+(' HS  HS',)
for C in input():
 for I in range(6):
  a[I]=A[I][T.index(C)]+'  '*(I<4)+a[I]
  for k in R:a[I]=a[I].replace(k,R[k])
a[4]=a[4][:-2]
[*map(print,a)]

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

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


1

সি (জিসিসি) , 501 499 490 489 484 বাইট

-2 -9 -1 -5 বাইট সিলিংক্যাট ধন্যবাদ ।

#define A": O-Og O-O:o=:"
char*p,*q,s[80];j,k,n;main(i,a)char**a;{for(i=6;i--;puts(q))for(k=strlen(a[1]);k--;*q=0,printf("%-*s%s",j?j^6?15:13:16,s,k?i^1?!j*!i+"  ":"--":q)){j=index(p="EPBTHFC",a[1][k])-p;for(n=j*6+i,p=" O-O-Oc O-O-O \\\\:p=:|n ):| [] |i=:f=f \\/:l __"A"| [] [] [] [] |:o=::"A"|-|-|  |  |-|-|:o=::"A"(m ): e_c-e_::"A"\\ | | | | | | /:o_::"A":::: O-Oe O-O:m=:| []e [] |:d=|c |d=:d e=::";n--;)for(;*p++-58;);for(q=s;*p^58;p++)for(n=*p>96&*p<123?*p++-96:1;n--;)*q++=*p;}}

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


@ সেলিংক্যাট চিয়ার্স!
গ্যাস্ট্রোপনার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.