7-বিভাগের প্রদর্শন অনুকরণ করুন


24

কার্য

কাজটি হ'ল 7-বিভাগের প্রদর্শনের সম্ভাব্য 128 টির মধ্যে যে কোনও একটি প্রদর্শন করা

আপনার প্রোগ্রামটি 7 অক্ষর ("বিটস") এর একটি স্ট্রিং গ্রহণ করবে যা হয় হয় 0বা হয় 1। প্রথম বিট ইনপুটটি নীচের চিত্রের A বিভাগের সাথে সামঞ্জস্য করে, দ্বিতীয়টি B, ইত্যাদি (উপেক্ষা করুন dp):

7seg

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

প্রদর্শনটির সমস্ত 128 টি সম্ভাব্য রাজ্য হ'ল:

রাজ্যের

বিধি

  • Codegolf
  • আমি যেমন বলেছি, যে কোনও ধরণের আউটপুট অনুমোদিত, তবে আপনি এটি নির্দিষ্ট করে দিলে ভাল হবে be
  • ইনপুট স্টিডিন বা কমান্ড লাইন আর্গুমেন্ট হতে পারে।

উদাহরণ

ইনপুট

1101101

আউটপুট

ASCII / ইউনিকোড হিসাবে:
2
বিভিন্ন ধরণের এএসসিআইআই আর্ট (আমি এতে খুব বেশি ভাল না)
 _   ╺┓  ╒╗   ---
 _|  ┏┛  ╔╝     |
|_   ┗╸  ╚╛   ---
              |
              ---


@ ডেভিডকারারহর: তারা সম্পর্কিত, হ্যাঁ; এমনকি আমি নিজে এটির সাথেও যুক্ত হয়েছি। যাইহোক, এটি আমি বলি কিছুটা শক্ত, কারণ আপনার উত্পন্ন করতে আরও 118 'সংখ্যা' রয়েছে। অন্যান্য প্রশ্নের উত্তরগুলির বেশিরভাগ (?) এখানে কাজ করবে না, বা ভারী পুনর্লিখন করতে হবে। এছাড়াও, এখানে আপনাকে বিভিন্ন সংখ্যা এনকোড করার দরকার নেই, সুতরাং অন্যান্য অপ্টিমাইজেশানগুলি সম্ভব হবে।
ডানিরো

আপনি সঠিক. যে ইশারা জন্য ধন্যবাদ।
ডেভিডসি

এটি আপনার প্রয়োজনীয় প্রদত্ত এনকোডিংটি ব্যবহার করা দরকার? যেমন "1101101" সর্বদা "2" উপস্থাপন করা উচিত?
আর্দনিউ

@ আরডনেউ: হ্যাঁ ইনপুটটিতে বিটের অবস্থানের প্রথম চিত্রটিতে A থেকে G বিভাগের বর্ণমালা অনুসারে মানচিত্র তৈরি করা উচিত।
ডানিরো

উত্তর:



16

সি, 106

"W00WG5WWGG66WG4WW2GW33WG" প্রোগ্রামটির নতুন নামকরণের অনুমতি দেওয়া হলে আকারটি 74 টি হয়

main(int i,char**s){
    for(s[0]="W00WG5WW1GW66WG4WW2GW33WG";i=*s[0]++;putchar(s[1][i&7]-49?i==71?10:32:42));
}

চলমান:

./a.out 1101101
 ** 
   *
 ** 
*   
 ** 

নোট:

'ডাব্লু' এবং 'জি' (0x47 এবং 0x57) এমনটি বেছে নেওয়া হয়েছে যে মান & 7 = 7 অর্থাত্ তারা নিরাপদে ইনপুট স্ট্রিংয়ের অবসানকারী নাল অক্ষরকে সূচক করে।


15

ব্রেইনফাক - 224

++++++++++[>+>+++<<-]
>>++>,>,>,>,>,>,>,
<<<<<<<.
>[<+.->-]<<.
>>
>>>>>[<<<<<+<+>>>>>>-]<<<<<<.>[<->-]<.>>[<<+.->>-]<<<.>.
>>>>>>>[<<<<<<<+.->>>>>>>-]<<<<<<<<.
>>>>>>[<<<<+<+>>>>>-]<<<<<.>[<->-]<.
>>>[<<<+.->>>-]<<<<.>.
>>>>[<<<<+.>]

বিস্ময়কর পয়েন্টগুলি ব্যবহার করে মুদ্রণগুলি:

 ! 
! !
 !
! !
 !

সর্বাধিক পঠনযোগ্য নয়, তবে খুব ভয়ঙ্করও নয়।

এটি শেষ স্থান না হওয়ার কতটা কাছাকাছি স্থান অবাক করে।


13

পোস্টস্ক্রিপ্ট 121 107

1 12 moveto{}5 0{0 -5 rmoveto}0 5 0 5 -5 0 0 -5 0 -5 5 0
n{49 eq{rlineto}{rmoveto}ifelse exec}forall stroke

nপ্রক্রিয়াকরণের জন্য স্ট্রিং হিসাবে সংজ্ঞায়িত করা দরকার যাতে অনুরোধ করা উচিত

gs -g7x14 -sn=1101101 lcd.ps

পেতে

দুই নম্বর চিত্র

সম্পূর্ণ সেট

অক্ষরের সম্পূর্ণ সেট


11

গাণিতিক: 135 129 118, চিত্র প্রদর্শন

