সাইনোসয়েডাল পাঠ্য


30

লক্ষ্য: একটি প্রোগ্রাম বা ফাংশন লিখুন যা একটি সাইনোসাইডাল আকারে একটি ইনপুট স্ট্রিং প্রিন্ট করে।

এএসসিআইআই সাইনোসয়েড

এখানে সাইনোসয়েডের একটি সময় রয়েছে:

         .......                                 
      ...       ...                              
    ..             ..                            
   .                 .                           
  .                   .                          
 .                     .                         
.                       .                       .
                         .                     . 
                          .                   .  
                           .                 .   
                            ..             ..    
                              ...       ...      
                                 .......         

মনে রাখবেন যে প্রতিটি কলামে ঠিক একটি বিন্দু রয়েছে।

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

ইনপুট

  • ইনপুটগুলি ASCII স্ট্রিংগুলিতে ASCII দশমিক 32 (স্পেস) এবং ASCII দশমিক 126 (টিলডে ~) এর মধ্যে কেবল অক্ষর থাকে।
  • ইনপুটগুলি সর্বদা এক লাইনে থাকবে (কোনও লাইন ব্রেক নেই)।
  • ইনপুটগুলি STDIN, ফাংশন প্যারামিটার, কমান্ড লাইন আর্গুমেন্ট বা এর অনুরূপ অন্য কোনও কিছুর মাধ্যমে নেওয়া যায়।

আউটপুট

  • আউটপুট প্রদত্ত পরীক্ষার ক্ষেত্রে যেমন হয় ঠিক তেমন মুদ্রণ করতে হবে।
  • লাইনগুলিতে ট্রেলিং স্পেসগুলি অনুমতি দেওয়া হয় যতক্ষণ না এই ট্রেলিং স্পেসগুলির সাথে লাইনের দৈর্ঘ্য দীর্ঘতম লাইনের দৈর্ঘ্য (যেটিতে এটি শেষ অক্ষরের সাথে থাকে) এর চেয়ে বেশি হয় না।
  • কোন নেতৃস্থানীয় / পিছনের লাইনের অনুমতি নেই।

পরীক্ষার মামলা

  • ইনপুট: .................................................

আউটপুট:

         .......                                 
      ...       ...                              
    ..             ..                            
   .                 .                           
  .                   .                          
 .                     .                         
.                       .                       .
                         .                     . 
                          .                   .  
                           .                 .   
                            ..             ..    
                              ...       ...      
                                 .......         
  • ইনপুট: Programming Puzzles & Code Golf Stack Exchange is a question and answer site for programming puzzle enthusiasts and code golfers. It's 100% free, no registration required.

আউটপুট:

         ng Puzz                                         ion and                                         siasts                                          stratio           
      mmi       les                                   est        an                                   thu       and                                   egi       n r        
    ra              &                               qu             sw                               en              c                                r             eq      
   g                                                                 e                                               o                             o                 u     
  o                   C                           a                   r                           e                   d                           n                   i    
 r                     o                                                                         l                     e                                               r   
P                       d                       s                       s                       z                                               ,                       e  
                         e                     i                         i                     z                         g                     e                         d 
                                                                          t                   u                           o                   e                           .
                           G                 e                             e                 p                             l                 r                             
                            ol             ng                                f             g                                fe              f                              
                              f S       cha                                   or        min                                   rs.       00%                                
                                 tack Ex                                         program                                          It's 1                                   
  • ইনপুট: Short text.

আউটপুট:

         t.
      tex  
    t      
   r       
  o        
 h         
S          
  • ইনপুট: The quick brown fox jumps over the lazy dog

আউটপুট:

          brown                            
      ick       fox                        
    qu              j                      
                     u                     
  e                   m                    
 h                     p                   
T                       s                  

                          o                
                           v               
                            er             
                               th       dog
                                 e lazy    

স্কোরিং

এটি , তাই বাইটের মধ্যে সবচেয়ে সংক্ষিপ্ততম প্রোগ্রাম বা ফাংশন।


এটি আমি যা ভাবছিলাম
বেটা ডেকে

ওহ আমি দেখতে কিছুটা একই রকম।
ফ্যাটালাইজ করুন

