প্রেটিফন্টে একটি নম্বর আউটপুট দিন


13

আমি একটি নতুন ফন্ট ডিজাইন করেছি যা আমি প্রিটিফন্ট বলে। আমি এটিকে নিখুঁত করার জন্য অনেক সময় দিয়েছি, তবে আমি যেহেতু একজন কর্মজীবী ​​মানুষ তাই আমার এটি শেষ করার সময় নেই। সুতরাং এটিতে এখন কেবল 4 টি অক্ষর রয়েছে। একদিন আমি ধনী হয়ে উঠলে এটি শেষ করা আমার দীর্ঘজীবী লক্ষ্য হয়ে উঠবে, তবে আপাতত ...

এটি প্রিটিফন্ট: (0, 1, 2, 3)

####  ##  #### ####
#  #   #  #  #    #
#  #   #    #   ###
#  #   #   #      #
####  ### #### ####

প্রতিটি অক্ষর 4 পিক্সেল প্রশস্ত এবং 5 পিক্সেল উচ্চ। এখন! আমি চাই আপনি আমাকে এমন একটি প্রোগ্রাম লিখুন যা প্রেটিফন্টে একটি সংখ্যা বের করে যাতে আমি মুদ্রণের জন্য ডিজাইন প্রেরণ শুরু করতে পারি।

নিয়মাবলী:

ইনপুটটি বেস 4 এর একটি স্ট্রিং নম্বর (কেবলমাত্র 0-3 অক্ষর), উদাহরণস্বরূপ "01321"। প্রোগ্রামটি স্ট্রিংয়ে কমপক্ষে 10 টি অক্ষর পরিচালনা করতে সক্ষম হওয়া উচিত। বোনাস পয়েন্টগুলি এমন প্রোগ্রামে দেওয়া হয় যা কোনও স্ট্রিংয়ের পরিবর্তে সত্যিকারের বেস 10 পূর্ণসংখ্যার গ্রহণ করে। সম্পাদনা স্পষ্টকরণ: পূর্ণসংখ্যার বোনাস অর্থ 54321 এর মতো যে কোনও বেস 10 নম্বর প্রবেশ করতে পারে এবং প্রোগ্রামটি এটিকে বেস 4 এ রূপান্তরিত করে এটি আউটপুট করে (এই ক্ষেত্রে 31100301)।

আউটপুটটি প্রেটিফন্টের সাথে মুদ্রিত নম্বর হবে। ইনপুট এবং আউটপুট উদাহরণ:

> "321"
####
   #
 ###
   #
####

####
#  #
  # 
 #  
####

 ## 
  # 
  # 
  # 
 ###

প্রোগ্রামটির কাছে বিশাল বোনাস যা এটিকে একক সারি ফ্যাশনে আউটপুট করতে পারে:

> "321"
#### ####  ## 
   # #  #   # 
 ###   #    # 
   #  #     # 
#### ####  ### 

'#' অক্ষরটির প্রয়োজন হয় না, এবং কোনও চরিত্র দ্বারা প্রতিস্থাপন করা যায়।

উল্লম্ব আউটপুটে প্রতিটি প্রেটিফন্টের অক্ষরের মধ্যে একটি ফাঁকা সারি প্রয়োজন। যদি কেউ অনুভূমিক আউটপুট তৈরি করে তবে প্রতিটি প্রেটিফন্টের অক্ষরের মধ্যে একটি সাদা স্পেস অক্ষর '' বা একটি ট্যাব অক্ষর প্রয়োজন।