Image[MorphologicalComponents@Import@"http://goo.gl/j3elE" /. 
      Thread[Range@7 -> IntegerDigits[#, 2, 7][[{7, 2, 6, 1, 3, 5, 4}]]]] &

স্পেস যুক্ত হয়েছে "স্পষ্টতার জন্য"

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

সম্পাদন করা

এই বাছাই করা সহযোগী সাইটের ব্যবহারকারীদের জন্য: বাহ্যিক মাস্ক ব্যবহার না করে:

Image[MorphologicalComponents[ColorNegate@Rasterize@8, CornerNeighbors -> False] /. 
    Thread[Range@7 ->IntegerDigits[#, 2, 7][[{7, 2, 6, 1, 3, 5, 4}]]]] &

কোডটি অসম্পূর্ণ বলে মনে হচ্ছে। আমি মনে করি না আপনি আপনার প্রোগ্রামটি দিয়ে শেষ করতে চেয়েছিলেন &
ডেভিডসি

@ ডেভিডকারারহর এটি একটি ফাংশন , তাই এটি শেষ হয় &

হ্যাঁ, তবে এটি কোনও কিছুর জন্য প্রয়োগ হয় না। কিভাবে একটি আউটপুট পেতে?
ডেভিডসি

2
@ বিলেসারিউস আপনি এখনও বাহ্যিক রিসোর্সগুলি এম্বেড করেছেন তা এখনও আমার পছন্দ নয় don't
FUZxxl

1
আমি মনে করি আমার আগের মন্তব্যটি মুছে ফেলার কোনও অর্থ হয় না কারণ এটি অন্য কারও পক্ষে এই আলোচনা অনুসরণ করা আরও কঠিন করে তুলবে। আপনি বাহ্যিক ডেটা আমদানি করেন যা রসিকতা হিসাবে মজার তবে কোনও গুরুতর কোড গল্ফ উত্তরের অংশ নয়। -1
FUZxxl

10

এপিএল, 58 55

' _|'[1+3 3⍴0,x[1],0,(x←1 2 2 1 2 2 1×⍞='1')[6 7 2 5 4 3]]

উদাহরণ ইনপুট:

1101101

আউটপুট:

 _ 
 _|
|_ 

⍞='1' ইনপুটটিকে একটি অক্ষরের অ্যারে হিসাবে গ্রহণ করে এবং এটি একটি সংখ্যাসূচক অ্যারে রূপান্তর করে।

1 2 2 1 2 2 1×⍞='1'যে অ্যারে রূপান্তর করে: 0ফাঁকা 1জন্য _, 2জন্য , জন্য|

(x←1 2 2 1 2 2 1×⍞='1')[6 7 2 5 4 3]ভেরিয়েবলকে সেই অ্যারে বরাদ্দ করুন xএবং F, G, B, E, D, C বিভাগগুলিকে উপস্থাপন করতে পুনরায় অর্ডার করুন

0,x[1],0,(x←1 2 2 1 2 2 1×⍞='1')[6 7 2 5 4 3] সামনের দিকে একটি ফাঁকা, খণ্ড এ এবং অন্য একটি ফাঁকা যুক্ত করে

3 3⍴0,x[1],0,(x←1 2 2 1 2 2 1×⍞='1')[6 7 2 5 4 3] একটি 3x3 ম্যাট্রিক্সে পুনরায় আকার দিন

1+3 3⍴0,x[1],0,(x←1 2 2 1 2 2 1×⍞='1')[6 7 2 5 4 3] 1-ভিত্তিক সূচকে রূপান্তর করে

' _|'সূচকগুলি অক্ষরে রূপান্তর করতে অবশেষে স্ট্রিংটি ব্যবহার করে


সম্পাদন করা

' _|'[1+3 3⍴(0,1 2 2 1 2 2 1×⍞='1')[1 2 1 7 8 3 6 5 4]]

0একটি ভেরিয়েবল অ্যাসাইনমেন্ট প্রতিরোধ করে অ্যারের সামনে একটি কনটেন্টেট করে এবং সদৃশ সূচকগুলি ব্যবহার করে 3 টি চর বন্ধ করা হয়েছে


আপনার APL এটি সমর্থন Iff, আমি মনে করি থেকে ফাংশন {বন্ধনী ইন্ডেক্স চেয়ে 1-গৃহস্থালির কাজ খাটো []
luser droog 22'15

9

পিএইচপি 66 বাইট

<?for(;11>$i;)echo++$i&3?$argv[1][md5(¡æyÚ.$i)%8]?$i&1?~ƒ:_:~ß:~õ;

সামান্য উন্নতি একটি ব্যবহার md5: জাদু সূত্র, কিন্তু আছে 3 অতিরিক্ত বাইনারি বাইট প্রয়োজন
¡, æএবং Úহয় অক্ষর 161, 230, এবং 218 যথাক্রমে। এটি সরাসরি যেমন অনুলিপি করা হয়েছে এবং এএনএসআই ফর্ম্যাট হিসাবে সেভ করা উচিত work


পিএইচপি 73 (70) বাইট

<?for($s=327638584;3<$s;)echo++$i&3?$argv[1][7&$s/=8]?$i&1?'|':_:' ':'
';

আপনি যদি আমাকে তিনটি বাইনারি চরিত্রের অনুমতি দেন তবে এটি 70 বাইটে হ্রাস করা যেতে পারে :

<?for($s=327638584;3<$s;)echo++$i&3?$argv[1][7&$s/=8]?$i&1?~ƒ:_:~ß:~õ;

যেখানে ƒ, ßএবং õযথাক্রমে অক্ষর 131, 223, এবং 245 হয়।

কমান্ড লাইন আর্গুমেন্ট হিসাবে ইনপুট গ্রহণ করে। নমুনা ব্যবহার:

$ php seven-seg.php 1101101
 _
 _|
|_

$ php seven-seg.php 0111011

|_|
 _|

আমি আপনার কোডটি চালানোর চেষ্টা করেছি, তবে
প্রচুর

1
@ D34dman কেবলমাত্র এই বার্তাগুলি হ'ল নোটিশগুলি (অপরিজ্ঞাত ভেরিয়েবলস ইত্যাদি)। এগুলি হয় হয় php.ini(ডিফল্টরূপে তারা ইতিমধ্যে রয়েছে) বন্ধ করা যেতে পারে , বা পরীক্ষার জন্য, আপনি নিম্নলিখিত কোডটি স্ক্রিপ্টে প্রেন্ডেন্ড করতে পারেন:<? error_reporting(E_ALL & ~E_NOTICE); ?>
প্রিমো

অসাধারণ! আমি এটি কাজ করে: ডি নাইস!
D34dman

7

জাভাস্ক্রিপ্ট + jQuery + এইচটিএমএল + সিএসএস ( 210 201)

এই সমাধানটি সিএসএস স্প্রিট এবং উদাহরণ হিসাবে সরবরাহিত চিত্র ব্যবহার করে :

এইচটিএমএল (3)

<a>

সিএসএস ( 82 71)

" ব্যাকগ্রাউন্ড: ইউআরএল " ট্রিকের জন্য জেমকে ধন্যবাদ :

a{background:url(//bit.ly/VesRKL);width:13px;height:23px;display:block}

জাভাস্ক্রিপ্ট (পঠনযোগ্যতার জন্য এখানে নতুন লাইনগুলি সরানোর পরে 125)

i=prompt();
x=-parseInt(i.substr(0,3),2)*23;
y=-parseInt(i.substr(3),2)*13.75;
$('a').css('background-position',y+'px '+x+'px');

অনলাইন পরীক্ষা: http://jsfiddle.net/zhqJq/3/


1
আরে, তবে ছবির 17.937 বাইট সম্পর্কে কী ?? ;)
থমাস ডাব্লু।

@ThomasW। আমি জানি না যে এটিও গণনা করা উচিত। সিদ্ধান্ত নেওয়ার জন্য এটি ওপিতে ছেড়ে দেওয়া যাক।
ক্রিশ্চিয়ান লুপাস্কু

স্থান বাঁচাতে আপনি <p>ট্যাগ ব্যবহার করতে এবং display:blockCSS এড়াতে পারবেন
রবার্তো মালদোনাদো

পটভূমি-চিত্র: ইউআরএল ( bit.ly/VesRKL ); => পটভূমি: ইউআরএল (// বিট.লি / ওয়েসআরকেএল);
xem

@ এক্সিম টিপটির জন্য ধন্যবাদ; আমি আমার উত্তরটি সম্পাদনা করেছি
ক্রিশ্চিয়ান লুপাস্কু

6

আর (65 টি চর):

plot((3^(1i*1.5:-4.5)*(1:7!=7)),col=strsplit(readline(),'')[[1]])

কিছু ট্রান্সসিডেন্টাল সংখ্যার জন্য কিছু আলগা অনুমানের উপর নির্ভর করে ...


6

পাইথন 2 - 65

s=raw_input()+'0\n'
for i in`0x623C239E38D2EAA1`:print s[int(i)],

উদাহরণ:

echo 1101101|python2 7seg.py
0 1 0 
0 0 1 
0 1 0 
1 0 0 
0 1 0

5

পোস্টস্ক্রিপ্ট: 53 বাইনারি, 87 এএসসিআইআই 52 বাইনারি, 86 এএসসিআইআই

বাইনারি টোকেন ব্যবহার করে প্রোগ্রামের হেক্সডাম্প:

$ hexdump -C lcd_binary.ps 
00000000  28 34 34 30 34 30 38 30  34 30 34 30 30 30 30 34  |(440408040400004|
00000010  30 34 30 34 34 34 34 34  38 34 38 30 38 29 7b 7d  |0404444484808){}|
00000020  92 49 6e 7b 92 70 31 92  04 92 96 92 6b 92 63 92  |.In{.p1.....k.c.|
00000030  a7 7d 92 49                                       |.}.I|
00000034

চেষ্টা করার জন্য এই ফাইলটি ডাউনলোড করুন।

ASCII টোকেন ব্যবহার:

(4404080404000040404444484808){}forall
n{not 1 and setgray moveto lineto stroke}forall

প্রথম forallলুপটি সমস্ত প্রয়োজনীয় স্থানাঙ্ক স্ট্যাকের উপরে রাখে। স্থানাঙ্কগুলি প্রয়োজনীয় স্থানটি কমাতে স্ট্রিংয়ে সংরক্ষণ করা হয়। স্থানাঙ্ক, অর্থাত্ বিপরীত ক্রম হয় গত 4 অক্ষর সেগমেন্ট এ জন্য আমরা থেকে একটি রেখা আঁকা (0,8)থেকে (4,8)এই সেগমেন্ট (আসলে, আমরা সব স্থানাঙ্ক 48 যোগ আছে কারণ জন্য forallরাখে স্ট্যাক সব ASCII কোড)।

দ্বিতীয়টি ইনপুট স্ট্রিংয়ের forallসমস্ত 0এস এবং এসগুলির মধ্য দিয়ে লুপ 1করে এবং একটি ধূসর মানতে পরিণত করে। 0গুলি সাদা অঙ্কিত (ধূসর মান 1) এবং 1গুলি কালো আঁকা (ধূসর মান 0)। তারপরে আমরা স্থানাঙ্কগুলি ব্যবহার করি forallযা লাইনগুলি আঁকতে স্ট্যাকের উপর প্রথম লুপ ছেড়ে যায়।

জিওফ রেডির মতো ঘোস্টস্ক্রিপ্ট ব্যবহার করে প্রোগ্রামটি চালু করুন:

gs -sn=1101101 lcd.ps

এটি প্রদর্শন করে: নমুনা আউটপুট


আমি মনে করি আপনি এর সাথে প্রতিস্থাপন করতে পারবেন neg 49 add(যা দুর্দান্ত বিটিডাব্লু) 1 and
লুজার droog

@ লেজারড্রোগ: উজ্জ্বল, বিটওয়াইজ অপারেটররা তাদের কথা ভাবেন নি। কিন্তু এটা হতে হবে not 1 and, তাই না? তবুও ASCII এবং বাইনারি উভয় ক্ষেত্রেই একটি বাইট সংরক্ষণ করে।
থমাস ডাব্লু।

আমি অনুভব করছি যে 1 বিট বিটম্যাপের সাথে ঝরঝরে উপায় নেই। তবে bitshiftএতো দীর্ঘ শব্দ।
লুসার droog

তবে এটি কেবলমাত্র দুটি বাইট বাইনারি টোকেন
টমাস ডব্লিউ

হ্যাঁ। তবে এটি এখনও আমার কাছে কোনওরকম প্রতারণার মতো অনুভব করে । :) আমি বাইনারি অবলম্বন করার আগে পঠনযোগ্য উত্স দিয়ে আমার যতটা সম্ভব সম্ভব করার দরকার আছে বলে আমি মনে করি।
লুসার droog

4

এপিএল 101 86 73 69

m←45⍴' '⋄m[¯40+⎕av⍳(⍎∊3/' ',¨⍕⍞)/')*+16;EJOQRSAFK-27=>?']←'⎕'⋄9 5⍴m

ইনপুটটি স্ক্রিন থেকে via এর মাধ্যমে ⍞

1101101

যা ফাঁকা এবং follows হিসাবে গঠিত একটি 9x5 অক্ষর ম্যাট্রিক্স উত্পাদন করে:

 ⎕⎕⎕
     ⎕
     ⎕
     ⎕
 ⎕⎕⎕
⎕
⎕
⎕
 ⎕⎕⎕

সাতটি সংখ্যার নম্বরটি। কো-অর্ডিনেটস নির্বাচন করতে পার্টিশন ভেক্টরে রূপান্তরিত হয়।


আমার মাথা ব্যাথা করছে ...
রব

4

ম্যাথমেটিকা 112 103 100 96 88, গ্রাফ ব্যবহার করে

HighlightGraph[z=GridGraph@{3,2},Pick[EdgeList[z][[{3,4,1,2,6,7,5}]],Characters@#,"1"]]&

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

Using it to show a calculator display

l = {7-> 7, 1-> 6, 0-> 63, 8-> 127, 9-> 111,3 -> 79, 5-> 109,  2-> 91, 4-> 102, 6-> 125}; 
GraphicsRow[
  HighlightGraph[z = GridGraph[{3,2}, EdgeStyle-> {White}, GraphHighlightStyle-> {"Thick"}], 
    EdgeList[z][[{3, 4, 1, 2, 6, 7, 5}]][[IntegerDigits[#, 2, 7] Range@7]]] & /@
            (IntegerDigits[8736302] /. l)]

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


আপনি কি ধরণের ইনপুট আশা করেন? না [123]"[123"], না IntegerDigits[123]আমার জন্য কাজ করে। আমি কেবল পাই z, কোনও হাইলাইট না করে।
ডেভিডসি

@ ডড চেষ্টা করুন `হাইলাইটগ্রাফ [z = গ্রিডগ্রাফ @ {3, 2}, চয়ন করুন [এজলিস্ট [জেড] [[{3, 4, 1, 2, 6, 7, 5}]], অক্ষর @ #," 1 "] ] & @ "1111111" `` :)
ডাঃ বেলিসেরিয়াস

3

পাইথন (107)

অবশ্যই আরও গল্ফযোগ্য।

a=map(int,raw_input())
for i in(0,6,3):print' .. '*a[i]+('\n'+' .'[a[5-i/6]]+'  '+' .'[a[1+i/6]])*(2*(i!=3))

আউটপুট:

1101101
 .. 
   .
   .
 .. 
.   
.   
 .. 

ব্যাখ্যা:

a is a list of booleans extracted from the input.
When you multiply a string with a number, it will return the string repeated (number) times.
If that number happens to be zero, it returns an empty string.
i is iterated through 0 (pos A), 6 (pos G), and 3 (pos D).
' .. ' will print either section A, G, or D, depending on the value of i.
([string here])*(2*(i!=3)) will print [string here] twice only if i!=3.
Breaking down [string here]:
 - '\n' will print a newline for each repetition.
 - '  ' is the null space between horizontal sections.
 - ' .'[(bool)] will return either ' ' if (bool) is 0, and '.' if (bool) is 1.
 - 5-i/6 will return 5 if i=0 and 4 if i=6. a[5] is section F and a[4] is section E.
 - 1+i/6 will return 1 if i=0 and 2 if i=6. a[1] is section B and a[2] is section C.

3

পাইথন ২.7 (৯৩ টি চর):

print (' {0}\n{5} {1}\n {6}\n{4} {2}\n {3}').format(*map(lambda x:int(x)and'*'or' ',raw_input()))

ব্যাখ্যা:

স্টিডিন ইনপুট সহ, *সত্যের জন্য দিতে একটি অস্থায়ী টের্নারি অপারেটর এবং মিথ্যাটির জন্য একটি স্থান ব্যবহার করুন। এই মানগুলি ধরুন এবং সেগুলি 7 ডিজিটের ডিসপ্লের বিন্যাসে একটি ফর্ম্যাট বিবৃতিতে প্লাগ করুন। প্রদর্শনটি যদি এইভাবে কাজ করে তবে এটি সর্বাধিক 83 টি অক্ষর হতে পারে:

 a
b c
 d
e f
 g

তবে ক্রমটি আরও দীর্ঘায়িত করে। কেউ কি এই উপায় আছে?

উদাহরণ:

$ ./7seg.py
111000

 *
  *

  *

$ ./7seg.py


1111111

 *
* *
 *
* *
 *

1
দুর্দান্ত, তবে সেই ল্যাম্বদা অপ্রয়োজনীয় বলে মনে হচ্ছে:; print' {0}\n{5} {1}\n {6}\n{4} {2}\n {3}'.format(*[' *'[i=='1']for i in raw_input()])) মুদ্রণ বিবৃতিতে ব্র্যাককেট এবং স্পেসের প্রয়োজন নেই।
দানিরো

কি দারুন! আমি জানতাম না আপনি সূচকগুলিতে বুলিয়ান রাখতে পারেন। ধন্যবাদ :-)
ব্রিগেন্ড

NP। এছাড়াও, এর >'0'পরিবর্তে =='1'এবং input()(চারপাশে ব্যাকটিক্স সহ, তবে এটি এখানে ফরম্যাটের কারণে প্রদর্শিত হবে না) raw_input()
দানিরো

fyi, আপনি কোডে ব্যাকটিক প্রয়োজন হলে আপনি ট্রিপল ব্যাকটিক্স ব্যবহার করতে পারেনx = `input()`
ব্রিগেন্ড

কুল। তারপরে আমি আজও কিছু শিখলাম :)
ডানিরো

3

আমি ভেবেছিলাম আমাদের একটি উত্তম উত্তর প্রয়োজন ...

ক্লোজার, 159 অক্ষর

(print(apply str(flatten(interpose\newline(partition 3(map(fn[x](if(= x\1)\o" "))(str" "(apply str(interpose" "(map(vec(read-line))[0 5 1 6 4 2 3])))" ")))))))

উপরেরগুলি REPL তে চালাবে এবং সঠিক উত্তর সরবরাহ করবে। উদাহরণ স্বরূপ:

1111111
 o 
o o
 o 
o o
 o 

এটিতে ছোট ছোট পরিবর্তন করে নিক্ষেপ করা হচ্ছে:

(doseq [i ["1111110" "0110000" "1101101" "1111001" "0110011" "1011011" "1011111" "1110000" "1111111" "1111011"]]
(println (apply str(flatten(interpose\newline(partition 3(map(fn[x](if(= x\1)\o" "))(str" "(apply str(interpose" "(map(vec i)[0 5 1 6 4 2 3])))" "))))))) 
(println))

উৎপাদনের:

 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


 o 
o o
 o 
o o
 o 

 o 
o o
 o 
  o
 o 

nil

পড়া সহজ নয়, তবে তারা সেখানে আছে!


3

জাভাস্ক্রিপ্ট 123

s=prompt(i=o='');for(m=' 0516423';i++<15;i%3==0?o+='\n':1)o+=' ─│'[~i%2&(A=+s[+m[~~(i/2)]])+(A&+'110'[i%3])];console.log(o)

আমি "অন" অবস্থার জন্য কেবলমাত্র একটি অক্ষর ব্যবহার করি, তবে এটি কম সুস্পষ্ট:

s=prompt(i=o='');for(m=' 0516423';i++<15;i%3==0?o+='\n':1)o+=' ■'[~i%2&s[+m[~~(i/2)]]];console.log(o)

+1 এটি চিত্তাকর্ষক। আমি এখনও এটির বিপরীতে ইঞ্জিনিয়ার করার চেষ্টা করছি। এটি আমাকে ইতিমধ্যে কয়েকটি জিনিস শিখিয়েছে!
গিপর্সী

2

পোস্টস্ক্রিপ্ট 136

বিজয়ী নয়, একটি ভিন্ন পদ্ধতির।

15 string exch{1 and 255 mul}forall
[7 3 9 13 11 5 1]{count 1 sub index 3 1 roll exch put}forall
3 5 8[.02 0 0 .05 0 0]{}image showpage

ইনপুট স্ট্রিংটি স্ট্যাকের মধ্যে থাকবে বলে আশা করে:

$ echo '(1101101)'|cat - 7seg.ps |gs -sDEVICE=png16 -sOutputFile=6c.png -

এটি এর চেয়েও খারাপ। একটি "বাইনারি" বিটম্যাপ করতে 294 । আমি প্রতিটি সারি একটি এমনকি বাইটে প্যাড করা আছে তা মনে রাখতে আমাকে কিছুটা সময় নিয়েছিল। সুতরাং একটি 3x5 বিটম্যাপটি 3 এমএসবি বিটগুলির সাথে পাঁচটি বাইট significant

2#1101101
(12345)exch
2 copy 64 and 0 exch put %A
2 copy 2 and 6 bitshift 2 index 32 and or 1 exch put %F B
2 copy 1 and 6 bitshift 2 exch put %G
2 copy 4 and 5 bitshift 2 index 16 and 1 bitshift or 3 exch put %E C
2 copy 8 and 3 bitshift 4 exch put
pop
3 5 1[.02 0 0 .02 0 0]{}image showpage

আউটপুট অন্যটির মতোই কুৎসিত। :(

ঠিক আছে এখানে ভাল লাগছে। 190

সম্পাদনা করুন: এটি উল্টোদিকে এবং পিছনের দিকে ছিল। এখনই স্থির।

(1101101)
{neg 49 add 255 mul
1 string dup 0 4 3 roll put}forall
(\377){@/g/f/e/d/c/b/a}{exch def}forall
@ a a @
b @ @ f
b @ @ f
@ g g @
c @ @ e
c @ @ e
@ d d @
4 7 8[.01 0 0 .01 0 0]{}image showpage

এটি আমাকে কিছু মজার ধরণগুলি দেখায়। এখনও কোথাও একটি বাগ আছে?
থমাস ডব্লিউ

হুম। হাঁ। (1111110) শূন্যের মতো দেখাচ্ছে না। এটি কেবল একটি বর্ধিত বাইটম্যাপ। আমার ধারণা, বাক্সগুলি বড় করে দেওয়া হয়েছে। :(
লুসার droog

আমি মনে করি এই বিটম্যাপ পদ্ধতির প্রকৃতির মধ্যে দয়ালু। কীভাবে এটি কুশ্রী করা যায় তা আমি নিশ্চিত নই।
লুসার droog

কিছু হালকা মন্তব্য এখানে পাওয়া যায়
লুসার droog

2

গণিত 264

ডান দেখতে আউটপুট পেতে অনেকগুলি বাইটের প্রয়োজন, তাই এবার সিগার নেই। তবে এখানে যাইহোক ভার্বোজ (264 অক্ষর) কোড।

{a, b, c, d, e, g} = {{-1, 5}, {1, 5}, {1, 3}, {1, 1}, {-1, 1}, {-1, 3}};
f@n_ := Graphics[{Yellow, Thickness[.1], CapForm["Round"],
   Line /@ {{g, c}, {g, a}, {g, e}, {e, d}, {d, c}, {c, b}, {b, a}}[[Flatten@
   Position[IntegerDigits[n, 2, 7], 1]]]}, 
   Background -> Blue, PlotRange -> {{-1, 1}, {1, 5}}, PlotRangePadding -> 1]

অক্ষরের সম্পূর্ণ সেট:

GraphicsGrid[Partition[Table[f[p], {p, 0, 128}], 16]]

characteris

সংখ্যাগুলি:

{f[63], f[6], f[91], f[79], f[102], f[109], f[125], f[7], f[127], f[111]}

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


2

পিএইচপি - 155 টি অক্ষর

<?php
$y=array("   \n"," - \n","   \n","  |\n","|  \n","| |\n"); $x = $argv[1]; echo $y[$x[0]].$y[2*$x[6]+$x[2]+2].$y[$x[7]].$y[2*$x[5]+$x[3]+2].$y[$x[4]];

এটি যদি আমরা পিএইচপি 5.4 টাইপ অ্যারে ঘোষণা ব্যবহার করি তবে এটি 150 টি অক্ষর হবে, তবে আমার ল্যাপটপে এটি ইনস্টলড নেই তাই এটি পরীক্ষা করতে পারে না।

নমুনা আউট রাখে।

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

ব্যাখ্যা:

প্রথমে আমি 7 বিভাগটি প্রদর্শনকে পাঁচটি সারি এবং 3 কলামে ভাগ করেছি। 1 ম, তৃতীয় এবং 5 ম সারির মধ্যম কলামে '-' এবং অন্যথায় স্থানটি রয়েছে।

২ য় এবং চতুর্থ সারিতে পাইপ রয়েছে '|' প্রথম এবং শেষ কলামে অক্ষর। এখন এই চরিত্রের উপস্থিতি ইনপুট মানগুলির দ্বারা পরিচালিত হওয়া উচিত।

আমি একটি অনুসন্ধানের টেবিল তৈরি করেছি, যা মূলত দুটি লুক টেবিল। প্রথম, তৃতীয় এবং ৫ ম সারির মান গণনার জন্য প্রথমটি। ২ য় এবং চতুর্থ সারির গণনার জন্য অফসেট ২ (তৃতীয় আইটেম) এ অন্য একটি।


2

জাভা - 204 টি অক্ষর

class A{public static void main(String[]a){char[]c=new char[7];for(int i=0;i<7;i++)c[i]=a[0].charAt(i)==49?i%3==0?95:'|'):32;System.out.printf(" %c %n%c%c%c%n%c%c%c",c[0],c[5],c[6],c[1],c[4],c[3],c[2]);}}

নমুনা আউটপুট:

 _ 
 _|
|_ 

সঠিকভাবে ফর্ম্যাট করা:

class A {
    public static void main(String[] a) {
        char[] c = new char[7];
        for (int i = 0; i < 7; i++)
            c[i] = a[0].charAt(i) == 49 ? (i % 3 == 0 ? 95 : '|') : 32;
        System.out.printf(" %c %n%c%c%c%n%c%c%c", c[0], c[5], c[6], c[1], c[4], c[3], c[2]);
    }
}

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

সম্পাদনা: ক্লাসে "পাবলিক" পরিত্রাণ পেতে পারে, আমার 7 অক্ষর বাঁচায়!

এবং ধন্যবাদ, দানিরো, আমাকে প্রিন্টফ দেখানোর জন্য! (১৮ টি চরিত্র সংরক্ষিত)

আউটপুট ফর্ম্যাটটি পুনরায় লিখুন, অক্ষর অক্ষরে দশমিক পরিবর্তিত হয়েছে, 12 টি অক্ষর সংরক্ষণ করা হয়েছে।


Codegolf.se স্বাগতম! জাভা printfকয়েকটি সংস্করণ ফিরে একটি পদ্ধতি চালু করেছিল , যা মূলত printlnএবং formatএকটিতে (সি ফাংশনের মতো); এটি আপনাকে কিছু অক্ষর বাঁচাবে,
ডানিরো

এখানে অন্য কৌশলটি: আপনি forলুপের "বডি" এবং আপডেটের অংশটিকে এক করে মিশিয়ে একটি অক্ষর সংরক্ষণ করতে পারেন:for(int i=7;i>0;c[--i]=a[0].charAt(i)==49?(i%3==0?95:'|'):32);
ড্যানিরো

1

ভিবিএ - 263

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

Sub d(b)
Dim c(1 To 7)
For a=1 To 7
c(a)=Mid(b,a,1)
Next
x=" - "
y="|"
z=" "
w="   "
v=vbCr
MsgBox IIf(c(1)=1,x,w) & v & IIf(c(6)=1,y,z) & z & IIf(c(2)=1,y,z) & v & IIf(c(7)=1,x,w) & v & IIf(c(5)=1,y,z) & z & IIf(c(3)=1,y,z) & v & IIf(c(4)=1,x,w)End Sub

1

ভিবিএস স্ক্রিপ্ট - 178 টি অক্ষর

m=Split("2 7 11 10 9 5 6")
s=" _ "&vbCr&"|_|"&vbCr&"|_|"
For x=1 To 7
If Mid(WScript.Arguments.Item(0),x,1)=0 Then r=m(x-1):s=Left(s,r-1)&" "&Right(s,Len(s)-r)
Next
MsgBox s

ধন্যবাদ! দম্পতি হাড়ের মাথায় ভুলগুলি আমার জন্য 6 টি অক্ষর। ফাংশন লাইন আর্গুমেন্টটি পাওয়ার জন্য অযৌক্তিকভাবে দীর্ঘ কল দিয়ে আমি প্রায় এটি ভিবিএর আকারে নামতে পারি।
কামিন্টার্ন

আপনার কোডটি যদি নতুন লাইনের অক্ষরগুলি ব্যতীত কার্যকর না হয় তবে আপনাকে সেগুলিও গণনা করতে হবে। এটিতে আমার গণনা অনুসারে এটিতে 178 টি অক্ষর রয়েছে।
manatwork

1

সিজোম - 29

l0N]s7078571876784728737Ab\f=

সিজেএম হ'ল আমি যে নতুন ভাষা বিকাশ করছি তা গল্ফস্ক্রিপ্টের অনুরূপ - http://sf.net/p/cjam । এখানে ব্যাখ্যা:

lসার্চ ইনপুট থেকে একটি লাইন
0সংখ্যা 0
Nএকটি পরিবর্তনশীল সম্পর্কে newline স্ট্রিং preinitialized হয়
]একটি অ্যারের একত্রিত করে স্ট্যাক উপাদান
sস্ট্রিং একটি মান (অ্যারে) পরিবর্তন করে, এইভাবে প্রদত্ত ইনপুট করার জন্য একটি শূন্য এবং একটি newline সংযোজন
7078571876784728737একটি হল সংখ্যা (আমি পাইথনটিতে একই সংখ্যাটি ব্যবহার করেছিলাম, তবে এটি
Aহেক্সে ছিল) একটি পরিবর্তনশীল 10 থেকে
bএকটি বেস রূপান্তর করে, অ্যারে তৈরি করে [7 0 7 8 ... 3 7]
\স্ট্যাকের উপরের দুটি মান অদলবদল করে
f=প্রযোজ্য =ইনপুট স্ট্রিং উপর অপারেটর (এখানে সূচীবদ্ধ অ্যারে অ্যাক্সেস) (প্লাস শূন্য এবং সম্পর্কে newline) এবং প্রতিটি 7 নম্বর, 0, 7, ...
সূচক যোগ শূন্য 7 অনুরূপ, এবং যোগ সম্পর্কে newline 8 অনুরূপ।

আমার অজগর সমাধানটি ঠিক একই কাজ করে (স্ট্রিং রূপান্তরের মাধ্যমে অঙ্ক বিভাজনটি বাদ দিয়ে)


আমি এখানে কি তাকিয়ে আছি? কোডটির একটি সংক্ষিপ্ত ব্যাখ্যা দেওয়ার জন্য যত্নশীল?
দানিরো

@ ডানিরো আমি একটি ব্যাখ্যা যুক্ত করেছি
aditsu

1

ভিবিএ, 188 টি অক্ষর

নোট এক যে টাইপ যদি শুধু বাধ্যতামূলক হোয়াইটস্পেস সহ 188 টি অক্ষর - আইডিই এটা বিস্তৃতি আউট যখন আপনি এটি VBA এডিটর মধ্যে কপি করুন।

Sub f(i)
Dim c() As Byte
m=Split("1 6 10 9 8 4 5")
c=StrConv(" _  |_| |_|",128)
c(3)=10
c(7)=10
For x=1 To 7
If Mid(i,x,1) = 0 Then c(m(x-1))=32
Next
MsgBox StrConv(c,64)
End Sub

দুঃখের বিষয়, ভিবিএস স্ক্রিপ্টটিতে শক্তভাবে টাইপ করা বাইট অ্যারে নেই বা এটি এই পদ্ধতিটি ব্যবহার করে আরও ছোট হতে পারে।


1

জাভাস্ক্রিপ্ট (ECMAScript 2016) - 108 বাইট

console.log(([a,b,c,d,e,f,g]=[...prompt()].map((x,i)=>+x?'_||'[i%3]:' '),` ${a}
${f}${g}${b}
${e}${d}${c}`))

এটি সম্ভবত আরও গল্ফ করা যেতে পারে, তবে আমি কিছুই ভাবতে পারি না।


সাইটে স্বাগতম! এটি একটি দুর্দান্ত প্রথম এন্ট্রি :)
ড্যানিরো

1

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

e=>(e[0]==1?" #\n":"\n")+(e[5]==1?"#":" ")+(e[1]==1?" #\n":"\n")+(e[6]==1?" #\n":"\n")+(e[4]==1?"#":" ")+(e[2]==1?" #\n":"\n")+(e[3]==1?" #\n":"\n")

এটি অনলাইন চেষ্টা করুন! (পাদলেখ পড়ার জন্য নোড.জেএস .input.tio)

বাইনারি পতাকা এবং রিটার্নগুলিতে ABCDEFG এর ইনপুট গ্রহণ করে:

 #
# #
 #
# #
 #

0

স্মাইলব্যাসিক, 136 বাইট

DIM A[7,2]COPY A,@L@L?DATA.,1,1,3,4,3,6,1,4,0,1,0,3,1INPUT X$FOR I=0TO 6M=I MOD 3GBOX A[I,1],A[I,0],A[I,1]+!M,A[I,0]+!!M,-VAL(X$[I])NEXT

আউটপুট গ্রাফিকাল।


0

05 এ বি 1 ই , 4 বাইট

C₄+ç

এটি অনলাইনে চেষ্টা করুন বা সম্ভাব্য সমস্ত ইনপুট যাচাই করুন

দেখুন যাচাই সব সম্ভব ইনপুট প্রতিটি ইনপুট জন্য ব্যবহৃত ম্যাপিং দেখতে উপরের লিঙ্ক।

ব্যাখ্যা:

এটি বিধিগুলিকে লঙ্ঘন করে যেখানে এটি উল্লেখ করেছে:

আপনি প্রদর্শনটি কীভাবে উপস্থাপন করবেন তা আপনার উপর নির্ভর করে - একটি একক ইউনিকোড বা এএসসিআইআই প্রতীক , এএসসিআইআই আর্ট, গ্রাফিকালি বা আপনি যা কিছু সামনে আসতে পারেন। যাইহোক, প্রতিটি ইনপুট এর নিজস্ব স্বতন্ত্র আউটপুট থাকতে হবে।

C       # Convert the (implicit) input from binary to integer
 ₄+     # Increase it by 1000
   ç    # Convert it to a unicode character with this value (and output implicitly)

আউটপুট-ফর্ম্যাটটি ব্যবহার করে চ্যালেঞ্জের চেতনায় বিকল্প আরও:

 -
| |
 -
| |
 -

38 বাইট :

Σ•L7וNè}εi" -| | "14∍2ôNèëðº]J24S5∍£»

অবশ্যই গল্ফ করা যেতে পারে ..

এটি অনলাইনে চেষ্টা করুন বা সম্ভাব্য সমস্ত ইনপুট যাচাই করুন

ব্যাখ্যা:

Σ       }          # Sort the (implicit) input-digits by:
 L7וNè           #  The digit at the same index in the compressed integer 1367524
                   #   i.e. "1101101" → ["1","0","1","1","1","0","1"]
ε                  # Then map each digit to:
 i                 #  If it's a 1:
  " -| | "         #   Push string " -| | "
          14      #   Lengthen it to size 14: " -| |  -| |  -"
             2ô    #   Split it into parts of 2: [" -","| ","| "," -","| ","| "," -"]
               Nè  #   Index into it
 ë                 #  Else (it's a 0):
  ðº               #   Push "  " (two spaces) instead
    ]              # Close both the if-else and map
                   #  i.e. ["1","0","1","1","1","0","1"]
                   #   → [" -","  ","| "," -","| ","  "," -"]
J                  # Join everything together to a single string
                   #  i.e. [" -","  ","| "," -","| ","  "," -"] → " -  |  -|    -"
 24S               # Push [2,4]
    5             # Lengthened to size 5: [2,4,2,4,2]
      £            # Split the string into parts of that size
                   #  i.e. " -  |  -|    -" → [" -","  | "," -","|   "," -"]
       »           # Join by newlines (and output implicitly)
                   #  i.e. [" -","  | "," -","|   "," -"] → " -\n  | \n -\n|   \n -"

আমার এই 05AB1E ডগা দেখুন ( অধ্যায় ইপিএসে দক্ষিন কোরিয়ায় কিভাবে পূর্ণসংখ্যার কম্প্রেস কিভাবে? ) কেন বুঝতে •L7וহয় 1367524


0

পিএইচপি 5.6, 65 বাইট প্লেইন ASCII

for(;$p++<9;)echo$argn[_707561432[$p]]?"||_"[$p%3]:" ","\n"[$p%3];

বা, কোনও পেছনের লাইনব্রেক ছাড়াই, তবে কিছুটা মজাদার সাথে:

for(;$p++<11;)echo$argn[_70785618432[$p]]?L|Sx[$p&1]:a^kAAA[$p&3];

পাইপ হিসাবে চালনা করুন-nR বা তাদের অনলাইনে চেষ্টা করুন

ভাঙ্গন ঘ

for(;$p++<9;)echo           # loop through positions
    $argn[_707561432[$p]]   # map position to input bit
        ?"||_"[$p%3]            # if set: underscore in 2nd column, pipe symbol else
        :" "                    # else space
    ,"\n"[$p%3]             # add newline every 3 columns
;

ভাঙ্গন 2

for(;$p++<11;)echo          # loop through positions
    $argn[_70785618432[$p]] # map position to input bit (bit 8 for EOL, never set)
        ?L|Sx[$p&1]             # if set: underscore in the middle, pipe symbol else
        :a^kAAA[$p&3]           # else: newline in 4th column, space else

1
2017 সালের গ্রীষ্মের পর থেকে ভাষাটি নতুন বা পুরানো আর কোনও বিষয় নয় । সুতরাং আপনাকে প্রতিযোগী করার বিষয়টি উল্লেখ করতে হবে না।
কেভিন ক্রুইজসেন

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