ঘটনাচক্রে, আপনার তরঙ্গটি বেশ সাইনোসয়েডাল নয়। (স্বাভাবিকভাবেই আমি sinএটি পুনরুত্পাদন করার জন্য একটি ফাংশন ব্যবহার করার চেষ্টা করেছি তবে অবস্থানগুলি কিছুটা দূরে রয়েছে))
ডেভিড জেড

@ ডেভিডজেড এটি আমাকে অবাক করে না, আমি ASCII আকারটি চোখের সামনে ফেলেছিলাম। এমনকি আপনি কলামগুলিতে কোনও "ফাঁক" ছাড়াই সাইনোসয়েডাল কিছু পেতে পারেন (যেমন কলামে ঠিক একটি বিন্দু)?
ফ্যাটালাইজ করুন

4
আমি টেস্ট কেস 2 এর আউটপুটটিতে সত্যিই দ্রুত পিছনে স্ক্রোল বারটি সরিয়ে নিজেকে বিনোদন দেওয়ার জন্য কয়েক মিনিট ব্যয় করেছি।
mbomb007

উত্তর:


7

পাইথ, 59 বাইট (57 টি অক্ষর)

Xjb.sC.>V+R*12\ Xz\ C9*+-L12K+JsM._+6jC\཈2tP_JKlz]*dlzC9d

প্রদর্শন.

একটি বাইনারি লুকআপ টেবিল ভিতরে এনকোডেড হয়েছে , যা মান 3912. এই বাইনারিতে রূপান্তরিত করা হয়, দান করেন [1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0]। এটি একটানা উচ্চতা মধ্যে পার্থক্য হিসাবে বিবেচনা করা হয়। 6 টি উপস্থাপিত করে, সমস্ত উপসর্গ গঠন করে এবং প্রতিটিটিকে তার যোগফলকে ম্যাপিংয়ের মাধ্যমে তরঙ্গের প্রথম প্রান্তিকে উত্পন্ন করা হয়।

sM._+6jC\཈2[6, 7, 8, 9, 10, 10, 11, 11, 11, 12, 12, 12, 12]উপরে বর্ণিত হিসাবে মূল্যায়ন । তারপরে, কোডটি এই স্ট্রিংটির বিপরীত দিকে তরঙ্গের প্রথমার্ধটি তৈরি করে এবং তারপরে 12 থেকে বিয়োগ করে পুরো তরঙ্গটি দেয়।

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

তারপরে, আমরা ফাঁকা লাইনগুলি অগ্রণী এবং পিছনে ফেলেছি। যাইহোক, আমরা ফাঁকা লাইনগুলি অগ্রণী বা পিছনে পিছনে ফেলতে পারি না যা ইনপুট থেকে ফাঁকা থাকে। এটি ইনপুটটিতে ট্যাবগুলি ( C9) দিয়ে ফাঁকা স্থান প্রতিস্থাপন করে প্রয়োগ করা হয় , যা ইনপুটটিতে থাকতে পারে না, ফাঁকা লাইনগুলি কেটে ফেলা যায় এবং ট্যাবগুলি ফাঁকা জায়গায় ফেরাতে পারে।


@ ফ্রাইআম দ্য এজিগম্যান 16 বাইটের ব্যয়ে স্থির হয়েছে।
isaacg

12

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

l=map(int,"654322111%08d1122345"%1);l+=[12-c for c in l]
def f(t):
 h=len(t);o=bytearray(' '*h+'\n')*13;i=0
 for c in t:o[i-~h*l[i%48]]=c;i+=1
 print o[:-1]

ব্যাখ্যা

  • পুরো কোডটি কেবল ফাঁকা স্থানগুলিতে একটি ব্লক তৈরি করে ( o) এবং ইনপুটটির অক্ষরের সাথে সঠিক স্থানটি প্রতিস্থাপন করে t

  • ভেরিয়েবল lশীর্ষ থেকে অফসেটের একটি তালিকা সঞ্চয় করে। যাতে nতম অক্ষরটি tলাইনে থাকা উচিত l[n]

  • বাইটারেটি মিউটেবল oস্ট্রিং হিসাবে কাজ করে, যেহেতু স্ট্রিংগুলি অজগরটিতে অবিচ্ছেদ্য ।

  • -~hহিসাবে একই h+1তবে স্থান সংরক্ষণ করে কারণ আমার বন্ধনী প্রয়োজন নেই।