এটি কোড গল্ফ, সংক্ষিপ্ততম কোড জয়! (আমার এটি সংক্ষিপ্ত প্রয়োজন কারণ আমার অফিসের কম্পিউটারে সঞ্চয় সীমিত limited


1
এটি হুবহু ডুপ্লিকেট নয়, তবে এই এবং কোডগল্ফ.স্ট্যাকেক্সচেঞ্জ / প্রশ্নগুলি / 6262২৮/২ এর মধ্যে একমাত্র মৌলিক পার্থক্যটি হ'ল সারণী।
পিটার টেলর

প্রিটিফরফন্ট -banner -c '#' 0123
ক্লারিসকে

1
4 পিক্সেল প্রশস্ত আপনার 'এম' নিয়ে সমস্যা হবে
ক্যামেরন ম্যাকফারল্যান্ড

ইনপুট হিসাবে 10 বেস নম্বর নেওয়ার জন্য বোনাস কতটি অক্ষর?
অগস্ট

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

উত্তর:


11

কে ( 118 117 72 71 69 66 চর)

আমি এখনও এটি গল্ফ করার জন্য খুব একটা প্রচেষ্টা করতে পারি নি তবে এটি অনেকগুলি অক্ষরে পছন্দসই অনুভূমিক আউটপুট অর্জন করে:

-1'" "/:'+(5 4#/:4 20#"# "@,/0b\:'0x066609ddd806db00e8e0)"I"$'0:0;

স্টিডিন থেকে ইনপুট নেয়, আউটপুট স্টাডাউটে প্রিন্ট করে।

সম্পাদনা: আউটপুট "বিটম্যাপ" এ একধরণের সংকোচনের প্রয়োগ করে, আমি এটিকে হ্রাস পেয়ে 72 কে নামিয়ে আছি। বিটম্যাপটি এখন 64 বাইট ইনটকে বাইনারি রূপান্তর করে এবং 0 এবং 1 গুলি "#" বা "" ম্যাপিংয়ের মাধ্যমে তৈরি করা হয়েছে। আমি অন্যান্য কয়েকটি সমাধানের মতো হেক্স থেকে এটি করতে পারি তবে আমি মনে করি এটি আরও দীর্ঘস্থায়ী হবে । দেখা যাচ্ছে হেক্স্স আরও ভাল।

012301 এর জন্য নমুনা আউটপুট:

####  ##  #### #### ####  ##
#  #   #  #  #    # #  #   #
#  #   #    #   ### #  #   #
#  #   #   #      # #  #   #
####  ### #### #### ####  ###

// সম্পাদনা: -6 চর


চিত্তাকর্ষক। এখনও সবচেয়ে সংক্ষিপ্ত কোড! এটি আমার সীমিত স্টোরেজ ড্রাইভে ফিট হতে পারে। সাবাশ.
অ্যাক্যাটায়িক

Down১-এ নেমে এসেছেন যে সংযুক্ত কেডিবি + / কিউ / কে ইপি ওজনের একটি পাতলা 392 কেবি, এটি আপনার সীমিত স্টোরেজ ড্রাইভের জন্য আদর্শ হতে পারে;)
স্কিভি

10

পাইথন 3 (124)

s=input();[print(*["".join(" #"[0xf171ff429f72226f999f>>(20*int(x)+4*y+i)&1]for i in(3,2,1,0))for x in s])for y in range(5)]

দুঃখিত, উলম্ব আমার জন্য আকর্ষণীয় ছিল না।

???/golf.py
1230012301203012030102301230
 ##  #### #### #### ####  ##  #### #### ####  ##  #### #### #### ####  ##  #### #### #### ####  ##  #### #### #### ####  ##  #### #### ####
  #  #  #    # #  # #  #   #  #  #    # #  #   #  #  # #  #    # #  #   #  #  # #  #    # #  #   #  #  # #  #    # #  #   #  #  #    # #  #
  #    #   ### #  # #  #   #    #   ### #  #   #    #  #  #  ### #  #   #    #  #  #  ### #  #   #  #  #   #   ### #  #   #    #   ### #  #
  #   #      # #  # #  #   #   #      # #  #   #   #   #  #    # #  #   #   #   #  #    # #  #   #  #  #  #      # #  #   #   #      # #  #
 ### #### #### #### ####  ### #### #### ####  ### #### #### #### ####  ### #### #### #### ####  ### #### #### #### ####  ### #### #### ####

অসাধারণ! অনুভূমিক একটির জন্য এতগুলি অক্ষর আশা করেনি। সুন্দর কাজ.
অ্যাক্যাটায়িক

1
ধন্যবাদ. আমার ধারণা আমি রুবি বাস্তবায়নে আমার ধারণা (হেক্স-নম্বর এবং শিফট) আরও খাটো হওয়া উচিত।
ইভ_জেনাস

10

জে, 84 82 81 80 75 69 টি অক্ষর

' #'{~(,4,.(4*".,' ',.1!:1[1)+/i.4){"1#:63231 37521 37415 37441 63487

কীবোর্ড থেকে ইনপুট নেয়:

   ' #'{~(,4,.(4*".,' ',.1!:1[1)+/i.4){"1#:63231 37521 37415 37441 63487 63487
0123210
 ####  ##  #### #### ####  ##  ####
 #  #   #  #  #    # #  #   #  #  #
 #  #   #    #   ###   #    #  #  #
 #  #   #   #      #  #     #  #  #
 ####  ### #### #### ####  ### ####

ম্যাজিক নম্বরগুলি FTW (বা এই ক্ষেত্রে দ্বিতীয় স্থানের জন্য) :-)


খুব সুন্দর ... খুব সুন্দর ... আমি মুগ্ধ! আজ অনেক ভাল উত্তর। হয়তো আমার ডিজাইনার-প্রিন্টগুলি ভাল হয়ে যাবে।
অ্যাক্যাটায়াইক

আপনি সমস্ত অঙ্ককে একটি বাইনারি সংখ্যায় এনকোড করতে পারেন এবং ফলাফলের সাথে সম্পর্কিত নম্বর ম্যাট্রিক্স পেতে পুনরায় আকার দিতে পারেন।
FUZxxl

@FUZxxl আমি পূর্ণ ৮০ বিটের জন্য সংখ্যাটি সন্ধান করার চেষ্টা করেছি, তবে #:মনে হয় না যে এই সংখ্যার আকারের জন্য কাজ করে। #:1166416635908028473935870এবং #:1166416635908028473931775উভয়ই আমার জন্য একই উত্তর দেয়।
গ্যারেথ

8

সি - 164 151 অক্ষর অনুভূমিক

আইডিয়নে: http://ideone.com/gljc3

কোড (164 বাইট):

i,j;main(){char n[99];gets(n);for(;j<5;++j){for(i=0;n[i];++i)printf("%.4s ","#####  # ##   #  ### #     #"+4*("01110233340135006460"[(n[i]-48)*5+j]-48));puts("");}}

এখানে চিত্র বর্ণনা লিখুন

সম্পাদনা - 151 বাইট

আমি মন্তব্যগুলি এবং তারপরে কয়েকটি থেকে পরামর্শগুলি যুক্ত করেছি। gets()যদিও এটি নিরাপদ নয় (0-দৈর্ঘ্যের অ্যারে যার মধ্যে আমি প্রবেশ করি ...)।

char i,j=5,n[];main(){for(gets(n);j--;)for(i=puts("");n[i];printf("%.4s ","#####  # ##   #  ### #     #"+4*(0x1A600BA136E0248>>15*n[i++]-720+3*j&7)));}

দ্রষ্টব্য, i=puts("")যেহেতু আমি আচরণ করছি voidতেমনি অপরিবর্তিত আচরণ int! এটি ধারাবাহিকভাবে 0MinGW এর আমার সংস্করণে ফেরত দেয় তবে এটি 1আইডিয়োন ব্যবহারকারী সংকলকটিতে ফিরে আসে ।

দশমিক গ্রহণ করে, বেস 4 (167 বাইট) আউটপুট দেয়

char i,j=5,n[];main(p){for(itoa(atoi(gets(n)),n,4);j--;)for(i=puts("");n[i];printf("%.4s ","#####  # ##   #  ### #     #"+4*(0x1A600BA136E0248>>15*n[i++]-720+3*j&7)));}

ওহ, সি একটি সংক্ষিপ্ত! এটি অবশ্যই আমার পুরানো সিপিইউতে এক মিনিটের মধ্যে চলে যাবে। ভাল একটা.
অ্যাক্যাটায়াইক

আপনি "! = 0" কে সরিয়ে 3 টি অক্ষর সংরক্ষণ করতে পারেননি?
a3nm

হ্যাঁ, ধন্যবাদ আমি ওটা ধরিনি।
কসলাই

getsমধ্যে রাখুন for(1 সংরক্ষণ করুন)। সরান putsবহিরাগত করতে forএর বৃদ্ধি এবং ধনুর্বন্ধনী সংরক্ষণ। পরিত্রাণ সংরক্ষণ করুন: (n[i]-48)*5+j-> n[i]*5-240+j, একই কৌশল +4*(..
ugoren

ঠিক আছে 153 বাইট নিচে। সিআই অনুমানের জন্য খুব খারাপ নয়।
কসলাই

7

রুবি, 0123 চরগুলি + একটি বোনাস ([0123] বনাম '#')

f=15
0.upto(4){|n|$*[0].chars{|x|$><<"%4s "%eval(:f6ff929192279241f7ff[x.to_i+4*n]).to_i.to_s(2).tr(?0,' ').tr(?1,x)}
puts}

উদাহরণ:

% ruby ./font.rb 01231231
0000  11  2222 3333  11  2222 3333  11  
0  0   1  2  2    3   1  2  2    3   1  
0  0   1    2   333   1    2   333   1  
0  0   1   2      3   1   2      3   1  
0000  111 2222 3333  111 2222 3333  111
% ruby ./font.rb 01231231102020103201301203212302230
0000  11  2222 3333  11  2222 3333  11   11  0000 2222 0000 2222 0000  11  0000 3333 2222 0000  11  3333 0000  11  2222 0000 3333 2222  11  2222 3333 0000 2222 2222 3333 0000 
0  0   1  2  2    3   1  2  2    3   1    1  0  0 2  2 0  0 2  2 0  0   1  0  0    3 2  2 0  0   1     3 0  0   1  2  2 0  0    3 2  2   1  2  2    3 0  0 2  2 2  2    3 0  0 
0  0   1    2   333   1    2   333   1    1  0  0   2  0  0   2  0  0   1  0  0  333   2  0  0   1   333 0  0   1    2  0  0  333   2    1    2   333 0  0   2    2   333 0  0 
0  0   1   2      3   1   2      3   1    1  0  0  2   0  0  2   0  0   1  0  0    3  2   0  0   1     3 0  0   1   2   0  0    3  2     1   2      3 0  0  2    2      3 0  0 
0000  111 2222 3333  111 2222 3333  111  111 0000 2222 0000 2222 0000  111 0000 3333 2222 0000  111 3333 0000  111 2222 0000 3333 2222  111 2222 3333 0000 2222 2222 3333 0000 

সম্পাদনা: রুবি, 87 টি অক্ষর

0.upto(4){|n|$*[0].bytes{|x|$><<"%04b0"%:f6ff929192279241f7ff[x-48+4*n].to_i(16)}
puts}

এখানে চিত্র বর্ণনা লিখুন


একটি সৃজনশীল! খুব সুন্দর. এটি আমার ডিজাইনে চমত্কার দেখাবে। একটি upvote আছে।
অ্যাক্যাটায়িক

কৌশলী! এটি বুঝতে আমার কিছুটা সময় লাগবে।
manatwork

5

চুনি

উল্লম্ব: 116 টি অক্ষর

f="f999f62227f924ff171f".chars.map{|c|c.hex.to_s(2).rjust(4).tr"01"," #"}
$<.chars{|c|i=c.to_i*5;$><<f[i,5]*$/+$/*2}

নমুনা রান:

bash-4.2$ echo -n 321 | ruby -e 'f="f999f62227f924ff171f".chars.map{|c|c.hex.to_s(2).rjust(4).tr"01"," #"};$<.chars{|c|i=c.to_i*5;$><<f[i,5]*$/+$/*2}'
####
   #
 ###
   #
####

####
#  #
  # 
 #  
####

 ## 
  # 
  # 
  # 
 ###

অনুভূমিক: 150 148 টি অক্ষর

f="f999f62227f924ff171f".chars.map{|c|c.hex.to_s(2).rjust(4).tr"01"," #"}
o=(0..4).map{""}
$<.chars{|c|5.times{|j|o[j]<<f[c.to_i*5+j]+" "}}
$><<o*$/

নমুনা রান:

bash-4.2$ echo -n 321 | ruby -e 'f="f999f62227f924ff171f".chars.map{|c|c.hex.to_s(2).rjust(4).tr "01"," #"};o=(0..4).map{""};$<.chars{|c|5.times{|j|o[j]<<f[c.to_i*5+j]+" "}};$><<o*$/'
#### ####  ##  
   # #  #   #  
 ###   #    #  
   #  #     #  
#### ####  ### 

আমি এটির মতো এনকোড করতে যাচ্ছিলাম। ভাববেন না যে আমি এটি মারতে পারি যদিও এটি আমার ভাষা!
গ্রিফিন

4

গণিত 174 145 139 118 119 123 অক্ষর

এখন বেস 10 (পূর্ণসংখ্যা বোনাস) ইনপুট নিয়ে কাজ করে। পূর্ববর্তী সংস্করণগুলি সম্পাদনাগুলিতে পাওয়া যাবে।


অ্যারেপ্লট ব্যবহার :

সঙ্গে ArrayPlotআমরা সরাসরি 1 এবং 0 এর রূপান্তর করতে পারেন কালো এবং সাদা স্কোয়ার থেকে, প্রক্রিয়া কয়েক অক্ষর সংরক্ষণ। উদাহরণস্বরূপ, n = 58021 সহ, যা বেস 4 এ 32022211 হয়:

i = IntegerDigits; i[n, 4] /. Thread@Rule[0~Range~3, ArrayPlot /@ ((PadLeft[#, 4] & /@ i[#, 2]) & /@ (i@{89998, 62227, 89248, 81718} /. {8 -> 15}))]

পূর্ণসংখ্যা বোনাস


ব্যাখ্যা

ইনপুট হ'ল প্রোগ্রাম প্যারামিটার n,।

শূন্যকে {{1,1,1,1},{1,0,0,1},{1,0,0,1},{1,0,0,1},{1,1,1,1} হেক্স সমমনা অংশ দ্বারা বা প্রতিনিধিত্ব করা যেতে পারে f999f

এক্সপ্রেশন,, f999f62227f924ff171fসমস্ত সংখ্যা display 0,1,2,3 display প্রদর্শন করার জন্য তথ্য ধারণ করে} (দ্রষ্টব্য: এটি দিয়ে শুরু হয় f999f, যা আমরা বলেছি যে ছদ্মবেশে শূন্য)) কারণ ম্যাথমেটিকাকে এটি একটি সংখ্যা হিসাবে স্বীকৃতি দেয় না, আমি 89998622278924881718পরিবর্তে (চারটি পূর্ণসংখ্যার স্ট্রিংয়ে) ব্যবহার করে, সংখ্যাটি তার পূর্ণসংখ্যার অঙ্কগুলিতে বিভক্ত করে দিয়েছিলাম এবং তারপরে ব্যবহৃত হয়েছিল 15 প্রতিটি জায়গায় একটি 8 উপস্থিত ছিল। (এটি আমাকে পুরো স্ট্রিংয়ের পরিবর্তে অঙ্কগুলি ব্যবহার করার অনুমতি দিয়েছে))


1
আপনার আউটপুট ইনপুট মেলে না।
মিস্টার লিস্টার

উল্লম্ব বোনাসের জন্য আপনি কি তা স্থানান্তর করতে পারবেন না?
গ্রিফিন

আমি যেমন নিয়মগুলি বুঝতে পারি, বোনাসটি অনুভূমিক কনফিগারেশনের জন্য।
ডেভিডসি

মিস্টার লিস্টার ভাল ধরা। আমি 1 এর জায়গায় শূন্যের ছবিটি অনুলিপি করে
আটকালাম

আমার খারাপ, অপঠিত।
গ্রিফিন

3

গণিত , 112 107 103

আমি ডেভিডের পদ্ধতি গ্রহণ।

i=IntegerDigits;Grid/@i@n/.Thread[0~Range~3->("#"i[i@#/.8->15,2,4]&/@{89998,62227,89248,81718}/.0->"")]

গণিত গ্রাফিক্স

105 বোনাস সহ:

(জন্য n = 54321)

i=IntegerDigits;Grid/@n~i~4/.Thread[0~Range~3->("#"i[i@#/.8->15,2,4]&/@{89998,62227,89248,81718}/.0->"")]

গণিত গ্রাফিক্স


সত্যিই খুব সুন্দর. বোনাস সহ কয়েক অক্ষর। ভাল কাজ!
অ্যাক্যাটিক

3

এপিএল ( 58 57)

{' #'[1+5 4⍴1022367 401959 1020495 988959[1+⍎⍵]⊤⍨20⍴2]}¨⍞

আউটপুট:

0123
 #### ## ######### 
 # # # # # # 
 # # # # ### 
 # # # # # 
 #### ### #### #### 

2

পাইথন 2.7

উল্লম্ব 160

for i in input():print['****\n*  *\n*  *\n*  *\n****',' ** \n  * \n  * \n  * \n***','****\n*  *\n  * \n *  \n****','****\n   *\n ***\n   *\n****'][int(i)]+'\n'

অনুভূমিক 234 216

x=[['****\n*  *\n*  *\n*  *\n****',' ** \n  * \n  * \n  * \n ***','****\n*  *\n  * \n *  \n****','****\n   *\n ***\n   *\n****'][int(i)]for i in input()]
for i in range(5):print' '.join([y.split('\n')[i]for y in x])

উভয় স্টিডিনের উপর একটি উদ্ধৃত স্ট্রিং হিসাবে ইনপুট নেয়

উদাহরণ:
$। / চমত্কার
"0123"


আপনি কিভাবে এটি চালান? আমি ত্রুটি পেতে। পাইথন 2: "TypeError: 'int' অবজেক্টটি পুনরাবৃত্তিযোগ্য নয়", পাইথন 3: "TypeError: 'বিল্টইন_ফাংশন_অর_মোথারিক' অবজেক্টটি সাবস্ক্রিপ্টযোগ্য নয়"।
manatwork

@ মান্যাটওয়ার্ক এটি অজগর ২. 2.-এ রয়েছে, আমি এটি পরিষ্কার করার জন্য উত্তরটি সম্পাদনা করেছি।
ম্যাট

@ মান্যাটওয়ার্ক এছাড়াও, দেখে মনে হচ্ছে আপনি তাদের চারপাশে উদ্ধৃতিবিহীন সংখ্যাটি প্রবেশ করিয়েছেন যেমন: 0123. আপনার স্টিডিনে "0123" প্রবেশ করার চেষ্টা করা উচিত।
ম্যাট

এখন এটি কাজ করে। দুঃখিত, উক্ত উদ্ধৃতিটি আমার পক্ষে স্পষ্ট ছিল না।
manatwork

@ 3 এর আগে পাইথন সংস্করণগুলিতে মানটওয়ার্ক ইনপুট () ফাংশনটি ইনপুটটিকে এমনভাবে মূল্যায়িত করে যেমন এটি অজগর অভিব্যক্তি। যদি উদ্ধৃতিগুলি না থাকে তবে প্রোগ্রামটি আপনাকে একটি ত্রুটি পেয়েছিল এবং একটি পূর্ণসংখ্যার উপর দিয়ে পুনরাবৃত্তি করার চেষ্টা করে।
ম্যাট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.