7

জাভা, 219 209 199 বাইট

void p(char[]s){int r=6,c;String t="";for(;r>-7;r--,t+='\n')for(c=0;c<s.length;c++)t+=(s(c%48)==r?s[c]:' ');System.out.println(t);}int s(int a){return a<4?a:a<6?4:a<9?5:a<15?6:a<24?s(24-a):-s(a-24);}

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

public class SinusText
{
    public static void main(String[] args)
    {
        SinusText s = new SinusText();
        s.p(".................................................".toCharArray());
        s.p("Programming Puzzles & Code Golf Stack Exchange is a question and answer site for programming puzzle enthusiasts and code golfers. It's 100% free, no registration required.".toCharArray());
        s.p("Short text.".toCharArray());
        s.p("The quick brown fox jumps over the lazy dog".toCharArray());
    }
    void p(char[]s){int r=6,c;String t="";for(;r>-7;r--,t+='\n')for(c=0;c<s.length;c++)t+=(s(c%48)==r?s[c]:' ');System.out.println(t);}int s(int a){return a<4?a:a<6?4:a<9?5:a<15?6:a<24?s(24-a):-s(a-24);}
}

1
কিছু স্ট্রিং-ভিত্তিক চ্যালেঞ্জের জন্য আপনি যদি ইনপুট হিসাবে গ্রহণ করেন তবে এটি সংরক্ষণও করে char[]। এখানে, তা পরিত্রাণ পেতে হবে ()উপর lengthএবং নিষ্কাশন charAt()পাশাপাশি। আমি যদি এটি সঠিকভাবে পড়ছি তবে আপনি আরও print()কয়েকজনকে println()সংরক্ষণ করার পরিবর্তে ব্যবহার করতে পারেন ।
জিওবিটস

@ জিওবিটস এই স্বাধীনতার ডিগ্রি যা আমি অবগত ছিলাম না। কার্য বিবরণটি একটি "স্ট্রিং" সম্পর্কে আলোচনা করে, তাই আমি ভেবেছিলাম এটি সম্পর্কিত ভাষার "স্ট্রিং প্রতিনিধিত্ব" হতে হবে। ...
মার্কো 13

হ্যাঁ, আমি কিছুক্ষণ আগে মেটাতে এটি সম্পর্কে জিজ্ঞাসা করেছি। রেফারেন্সের জন্য এখানে একটি লিঙ্ক রয়েছে: meta.codegolf.stackexchange.com/q/2214/14215
জিওবিটস

ধন্যবাদ, এটি তখন 209। (সম্ভবত আমি পরে আরও কিছু বাইটগুলি
চেপে ধরার

1
হুম, কোনও বিশাল উন্নতি নয়, তবে আপনি পুরো জিনিসটি মডুলাস 48 করে 10 কেটে ফেলতে পারেন the শেষটি পরিবর্তন করুন ...a<24?s(24-a):-s(a-24);এবং এটি দিয়ে কল করুন s(c%48)
জিওবিটস

4

পার্ল, 222 বাইট

$n[$_%13].=substr$l[$_/13],$_%13,1for 0..13*(@l=map{(map{sprintf"%013b",$_}@t=(64,128,256,512,(1024)x2,(2048)x3),(4096)x7,reverse@u=(32,16,8,4,4,2,2,2),(1)x7,(reverse@u),@t)[$-++%48]=~s/./$&?$_:$"/egr}<>=~/./g);$,=$/;say@n

প্রয়োজন -Esayবাইনারি সংখ্যায় পূর্বে পূর্ণসংখ্যা হিসাবে পজিশনের জন্য এবং অ্যারের ফ্লিপিং সম্ভবত খুব কার্যকরী বাইট অনুযায়ী নয়। এছাড়াও আমি নিশ্চিত যে প্রচুর পরিমাণে সঞ্চয় করতে হবে, তাই আমি পোঁকতে থাকি এবং বাড়তে থাকি।

উদাহরণ আউটপুট:

$perl -E '$n[$_%13].=substr$l[$_/13],$_%13,1for 0..13*(@l=map{(map{sprintf"%013b",$_}@t=(64,128,256,512,(1024)x2,(2048)x3),(4096)x7,reverse@u=(32,16,8,4,4,2,2,2),(1)x7,(reverse@u),@t)[$-++%48]=~s/./$&?$_:$"/egr}<>=~/./g);$,=$/;say@n' <<< '.................................................'
         .......                                 
      ...       ...                              
    ..             ..                            
   .                 .                           
  .                   .                          
 .                     .                         
.                       .                       .
                         .                     . 
                          .                   .  
                           .                 .   
                            ..             ..    
                              ...       ...      
                                 .......         

$perl -E '$n[$_%13].=substr$l[$_/13],$_%13,1for 0..13*(@l=map{(map{sprintf"%013b",$_}@t=(64,128,256,512,(1024)x2,(2048)x3),(4096)x7,reverse@u=(32,16,8,4,4,2,2,2),(1)x7,(reverse@u),@t)[$-++%48]=~s/./$&?$_:$"/egr}<>=~/./g);$,=$/;say@n' <<< 'Programming Puzzles & Code Golf Stack Exchange is a question and answer site for programming puzzle enthusiasts and code golfers. It'\''s 100% free, no registration required.'
         ng Puzz                                         ion and                                         siasts                                          stratio           
      mmi       les                                   est        an                                   thu       and                                   egi       n r        
    ra              &                               qu             sw                               en              c                                r             eq      
   g                                                                 e                                               o                             o                 u     
  o                   C                           a                   r                           e                   d                           n                   i    
 r                     o                                                                         l                     e                                               r   
P                       d                       s                       s                       z                                               ,                       e  
                         e                     i                         i                     z                         g                     e                         d 
                                                                          t                   u                           o                   e                           .
                           G                 e                             e                 p                             l                 r                             
                            ol             ng                                f             g                                fe              f                              
                              f S       cha                                   or        min                                   rs.       00%                                
                                 tack Ex                                         program                                          It's 1                                   

3

জাভাস্ক্রিপ্ট, 251 243 224 220 217

সত্যই সহজ বাস্তবায়ন: এটি তরঙ্গের প্রতিটি অক্ষরের y- অবস্থান উপস্থাপন করতে অক্ষরের একটি স্ট্রিং ব্যবহার করে (অফসেট a, যা ASCII কোড 97)। এটি তখন সমস্ত সম্ভাব্য সারিগুলির মাধ্যমে পুনরাবৃত্তি করে; যদি বর্তমান সারির y- মানটি তরঙ্গের y- অবস্থানের সমান হয় তবে এটি স্ট্রিং থেকে একটি অক্ষর লিখবে। সারিটি সম্পূর্ণ ফাঁকা হয়ে গেলে সরিয়ে দেওয়ার জন্য শেষে একটি সাফাইও আছে।

মনে রাখবেন যে alert()উইন্ডোটিতে আউটপুটটি মনসোপেসড ফন্ট ব্যবহার না করে উইন্ডোতে ভীষণরূপে প্রদর্শিত হবে , আপনি console.log()আউটপুটটি সঠিক কিনা তা যাচাই করতে এটি পরিবর্তন করতে পারেন can

s=prompt(o=[])
for(y=i=0;y<13;++y){o[i]=""
for(x=0;x<s.length;++x)o[i]+=y=="gfedccbbbaaaaaaabbbccdefghijkklllmmmmmmmlllkkjih".charCodeAt(x%48)-97?s[x]:" "
if(o[i++].trim().length<1)o.splice(--i,1)}
alert(o.join("\n"))

EDIT1: ++এবং --বিদ্যমান।

সম্পাদনা 2: খালি লাইন অপসারণ এখন 17 টি অক্ষর সাশ্রয় করে বাকীগুলির মতো একই লুপে সম্পন্ন হয়েছে। অতিরিক্ত 2 টি অক্ষরের জন্যও এই বন্ধনীগুলির দরকার পড়েনি।

সম্পাদনা 3: 4 টি অক্ষর সাশ্রয় করে তরঙ্গরূপটি পরিবর্তনশীল হিসাবে ঘোষণার দরকার নেই।

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

সম্পাদনা 5: ডম হেস্টিংসের সৌজন্যে 3 বাইট সংরক্ষণ করা হয়েছে। আমি o.spliceখালি লাইনগুলি অপসারণ করতে ব্যর্থ হওয়ায় আমি ঠিক করতে পারি নি (কমপক্ষে আমার শেষে)।


1
চমৎকার কাজ! কয়েক জায়গায় আপনি একটি দম্পতি আরো সঞ্চয় করতে পারেন বাইট: প্রতিস্থাপন করুন: if(o[i++].trim().length<1)o.splice(--i,1)সঙ্গে o.splice(i-(t=!o[i++].match(/\s/)),t), জন্য -4, s=prompt() o=[]সঙ্গেs=prompt(o=[]) , -1 এবং for(y=0,i=0;y<13;++y){o[i]=""সঙ্গে for(y=i=0;y<13;++y){o[i]="", -2। আরও সাশ্রয়ের জন্য আপনার লুপগুলি একত্রিত করা সম্ভবত সম্ভব ... একটি শেষ কথা, এটিও লক্ষণীয় যে আপনার বর্তমান বাইট গণনার জন্য আমার কাছে কেবল ২২০ টি রয়েছে, সুতরাং আপনার 225 \r\nকেবলমাত্র \nআমি ধরে নিচ্ছি যে আপনি উপেক্ষা করতে পারবেন তার পরিবর্তে উইন্ডো হতে পারে (দয়া করে আমি ভুল হলে আমাকে সংশোধন করুন) ...
ডম হেস্টিংস

গাড়িতে ফিরলে ভাল ধরা! পরের বার আমি নোটপ্যাড ++ এত বেশি বিশ্বাস করব না :)
সান লাথাম

আমার মনে হয় আমি এটি কমে 166 এ এসেছি else অন্য কেউ যাচাই করতে পারবেন? আমি পুরো প্রোগ্রাম জুড়ে অ্যারে আচরণকে একটি লগতে পরিবর্তন করেছি। আমি যদি একটি বিবৃতি পরিবর্তে একটি শর্ট সার্কিট ব্যবহার করেছি এবং লুপের জন্য প্রথমটির শেষে লগটি বন্ধ করে বন্ধনীগুলি থেকে মুক্তি পেয়েছি।for(s=prompt(),y=0;y<13;y++,v.trim()&&console.log(v))for(v="",x=0;x<s.length;x++)v+=y=="gfedccbbbaaaaaaabbbccdefghijkklllmmmmmmmlllkkjih".charCodeAt(x%48)-97?s[x]:" "
ভার্টন

বিয়োগ শূন্য ব্যবহার করে == বিয়োগের সাথে প্রতিস্থাপন করতে, 165 চর for(s=prompt(y=0);y<13;y++,v.trim()&&console.log(v))for(v="",x=0;x<s.length;x++)v+="gfedccbbbaaaaaaabbbccdefghijkklllmmmmmmmlllkkjih".charCodeAt(x%48)-97-y?" ":s[x]
ভার্টন

আমার মন্তব্য থেকে এটি আটকে দিতে আমার সমস্যা হচ্ছে তাই একটি পেস্টবিন হেরে bit.ly/1VQgGXw 217-> 166 = 76%
Vartan

3

মতলব, 133 , 130 বাইট

এক লাইনার:

s=input('');y=ceil(5.6*sin(0:pi/24:pi-.1).^.9);l=[-y y]+7;n=numel(s);t=repmat(' ',13,n);for k=1:n;t(l(mod(k-1,48)+1),k)=s(k);end;t

এবং প্রসারিত সংস্করণ:

function f(s)
    y=ceil(5.6*sin(0:pi/24:pi-.1).^.9);l=[-y y]+7;  %// calculate the line number for each column position
    n=numel(s);                                     %// number of character in input
    t=repmat(' ',13,n);                             %// Create a blank canvas of whitespace characters
    for k=1:n
        t(l(mod(k-1,48)+1),k)=s(k);                 %// place each input character where it should be
    end
    t                                               %// force the output display

এক লাইনার কনসোল ( stdin) থেকে ইনপুট নেয় এবং এটি 130 বাইট। প্রসারিত সংস্করণ একটি ফাংশন সংজ্ঞা (+1 বাইট) দ্বারা কনসোল ইনপুট প্রতিস্থাপন করে তবে একটি লুপে পরীক্ষার ক্ষেত্রে ব্যবহার করতে আরও বেশি স্বাচ্ছন্দ্যযুক্ত:


বর্ণনা:

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


পরীক্ষা ক্ষেত্রে:

textsine.mআপনার পথে নীচে ফাংশন সংস্করণ সংরক্ষণ করুন , তারপরে চালান:

s = {'.................................................';...
    'Programming Puzzles & Code Golf Stack Exchange is a question and answer site for programming puzzle enthusiasts and code golfers. It''s 100% free, no registration required.';...
    'Short text.';...
    'The quick brown fox jumps over the lazy dog'};

for txtcase=1:4
    textsine(s{txtcase,1})
end

আউটপুট হবে:

t =

         .......                                 
      ...       ...                              
    ..             ..                            
   .                 .                           
  .                   .                          
 .                     .                         
.                       .                       .
                         .                     . 
                          .                   .  
                           .                 .   
                            ..             ..    
                              ...       ...      
                                 .......         


t =

         ng Puzz                                         ion and                                         siasts                                          stratio           
      mmi       les                                   est        an                                   thu       and                                   egi       n r        
    ra              &                               qu             sw                               en              c                                r             eq      
   g                                                                 e                                               o                             o                 u     
  o                   C                           a                   r                           e                   d                           n                   i    
 r                     o                                                                         l                     e                                               r   
P                       d                       s                       s                       z                                               ,                       e  
                         e                     i                         i                     z                         g                     e                         d 
                                                                          t                   u                           o                   e                           .
                           G                 e                             e                 p                             l                 r                             
                            ol             ng                                f             g                                fe              f                              
                              f S       cha                                   or        min                                   rs.       00%                                
                                 tack Ex                                         program                                          It's 1                                   


t =

         t.
      tex  
    t      
   r       
  o        
 h         
S          








t =

          brown                            
      ick       fox                        
    qu              j                      
                     u                     
  e                   m                    
 h                     p                   
T                       s                  

                          o                
                           v               
                            er             
                               th       dog
                                 e lazy    

আপনি যদি ইনপুট সহ একটি লাইন সংস্করণ পরীক্ষা করতে চান তবে stdinআপনার ইনপুট হিসাবে প্রবেশ করতে হবে এক একক string, তাই আপনার মধ্যে আপনার ইনপুট ঘিরা আছে চাই 'অক্ষর। উদাহরণ:

'Short text.'   %//   valid input
Short text.     %// INVALID input

ধন্যবাদ Luis Mendo3 বাইট শেভ করার জন্য ;-)


@ লুইস মেন্ডো, 3 বাইট সংরক্ষণের জন্য ধন্যবাদ :-)। আমি ব্যাখ্যা করেছি যে কীভাবে একটি সঠিক স্ট্রিং ইনপুট করা যায় যাতে সহজ s=input('');এখনও কাজ করে।
হকি

2

স্কেল 377 টি অক্ষর

প্রথম কাটা সম্ভবত অনুবাদ xকরার জন্য আরও ভাল সূত্র পেতে পারেনy

(s:String)⇒s.zipWithIndex.map(t⇒(t._1,t._2,t._2%48 match{
case i if i<5⇒6-i
case 5|19⇒2
case 6|7|8|16|17|18⇒1
case i if i<16⇒0
case i if i<29⇒i%20+2
case 29|43⇒10
case 30|31|32|40|41|42⇒11
case i if i<40⇒12
case i if i>43⇒10-i%44
})).groupBy(_._3).toSeq.map{case(y,xs)⇒(""→0/:xs.sortBy(_._2)){case((p,l),(c,x,_))⇒(p+" "*(x-l-1)+c)→x}._1→y}.sortBy(_._2).map(_._1).mkString("\n")

1

কমন লিস্প, 205 বাইট

(lambda(s &aux p v o)(dotimes(r 13)(setf o 0 p v v(round(*(/ 24 pi)(+(asin(-(/ r 6)1))pi))))(when p(map()(lambda(c)(princ(if(some(lambda(k)(<= p(mod k 48)(1- v)))`(,o,(- 23 o)))c" "))(incf o))s)(terpri))))

টেস্ট

দেখ Http://pastebin.com/raw.php?i=zZ520FTU

মন্তব্য

বিপরীত সাইন ফাংশনটি ব্যবহার করে মুদ্রিত হওয়া উচিত এমন স্ট্রিংগুলিতে সূচকগুলি গণনা করে লাইন আউটপুট লাইন প্রিন্ট করুন asin। আউটপুট প্রশ্নের যথাযথ প্রত্যাশিত ইনপুটগুলির সাথে মেলে না, তবে যেহেতু ওপি স্বীকার করে যে উদাহরণস্বরূপ ফলাফলগুলি আসল নয়, তাই আমি অনুমান করি এটি ঠিক আছে। কমপক্ষে, প্রতিটি কলামে সর্বদা কেবল একটি অক্ষর লেখা থাকে।


1

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

এটি অ্যালেক্স এল এর উত্তরের মতো ভাল নয় তবে এটি বেশ কাছে। স্ট্যান্ডার্ড ইনপুট থেকে ইনপুট নেয় এবং কোনও .pyফাইলে সেরা কাজ করে ।

l=map(int,bin(9960000)[2:]);l+=[-c for c in l];s=6;o=[];i=9
for c in raw_input():b=[' ']*13;b[s]=c;o+=[b];s+=l[i%48];i+=1
print''.join(sum(zip(*o+['\n'*13])[::-1],())[:-1])

আমি সিদ্ধান্ত নিয়েছি ট্রান্সপোজড আউটপুটটি তৈরি করব (প্রতিটি কলামটি একটি সারি) এবং তারপরে ফলাফলটি স্থানান্তর করব, যেহেতু অজগরটিতে একটি ম্যাট্রিক্সের ট্রান্সপোজ হয় map(*m)

  • l: এর দ্বৈত প্রতিনিধিত্ব 9960000( "0b"থেকে কেটে কাটা পরে bin) হয় 100101111111101001000000। এটি প্রতিটি স্তম্ভের সাইন ওয়েভের "পদক্ষেপ", এটি সর্বনিম্ন বিন্দুর একেবারে শেষ চরিত্র থেকে শুরু করে। আমি এই তালিকাটি অনুলিপি করছি, প্রতিটি নম্বরকে তুচ্ছ করে এটিকে কার্যকরভাবে ফাংশনের ডেরাইভেটিভ কী তা তৈরি করতে নিজের প্রান্তে ট্যাক করি।
  • s: এটি সেই পরিবর্তনশীল যা পরবর্তী অক্ষরটি সন্নিবেশ করায় কোন সারিতে (ট্রান্সপোসে কলাম) ট্র্যাক করে।
  • o: শেষ আউটপুট, স্থানান্তরিত
  • i: সাইন ওয়েভ পিরিয়ডের উপর নজর রাখে। 9 থেকে শুরু হয় lসামান্য স্থানান্তরিত হয়।

ইন forলুপ, আমি 13 শূণ্যস্থান (আমি bytearrays কিন্তু অক্ষরের তালিকা শয্যাত্যাগ একটি সংক্ষিপ্ত মুদ্রণ বিবৃতি থাকা ব্যবহার করছিলেন) একটি তালিকা তৈরি করেন, তারপর প্রতিস্থাপন sইনপুট অক্ষর দিয়ে তম অক্ষর। পরিশেষে bশেষে o, এর উপযুক্ত পদক্ষেপ যোগ s, এবং বৃদ্ধিi

আমি আশা করেছিলাম যে printবিবৃতিটি তত সহজ সরল হবে \n'.join(*zip(o)), তবে এরকম কোনও ভাগ্য নেই। zip(*o+['\n'*13])[::-1]নিউলাইনগুলির একটি কলাম যুক্ত করে এবং তারপরে বিপরীত হয়ে পুরো জিনিসটি স্থানান্তর করে (বিপরীত না করে সাইন ওয়েভ উল্টো দিকে হয়), sum(...,())টিপলগুলিকে একত্রে অক্ষরের একটি অংশে ''.join(...)সংযুক্ত করে এবং তারপরে অক্ষরগুলিকে সংযুক্ত করে মুদ্রণ করে।

অন্যান্য জিনিসগুলির মধ্যে আমি 12-চরিত্রের শূন্যস্থান তৈরি করতে এবং নতুন চরিত্রটিকে যথাযথ জায়গায় সন্নিবেশ করানো এবং l+=[-c for c in l];কোনও ধরণের গণিতের সাথে প্রতিস্থাপনের সাথে একক গুণকে 1এবং এর -1সাথে সূচকের ফলাফল দিয়েছিলাম l, তবে আমি কিছুই আসতে পারি নি সংক্ষিপ্ত হওয়ার সাথে শেষ হয়েছে।


0

গণিত, 131 বাইট

i=[input string];c=Characters@i;l=Length@c;StringJoin@Riffle[StringJoin@@@SparseArray[Table[{7-Round[6 Sin[.13(x-1)]],x},{x,l}]->c,{13,l}," "],"\n"]

এটি ১৩১ টি অক্ষর, তিনটি সহ i=foo;। এটি ইনপুট নেওয়ার পক্ষে যুক্তিসঙ্গত উপায় বলে মনে হয়েছিল; আমি এটি সরাসরি সংজ্ঞা মধ্যে রাখতে পারেc কয়েকটি এবং সংরক্ষণ , তবে তা অন্যায় অনুভব করে।

এটি বেশ সোজা - প্রায় পাঠযোগ্যও। এটি অক্ষরগুলির তালিকায় স্ট্রিংকে বিভক্ত করে এবং তারপরে নির্ধারিত অবস্থানগুলিতে Table(অক্ষরের কোনও স্পটকে কোনও স্পেসে অক্ষরকে ডিফল্ট দেওয়া হয় না) এগুলি অক্ষরগুলিকে একটি স্পার্স অ্যারেতে রাখে । লাইনগুলি পৃথকভাবে একত্রিত হয়, তারপরে তাদের মধ্যে নতুন লাইনগুলি ছিটানো হয়। চূড়ান্ত স্ট্রিংজইন এটি সমস্ত কিছু সেলাই করে।

বিশেষ দ্রষ্টব্য: অন্য কয়েকটি সমাধানের মতো এটিও বৈধ হতে পারে না কারণ এটি (সুন্দর) হস্তশিল্পের উদাহরণের চেয়ে সত্যিকারের সাইনোসয়েড তৈরি করে।

পরীক্ষা:

(*i=Programming Puzzles...*)
         ng Puzz                                          on and                                          iasts                                           tration          
       mi       le                                     sti       a                                      us      and                                     is        r        
     am           s                                   e           ns                                  th            c                                 eg           eq      
    r               &                               qu              we                              en               o                               r               u     
  og                  C                                               r                                               d                            o                  ir   
 r                     o                          a                                               e                    e                          n                     e  
P                       d                       s                       si                       l                       g                                               d 
                         e                     i                          t                    zz                         o                     ,                         .
                           G                                               e                  u                            lf                 ee                           
                            o               ge                               f               p                               e               r                             
                             lf           an                                  or           g                                  rs            f                              
                                St      ch                                       p      min                                     .        0%                                
                                  ack Ex                                          rogram                                          It's 10                                  
(*i=.... ...*)
         .......                                 
       ..       ..                               
     ..           ..                             
    .               .                            
  ..                 ..                          
 .                     .                         
.                       .                       .
                         ..                    . 
                           .                  .  
                            .               ..   
                             ..           ..     
                               ...      ..       
                                  ......         
(*i= Short text.*)
         t.
       ex  
      t    
    t      
  or       
 h         
S          





(*i=The quick...*)              
          brown                            
       ck       fo                         
     ui           x                        
    q               j                      
  e                  um                    
 h                     p                   
T                       s                  
                          o                
                           v               
                            e              
                             r            g
                               the      do 
                                   lazy    
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.