"ডিজিটাল ক্লক স্টাইল" নম্বর রেন্ডার করুন


28

সংক্ষিপ্ততম প্রোগ্রামটি লিখুন যা সংখ্যার একটি স্ট্রিং নেবে ( কমপক্ষে 20 দৈর্ঘ্য পর্যন্ত) ইনপুট হিসাবে এবং স্ট্যান্ডার্ড ডিজিটাল ক্লক শৈলীর সংখ্যা ব্যবহার করে আউটপুট প্রদর্শন করবে। ইনপুট 81 এর উদাহরণস্বরূপ, এসকিআই আউটপুট সহ একটি সমাধান দেবে:

 _
|_|  |
|_|  |

গ্রাফিকাল আউটপুট এছাড়াও গ্রহণযোগ্য, যদি এটি সাহায্য করে।


"ইনপুট হিসাবে সংখ্যার একটি স্ট্রিং নিতে" উপরের কোনও উচ্চতর সীমা?
আমান জেক ভার্মা

হুঁ, 80 কলামের স্ক্রিনে একটি সারি বলি (20) যথেষ্ট ভাল
মটিনেটর


1
এছাড়াও সম্পর্কিত: stackoverflow.com/q/3324301/code-golf-digital-clock
dmckee

উত্তর:


6

এপিএল (ডায়ালগ) (45)

{3 3⍴' _|'[1+⍵⊤⍨9⍴3]}¨⎕UCS'ા8धगɯે૙ࣃଏ૽'[1+⍎¨⍞]

স্ট্রিংটি ા8धगɯે૙ࣃଏ૽হ'ল ইউনিকোড অক্ষর 2750 56 2343 2327 623 2759 2777 2243 2831 2813(তবে, আপনি কেবল এটি অনুলিপি করে আটকে দিতে সক্ষম হবেন)। তারা সংখ্যাগুলি এনকোড করে। প্রোগ্রামটি কীবোর্ড থেকে একটি লাইন পড়ে।

ব্যাখ্যা:

  • 1+⍎¨⍞: কীবোর্ড থেকে একটি লাইন পড়ুন, প্রতিটি অক্ষরকে একটি অঙ্ক হিসাবে পার্স করুন, তারপরে প্রতিটি সংখ্যায় 1 যুক্ত করুন (এপিএল অ্যারেগুলি ডিফল্টরূপে 1-ভিত্তিক হয়)।
  • ⎕UCS'ા8धगɯે૙ࣃଏ૽'[... ]: আপনি যে সংখ্যাটি লিখেছেন তার অঙ্কের সাথে সম্পর্কিত অক্ষরগুলি নির্বাচন করুন এবং ইউনিকোডের মানগুলি সন্ধান করুন।
  • {... : এই প্রতিটি মানের জন্য, করুন:
  • 1+⍵⊤⍨9⍴3: বেস -3 হিসাবে প্রকাশিত মান থেকে প্রথম 9 বেস -3 সংখ্যাগুলি পান এবং 1 যুক্ত করুন (কারণ অ্যারেগুলি 1-ভিত্তিক)।
  • ' _|'[... ]: এই সংখ্যাগুলির উপর নির্ভর করে একটি স্থান, অনুভূমিক রেখা বা উল্লম্ব লাইন নির্বাচন করুন
  • 3 3⍴: 3-বাই -3 বাক্স হিসাবে ফর্ম্যাট।

36

Funciton

গল্ফের জন্য উপযুক্ত কোনও ভাষা নয় ... তবে নির্বিশেষে, আমি কোডের আকারটি যতটা পারি তার চেয়ে ছোট রাখার চেষ্টা করেছি - "স্বাভাবিক" ভাষার চেয়ে বেশ আলাদা একটি চ্যালেঞ্জ। এটি 1555 টি অক্ষর বা 3110 বাইট (যদি ইউটিএফ -16 হিসাবে এনকোড থাকে; ইউটিএফ -8 আরও বড় হয়)।

প্রোগ্রামটির একটি স্ক্রিনশট চলছে। এটা সত্যিই কাজ করেছে :)

অতিরিক্ত লাইন ব্যবধানের কারণে এটি স্ট্যাকএক্সচেঞ্জে অদ্ভুত দেখায় তাই আপনার ব্রাউজারের জাভাস্ক্রিপ্ট কনসোলে নিম্নলিখিত কোডটি চালানোর বিষয়টি বিবেচনা করুন: $('pre').css('line-height',1)

     ╓─╖ ╔╗┌─╖   ┌─╖
     ║ʜ║ ║╟┤↔╟┐ ┌┤‼╟┐
     ╙┬╜ ╚╝╘═╝│ │╘╤╝│
╔═╗  ┌┴────┐  │┌┴╖ ┌┴╖
║0║ ┌┴─┐  ┌┴─┐└┤ʜ╟─┤·╟┐
╚╤╝┌┴╖┌┴╖┌┴╖┌┴╖╘╤╝ ╘╤╝│
┌┘┌┤·╟┤ɦ╟┤·╟┤?╟ │  ┌┴╖│
│ │╘╤╝╘╤╝╘╤╝╘╤╝ └──┤‼╟┘
│┌┴╖│ ┌┴╖┌┘╔═╧╗    ╘═╝
└┤?╟┘┌┤?╟┘┌╢10║    ┌─────────┐
 ╘╤╝ │╘╤╝┌┘╚══╝ ┌─┬┘╔══╗┌──╖┌┴╖ ╓─╖
  ┘  └───┘╔════╗│┌┴┐║21╟┤>>╟┤·╟┐║ɦ║
╔════════╗║1005╟┘└┬┘╚══╝╘═╤╝╘╤╝│╙┬╜        ┌─┐
║14073768║╚════╝ ┌┴╖ ┌─╖ ┌┴╖┌┴╖└─┴─────────┘┌┴╖
║7584800 ╟───────┤?╟─┤‼╟─┤ʜ╟┤·╟─────────────┤·╟┐╔═══════╗╔══╗
╚════════╝       ╘╤╝ ╘╤╝ ╘╤╝╘╤╝    ╔══╗┌─╖┌┐╘╤╝│║2097151║║21╟┐
 ╔═══════════════╗│   ┘   │  │     ║48╟┤−╟┤├─┤┌┘╚══╤════╝╚══╝│
 ║140737555464224╟┘  ┌────┘┌┬┘     ╚══╝╘╤╝└┘┌┘│╓─╖ │┌┐┌─╖┌─╖┌┴─╖
 ╚═══════════════╝   │ ┌───┘└─────────┐┌┴─╖ │┌┘║↔║ ├┤├┤‼╟┤↔╟┤>>║
┌────────────┐┌────┐┌┴╖│┌────────────┐├┤<<║ ││ ╙┬╜┌┘└┘╘╤╝╘═╝╘╤═╝
│   ╔══╗╔═══╗├┘╓─╖ └┤·╟┘│   ╔══╗╔═══╗├┘╘╤═╝ │└─┐└─┤╔═╗┌┴╖ ┌──┘
│   ║95║║892║│┌╢‡╟┐ ╘╤╝ │   ║95║║877║│ ┌┘╔══╧═╗│  │║0╟┤?╟┬┘
│   ╚═╤╝╚═╤═╝││╙─╜│  │  │   ╚═╤╝╚═╤═╝│╔╧╗║2097║│  │╚═╝╘╤╝│
│╔══╗┌┴╖┌┐│  ││┌─╖│ ┌┴╖ │╔══╗┌┴╖┌┐│  │║1║║151 ║│  └──────┘
│║32╟┤?╟┤├┤  │└┤‼╟┘┌┤‡║ │║32╟┤?╟┤├┤  │╚═╝╚════╝│
│╚══╝╘╤╝└┘└──┴┐╘╤╝ │╘╤╝ │╚╤═╝╘╤╝└┘└──┴┐      ┌─┘
│    ┌┴╖     ┌┴╖┌─╖│ │ ┌┴╖│  ┌┴╖     ┌┴╖ ┌─╖┌┴╖
│    │‼╟─────┤·╟┤‼╟┘ │┌┤·╟┘  │‼╟─────┤·╟─┤‼╟┤‡║
└┐┌┐ ╘╤╝     ╘╤╝╘╤╝  ││╘╤╝┌┐ ╘╤╝     ╘╤╝ ╘╤╝╘╤╝
 ├┤├┐┌┴╖╔══╗  └──┐┌┐ │└┐├─┤├┐┌┴╖╔══╗  ├──┐└  │
 │└┘└┤?╟╢32║╔═══╗├┤│┌┴╖││ └┘└┤?╟╢32║╔═╧═╗│┌┐┌┴╖╔══╗
╔╧══╗╘╤╝╚══╝║881╟┘│├┤?╟┘│    ╘╤╝╚══╝║325║└┤├┤?╟╢32║
║927║╔╧══╗  ╚═══╝ └┘╘╤╝╔╧═══╗╔╧══╗  ╚═══╝ └┘╘╤╝╚══╝
╚═══╝║124╟───────────┘ ║1019║║124╟───────────┘
     ╚═══╝             ╚════╝╚═══╝

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

আমি আরও একটি ভুল করেছি (দুটি কল করে অপারেটরগুলিকে অদলবদল করেছিলাম ) যার ফলে অতিরিক্ত ফাংশনটি ডিক্লেয়ার করা প্রয়োজনীয় হয়ে পড়েছিল , তবে এইটি এত ছোট এটি মূল ফাংশনের অভ্যন্তরে ফিট করে এবং এইভাবে কোনও অক্ষর যুক্ত করে না!


8
ওহ, এটি দুর্দান্ত দেখাচ্ছে। কেবল সমাধানই নয়,
জয়ে

1
এটি ঠিক দুর্দান্ত
কেনার্ড

9

ডাব্লুএক্সপিথন, অনেকগুলি অক্ষর

import wx, wx.gizmos as g

class T(wx.Frame):
 def __init__(_):
  wx.Frame.__init__(_, None, size = (800, 60))
  l = g.LEDNumberCtrl(_, -1)
  l.Value = raw_input()

class M(wx.App):
 def OnInit(_):
  T().Show()
  return 1

M().MainLoop()

পরীক্ষা

echo -n 81 | python codegolf-997-wx.py

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

পিএস: কোনও গুরুতর এন্ট্রি নয়, তবে গ্রাফিকাল আউটপুটটিও গ্রহণযোগ্য বলে মনে হচ্ছে, তাই আমি এটি চেষ্টা করে দেখেছি :-)


এটি দেখতে +1 খুশি :) :)
মোটিয়েনেটর

1
আপনি অনেক। : পি
আপনি

8

গল্ফস্ক্রিপ্ট - 66 অক্ষর

"placeholder text for userscript which counts chars             ";

xxd: ( xxd -rপ্রত্যাবর্তনের জন্য ব্যবহার করুন)

0000000: 332c 7b3a 533b 2e7b 3438 2d22 5e70 285d  3,{:S;.{48-"^p(]
0000010: 7025 d3c4 4ab1 7d4a b8dc 4469 ce41 2222  p%..J.}J..Di.A""
0000020: f303 227b 6261 7365 7d2f 3330 2f53 3d33  .."{base}/30/S=3
0000030: 2f3d 7b22 5f20 7c22 3d7d 257d 256e 407d  /={"_ |"=}%}%n@}
0000040: 2f3b                                     /;

এটি অন্যান্য উত্তরগুলির বেশিরভাগ ক্ষেত্রে অনুসরণ করে যে সংখ্যার মধ্যে ফাঁকা স্থান নেই এবং পিছনের স্থানগুলি রাখা হয়েছে numbers সংখ্যার মধ্যে একটি স্পেস সহজেই 1+আগের সাথে যুক্ত করা যেতে পারে {"_ |"=}%। একটি বেস 3 নম্বর, এবং তারপরে একটি স্ট্রিং মধ্যে 243 বেস হিসাবে প্যাক।


যথেষ্ট ফর্সা। আমি সংখ্যার মধ্যে অপ্রয়োজনীয় স্থান নিয়ে বিরক্ত না হওয়ার জন্য প্রশ্নটি আপডেট করেছি।
মোটিয়েনেটর

6
আমি মনে করি "স্থানধারক ..." জিনিসটি কিছুটা বিভ্রান্তিকর।
এলেভেক্স

8

জে, 90 , 78 68 অক্ষর

[ আপডেট: ইউনিকোড (1 বাইট) এনকোডিং ব্যবহার করে:

,./(10 3 3$((90$3)#:256#.24x-~3&u:'%ė¨ÔW/~º»sy¡ăì<t÷²'){' _|'){~"./.Y
NB. utf characters are: 37 279 168 212 87 47 126 186 187 115 121 161 259 236 60 116 247 178

আগের মতো কাজ করে:]

,./(10 3 3$((90$3)#:1219424106940570763878862820444729939648410x){' _|'){~"./. '58321'
 _  _  _  _    
|_ |_| _| _|  |
 _||_| _||_   |

কীটি বেস -3 সংখ্যার হিসাবে অঙ্কগুলির এনকোডিংয়ে রয়েছে। জিরো, উদাহরণস্বরূপ:

:
 _ 
| |
|_|

বা ' _ | ||_|', যা 010202212 3 = 2750 হয়।


জে যদি উচ্চ নির্ভুলতার বেস-36 numbers নম্বর থাকে তবে আমি 10 টি অক্ষর বাঁচাতে পারি। কোন পরামর্শ কেউ?
ইলেভেক্স

আমি এখন বাইনারি ব্যবহার করছি। আমি ভাবছি ট্রিনি যদি আমাকে কিছু স্ট্রোক বাঁচায়?
লুসার droog

2
কোডগলফ.এসইতে 1000 তম পোস্ট থাকার জন্য অভিনন্দন! ( http://codegolf.stackexchange.com/q/1000)
ডোরকনবব

2+ বছর দেরি হলেও ধন্যবাদ :)
এলেভেক্স

5

গণিত 205 209 198 179

i = IntegerDigits; t = Thread; r = Rule;
z@n_ := Row@i@n /. t[r[Range[0, 9], Grid[Partition[ReplacePart[Characters@" _ |_||_|", 
t[r[#, ""]]], 3], Spacings -> 0] & 
/@ (i /@ {5, 24578, 49, 47, 278, 67, 6, 4578, , 78})]]

ব্যবহার

z@1234567890

ডিজিটের


5

জাভাস্ক্রিপ্ট (145)

148 145

যেহেতু জাভাস্ক্রিপ্টটির আসলে স্ট্যান্ডার্ড ইনপুট / আউটপুট নেই তাই এটি একটি ফাংশন হিসাবে লেখা যা স্ট্রিং নেয় এবং আউটপুটটিকে স্ট্রিং হিসাবে ফিরিয়ে দেয়।

function r(n){for(i=o="",b=" |_\n|",L=n.length;i<3*L;)o+=b[(c="ǪĠòƲĸƚǚĢǺƺ".charCodeAt(n[i%L])>>(i++/L|0)*3)&1]+b[c&2]+b[c&4]+b[i%L?0:3];return o}

স্পেস আউট:

function r(n)
{
    for (i = o = "", b = " |_\n|", L = n.length;   i < 3*L;   )
        o += b [ (c = "ǪĠòƲĸƚǚĢǺƺ".charCodeAt(n[i%L]) >> (i++/L|0)*3) & 1 ] +
             b [ c&2 ] +
             b [ c&4 ] +
             b [ i%L ? 0 : 3 ];  // space or newline
    return o
}

এখানে কিভাবে এটা কাজ করে:

  • প্রতিটি অঙ্কের আকারটি 9 বিট সমন্বিত একটি ইউনিকোড অক্ষরে এনকোড করা থাকে।
  • প্রথম তিনটি বিট প্রথম সারির জন্য হয় ইত্যাদি for

  • তিনটি বিটের প্রতিটি গ্রুপে প্রথমটি উল্লেখ করে যে প্রথম অক্ষরটি |স্থান বা স্থান, দ্বিতীয়টি তা _স্থান বা স্থান এবং তৃতীয়টি আবার |বা স্থান।

  • এই তিনটি বিট হিসাবে পুনরুদ্ধার করা হয় c&1, c&2এবং c&4, যা পরে স্ট্রিংয়ের সূচক হিসাবে ব্যবহৃত হয় b

  • প্রতিটি পুনরাবৃত্তিতে, i%L"এক্স-কো-অর্ডিনেট", অর্থাৎ ইনপুটটির মধ্যে অঙ্কn

  • প্রতিটি পুনরাবৃত্তিতে i/Lহ'ল "y- স্থানাঙ্ক", অর্থাৎ সারি, তবে আমাদের |0এটি একটি পূর্ণসংখ্যা করা দরকার

  • অবশেষে, সংখ্যা এবং লাইনের মধ্যে নতুন লাইন মধ্যে শূণ্যস্থান হয় এছাড়াও মধ্যে ইন্ডেক্স দ্বারা উদ্ধার bপুনরায় ব্যবহার স্থান অক্ষর এবং যে স্ট্রিং অন্যথায় অব্যবহৃত অবস্থান 3! :)


ইউনিকোড! BAH! ... ভাল, এটি হল খনি চেয়ে খাটো। +1
লুসার ড্র্যাগ


3

গল্ফস্ক্রিপ্ট - 97 টি অক্ষর

:*{32' _':$@'14'{?~!=}:&~32}%n*{:x' |':|\'1237'&$x'017'&|x'56'&}%n*{:x|\'134579'&$x'147'&|x'2'&}%

সমস্ত সংখ্যার স্ট্রিংয়ের জন্য একটি চর সংরক্ষণ করার জন্য ব্যাকটিকটি ব্যবহার করুন (কোডটি বিন্যাসে আমি এই অক্ষরটি কীভাবে সন্নিবেশ করব?)
নবব

@ ন্যাব: আপনি পারবেন না - স্ট্যাক এক্সচেঞ্জ এর মতো
বকাঝকা

3

উইন্ডোজ পাওয়ারশেল, 127

$i="$input"[0..99]
'☺ ☺☺ ☺☺☺☺☺','♠☻♥♥♦♣♣☻♦♦','♦☻♣♥☻♥♦☻♦♥'|%{$c=$_
""+($i|%{('···0·_·0··|0·_|0|_|0|_·0|·|'-split0)[$c[$_-48]]})}

যেহেতু স্ট্রিংগুলিতে কিছু অপ্রীতিকর-থেকে-লেখার অক্ষর রয়েছে, আপনার সুবিধার জন্য একটি হেক্সডাম্প:

000: 24 69 3D 22 24 69 6E 70 │ 75 74 22 5B 30 2E 2E 39  $i="$input"[0..9
010: 39 5D 0A 27 01 00 01 01 │ 00 01 01 01 01 01 27 2C  9]◙'☺ ☺☺ ☺☺☺☺☺',
020: 27 06 02 03 03 04 05 05 │ 02 04 04 27 2C 27 04 02  '♠☻♥♥♦♣♣☻♦♦','♦☻
030: 05 03 02 03 04 02 04 03 │ 27 7C 25 7B 24 63 3D 24  ♣♥☻♥♦☻♦♥'|%{$c=$
040: 5F 0A 22 22 2B 28 24 69 │ 7C 25 7B 28 27 20 20 20  _◙""+($i|%{('
050: 30 20 5F 20 30 20 20 7C │ 30 20 5F 7C 30 7C 5F 7C  0 _ 0  |0 _|0|_|
060: 30 7C 5F 20 30 7C 20 7C │ 27 2D 73 70 6C 69 74 30  0|_ 0| |'-split0
070: 29 5B 24 63 5B 24 5F 2D │ 34 38 5D 5D 7D 29 7D     )[$c[$_-48]]})}


3

gForth, 186 175 অক্ষর

নতুন সংস্করণ:

: s query parse-word bounds s" D@DD@DDDDDb`ddfFF`fff`Fd`df`f`" bounds do cr 2dup do i c@ '0 - j + c@ 3 0 do dup 3 and s"  _|" drop + 1 type 4 / loop drop loop 10 +loop bye ; s

এটি প্রকৃতপক্ষে প্রস্থান করতেও বিরক্ত করে (+3 অক্ষর) :)। এখানে আরও পঠনযোগ্য সংস্করণটি হ'ল এটি লুটের আকারকে 1/3 কমাতে কিছুটা বিট-প্যাকিং করে তবে ফলাফলটি কোড আরও জটিল তাই এটি খুব বেশি সঞ্চয়ী নয়:

: 7s query parse-word bounds 
    s" D@DD@DDDDDb`ddfFF`fff`Fd`df`f`"
    bounds do 
        cr
        2dup do
            i c@ '0 - j + c@
            3 0 do
                dup 3 and
                s"  _|" drop + 1 type
                4 / \ shorter than an rshift
            loop
            drop
        loop
    10 +loop bye ;
7s

পুরনো সংস্করণ:

: s query parse-word bounds s"  _     _  _     _  _  _  _  _ | |  | _| _||_||_ |_   ||_||_||_|  ||_  _|  | _||_|  ||_|  |" bounds do cr 2dup do i c@ '0 - 3 * j + 3 type loop 30 +loop ; s

এটি স্ট্যাকটি ভারসাম্যহীন ছেড়ে দেয় এবং দোভাষী থেকে বেরিয়ে আসার ঝামেলা করে না। এখানে একটি ক্লিনার আরও পঠনযোগ্য সংস্করণ

: 7s query parse-word bounds 
    s"  _     _  _     _  _  _  _  _ | |  | _| _||_||_ |_   ||_||_||_|  ||_  _|  | _||_|  ||_|  |"
    bounds do 
        cr
        2dup do
            i c@ '0 - 3 * j + 3 type
        loop
    30 +loop 2drop bye ;
7s

2

সি # 369 টি অক্ষর

static void Main(string[] a){var b = new[] {123,72,61,109,78,103,119,73,127,111};var g = new[]{" _  ","|","_","| ","|","_","| "};a[0].ToCharArray().SelectMany((x,w)=>g.Select((y,i)=>new{s=((b[x-48]>>i&1)==1)?y:new String(' ',y.Length),j=i,v=w})).GroupBy(z=>(z.j+2)/3).ToList().ForEach(q=>Console.WriteLine(String.Join("", q.OrderBy(l=>l.v).Select(k=>k.s).ToArray())));}

আমি সহজেই কয়েকটা অক্ষর কেটে ফেলতে পারতাম । লিঙ্কটি অপব্যবহার করার বিষয়টি আরও ছিল :)

আরও হোয়াইটস্পেস সংস্করণ:

static void Main(string[] a)
{
    var b = new[] {123, 72, 61, 109, 78, 103, 119, 73, 127, 111};
    var g = new[] { " _  ", "|", "_", "| ", "|", "_", "| " };
    a[0].ToCharArray().SelectMany(
        (x,w)=>g.Select(
           (y,i)=>new{s=((b[x-48]>>i&1)==1)?y:new String(' ',y.Length),j=i,v=w}))
            .GroupBy(z=>(z.j+2)/3).ToList().ForEach(
            q=>Console.WriteLine(
                String.Join("", q.OrderBy(l=>l.v).Select(k=>k.s).ToArray())));
}

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

আহ, ধন্যবাদ আমি কাজটি সম্পাদনা করেছি কারণ কেউই মূল শ্বেতস্থান নিয়ম অনুসরণ করছে না। উত্তরটি যদি আপনার ক্ষতি করে তবে নির্দ্বিধায় দ্বিধা বোধ করুন, কারণ আমি শুধু যত্ন নিই না।
মোটিইনেটর

gশুধুমাত্র একবার ব্যবহার করা হয়, যাতে আপনি এটি অন্তর্ভুক্ত করে 7 টি অক্ষর সংরক্ষণ করতে পারেন।
টিমউই

1
প্রকৃতপক্ষে bশুধুমাত্র একবার ব্যবহার করা হয়, তাই আপনি এটিও ইনলাইন করতে পারেন। এছাড়াও, আপনি যদি পূর্ণসংখ্যের অ্যারেতে পরিবর্তন করেন বা আপনি যদি আসল অক্ষর # 127 (যা অক্ষম, তবে অনুমতিযোগ্য) তে পরিবর্তন করেন তবে আপনি অনেকগুলি অক্ষর সংরক্ষণ করতে পারেন । এখনও কাজ করবেন, কারণ থেকে একটি অন্তর্নিহিত রূপান্তর আছে করার । "{H=mNgwI\x7fo"\x7f>>charint
টিমউই

এছাড়াও, .ToCharArray()এবং .ToArray()উভয়ই অপ্রয়োজনীয়, আপনি কেবল এগুলি সরাতে পারেন :)
টিমউই

2

জাভা সমাধান: 585 570 অক্ষর

আমি মনে করি না যে আমি জাভাতে আরও কোনও গল্ফ করার চেষ্টা করব ...

import java.util.*;
public class CG997{public static void main(String[]args){
short[][]lets=new short[][]{{0,1,3,2,0,4,2,1,4},{0,0,3,0,0,4,0,0,4},{0,1,3,0,1,
4,2,1,3},{0,1,3,0,1,4,0,1,4},{0,0,3,2,1,4,0,0,4},{0,1,3,2,1,3,0,1,4},{0,1,3,2,1
,3,2,1,4},{0,1,3,0,0,4,0,0,4},{0,1,3,2,1,4,2,1,4},{0,1,3,2,1,4,0,0,4}};
String[]syms=new String[]{" ","_","|","  ","| "};
String s=new Scanner(System.in).nextLine();
for(int o=0;o<3;o++){for(char c:s.toCharArray()){for(int i =0;i<3;i++)
System.out.print(syms[lets[Short.parseShort(c+"")][i+o*3]]);
}System.out.println();}}}

আপনার জাভা সংস্করণটি আমার চেয়ে বেশ ভাল / খাটো :) বিটিডাব্লু! ... ডিজিটাল ক্লক উপস্থাপনায় 6 এর উপরে একটি ক্যাপ (_) আছে কি না? আপনার আউটপুট পরে আমি বিভ্রান্ত হয়ে পড়েছি!
আমান জিক ভার্মা

আমার পিছনে কফি প্রস্তুতকারকটি পরীক্ষা করে, 6 এর একটি ক্যাপ থাকা উচিত। আমি আমার সমাধান আপডেট করব।
মিচ

2

পাইথন, 218 180 176

b=map(int,raw_input());a=map(int,bin(914290166014670372457936330)[2:]);c=' |_';p=lambda k:''.join(c[a[9*n+k]]+c[2*a[9*n+1+k]]+c[a[9*n+2+k]]for n in b)+'\n';print p(6)+p(0)+p(3)

লাইন বিরতি সহ:

b=map(int,raw_input())
a=map(int,bin(914290166014670372457936330)[2:])
p=lambda k:''.join(' |'[a[9*n+k]]+' _'[a[9*n+1+k]]+' |'[a[9*n+2+k]]for n in b)+'\n'
print p(6)+p(0)+p(3)

2

বাশ, 11 টি অক্ষর

toilet "$i"

হ্যাঁ আমি জানি, আমি প্রতারণা করছি।

আপনার টয়লেট ইনস্টল করা দরকার।


1
এবং ডিফল্ট ফন্টটিতে 7 সেগমেন্ট ডিসপ্লে নম্বর সহ একটিতে সেট করুন। figletকাজ করবে।
রব

2

জাভা, 2,095

public class DigitalNumber {
    public static void main(String args[]){
        char[][] panel = new char[3][120]; //A 20 digit panel!
        int digXIndex = 0;int digYIndex = 0;
        for (int i=0;i<args[0].length(); i++){
            int dig=Integer.parseInt(""+args[0].charAt(i));
            panel[digXIndex][digYIndex]=32;   
            digYIndex++;
            if (dig!=1 && dig!=4)
                panel[digXIndex][digYIndex]='_';  
            else
                panel[digXIndex][digYIndex]=32;
            digYIndex++;
                panel[digXIndex][digYIndex]=32; 
            digYIndex=3*i;
            digXIndex++;
            if (dig!=1 && dig!=2 && dig!=3 && dig!=7)
                panel[digXIndex][digYIndex]='|';    
            else
                panel[digXIndex][digYIndex]=32;
            digYIndex++;
            if (dig!=1 && dig!=0 && dig!=7)
                panel[digXIndex][digYIndex]='_';    
            else
                panel[digXIndex][digYIndex]=32;
            digYIndex++;
            if (dig!=6 && dig!=5)
                panel[digXIndex][digYIndex]='|';  
            else
                panel[digXIndex][digYIndex]=32;
            digYIndex=3*i;
            digXIndex++;
            if (dig!=6 && dig!=8 && dig!=2 && dig!=0)
                panel[digXIndex][digYIndex]=32;  
            else
                panel[digXIndex][digYIndex]='|';
            digYIndex++;
            if (dig!=7 && dig!=4 && dig!=1)
                panel[digXIndex][digYIndex]='_';  
            else
                panel[digXIndex][digYIndex]=32;
            digYIndex++;
            if (dig!=2)
                panel[digXIndex][digYIndex]='|';  
            else
                panel[digXIndex][digYIndex]=32;
            digXIndex=0;
            digYIndex+=(i*3)+1;
        }       
        for (int i=0; i<3; i++){
            for (int j=0; j<120; j++)
                if (panel[i][j]!=0)
                System.out.print((char)(panel[i][j]));
                else
                    System.out.print("");
            System.out.println();
        }   
    }
}

নমুনা I / O

java DigitalNumber 98765432109876543210
     _  _  _  _  _     _  _     _  _  _  _  _  _     _  _     _ 
    |_||_|  ||_ |_ |_| _| _|  || ||_||_|  ||_ |_ |_| _| _|  || |
     _||_|  ||_| _|  | _||_   ||_| _||_|  ||_| _|  | _||_   ||_|

5
আমার জাভা ঘৃণা শুরু করা উচিত :)
আমান জেক ভার্মা

1
জাভা অনেক কিছুর জন্য দুর্দান্ত, তবে সংক্ষিপ্ত কোডগুলির মধ্যে একটি নয়
জোনাথন এম ডেভিস

2
ভাল, এই কোড এমনকি গল্ফ হয় না। এটি উপায় ছোট হতে পারে।
জোয়

আমি আপনার কোডটি কিছুটা গল্ফ করেছি;)
কেনার্ড

1

ডি: 295 অক্ষর

import std.stdio;void main(string[]a){string[3]o;foreach(c;a[1]){int n=cast(int)(c)-48;auto e=" ";o[0]~=n!=1&&n!=4?" _ ":"   ";o[1]~=!n||n>3&&n!=7?"|":e;o[1]~=n>1&&n!=7?"_":e;o[1]~=n<5||n>6?"|":e;o[2]~=!(n&1)&&n!=4?"|":e;o[2]~=!n||n>1&&n!=4&&n!=7?"_":e;o[2]~=n!=2?"|":e;}foreach(l;o)writeln(l);}

আরও সুস্পষ্টভাবে:

import std.stdio;

void main(string[] a)
{
    string[3] o;

    foreach(c; a[1])
    {
        int n = cast(int)(c) - 48;
        auto e = " ";

        o[0] ~= n != 1 && n != 4 ? " _ " : "   ";

        o[1] ~= !n || n > 3 && n != 7 ? "|" : e;
        o[1] ~= n > 1 && n != 7 ? "_" : e;
        o[1] ~= n < 5 || n > 6 ? "|" : e;

        o[2] ~= !(n&1) && n != 4 ? "|" : e;
        o[2] ~= !n || n > 1 && n != 4 && n != 7 ? "_" : e;
        o[2] ~= n != 2 ? "|" : e;
    }

    foreach(l; o)
        writeln(l);
}

1

ওকামল, 268

let t=function|'1'|'4'->"   "|_->" _ "let m=function|'0'->"| |"|'1'|'7'->"  |"|'2'|'3'->" _|"|_->"|_|"|'5'|'6'->"|_ "let b=function|'0'|'8'->"|_|"|'1'|'4'|'7'->"  |"|'2'->"|_ "|_->" _|"let f s=let g h=String.iter(fun c->print_string(h c))s;print_newline()ing t;g m;g b

পাঠযোগ্য সংস্করণ

let t = function
  | '1'
  | '4' -> "   "
  | _ -> " _ "
let m = function
  | '0' -> "| |"
  | '1'
  | '7' -> "  |"
  | '2'
  | '3' -> " _|"
  | _ -> "|_|"
  | '5'
  | '6' -> "|_ "
let b = function
  | '0'
  | '8' -> "|_|"
  | '1'
  | '4'
  | '7' -> "  |"
  | '2' -> "|_ "
  | _ -> " _|"
let f s =
  let g h =
    String.iter (fun c -> print_string (h c)) s;
    print_newline () in
  g t;
  g m;
  g b

1

পার্ল (182 180)

#!perl -l
$_=<<7;
 _     _  _     _  _  _  _  _ 
| |  | _| _||_||_ |_   ||_||_|
|_|  ||_  _|  | _||_|  ||_| _|
7
@b=map{[/(...)/g]}split/\n/;@d=split//,<>;for$p(@b){print map$p->[$_],@d}

এসটিডিআইএন থেকে পড়ে।

$ perl 7segment.pl 
1234567890987654321
    _  _     _  _  _  _  _  _  _  _  _  _  _     _  _     _ 
  | _| _||_||_ |_   ||_||_|| ||_||_|  ||_ |_ |_| _| _|  || |
  ||_  _|  | _||_|  ||_| _||_| _||_|  ||_| _|  | _||_   ||_|

1

প্রস্তুতকারী Ghostscript (270) (248) (214)

সম্পাদনা করুন: আরও বিকল্প অঙ্কগুলির মধ্যে স্থান সরানো।

সম্পাদনা করুন: আরও বিকল্প মেইন লুপটি এখন দেখে মনে হচ্ছে এটি কী করে!

/F{forall}def[48<~HUp;::1ncBInp~>{1 index 1 add}F
pop/*{dup
2 idiv exch
2 mod
1 eq}/P{print}/#{( )P}/?{ifelse
P}/O{{( )}?}/|{*{(|)}O}/_{*{(_)}O}>>begin[[[[ARGUMENTS{{load
# _ #}F()=]2{{| _ |}F()=]}repeat]pop[[[[}F

ভূস্ট্রিপ্টের আর্গুমেন্ট-প্রসেসিং বৈশিষ্ট্যটি ব্যবহার করে: সাথে অনুরোধ করুন gs -dNODISPLAY -- digit.ps 012 345 6789


1

দেলফি || 453 (ফর্ম্যাট সহ 568)

এমনকি জয়ের মতো পর্যাপ্ত পরিমাণেও নয় তবে এটি মজাদার ^। ^ ^

const asc: array[0..9] of array[0..2] of string = ((' _ ','| |','|_|'),('   ','  |','  |'),(' _ ',' _|','|_ '),(' _ ',' _|',' _|'),('   ','|_|','  |'),(' _ ','|_ ',' _|'),(' _ ','|_ ','|_|'),(' _ ','  |','  |'),(' _ ','|_|','|_|'),(' _ ','|_|',' _|'));var s,l:string;x,i:integer;begin Readln(s);s:=StringReplace(s,' ','',[rfReplaceAll]);for I := 0 to 2 do begin l:='';for x := 1 to length(s) do l := l + asc[StrToInt(s[x])][i];writeln(l);end;readln;end.  

বিন্যাস সহ

const
asc: array[0..9] of array[0..2] of string = (
  (' _ ','| |','|_|'),
  ('   ','  |','  |'),
  (' _ ',' _|','|_ '),
  (' _ ',' _|',' _|'),
  ('   ','|_|','  |'),
  (' _ ','|_ ',' _|'),
  (' _ ','|_ ','|_|'),
  (' _ ','  |','  |'),
  (' _ ','|_|','|_|'),
  (' _ ','|_|',' _|'));
var
s,l:string;
x,i:integer;
begin
    Readln(s);
    s:=StringReplace(s,' ','',[rfReplaceAll]);
    for I := 0 to 2 do
    begin
      l:='';
      for x := 1 to length(s) do
        l := l + asc[StrToInt(s[x])][i];
      writeln(l);
    end;
    readln

শেষ.


1

পিএইচপি, 140 136 133 131 129 128 বাইট

আমি বর্ধিত এসকিআইয়ের সাথে আরও 5 7 বাঁচাতে পারলাম : প্রত্যেকটির জন্য একটি "| _"এবং লাইনব্রেক, তিনটির জন্য ~"z/]{4lno~|"(বিটওয়াইজ অবহেলা সবকিছুকে প্রসারিত এসকিআই অক্ষরগুলিতে পরিণত করবে = কোনও বিশেষ অক্ষর নেই, এবং পিএইচপি সেখানে উদ্ধৃতিগুলির প্রয়োজন নেই), এর জন্য দুটি -1(এটি) কেবলমাত্র মানকটিকে মানক হিসাবে রাখার জন্য)। তবে পঠনযোগ্যতা এবং সামঞ্জস্যের জন্য, আমি স্ট্যান্ডার্ড এসকিআইয়ের সাথেই থাকি।

for(;""<$c=$argv[1][$i++];)for($n=753754680;$n>>=3;)$r[$p++%3].="| _"[ord(~"z/]{4lno~|"[$c])-1>>$n%8&1?:$n&2];echo join("
",$r);

বিটম্যাপ

  • LEDs নিন _, |_|, |_|বিট হিসাবে -6-, 024,135 (বিআইটি সংখ্যা & 2 উল্লম্ব এলইডি জন্য 0)
  • 0..9 সংখ্যাগুলির জন্য বিটম্যাপগুলি তৈরি করুন: [123,48,94,124,53,109,111,112,127,125]
  • এগুলি সমস্ত মুদ্রণযোগ্য আসকি কোডগুলি -> তৈরি করতে 1 দ্বারা হ্রাস করুন "z/]{4lno~|"
  • তুচ্ছ -> ~"z/]{4lno~|"(চরিত্র নির্বাচনের ক্ষেত্রে ত্রৈমাসিক শর্টহ্যান্ড অনুমতি দেয়)

টেমপ্লেট

  • ব্যবহার 7ফাঁকা স্থানের জন্য -> 767, 024,135
  • সারি পরিবর্তে কলাম পূনঃগোষ্টীবদ্ধ -> 701, 623, 745(উপস্থাপনা $p=0অপ্রচলিত)
  • বিপরীত -> 547326107 (মানচিত্রটি ডান থেকে বামে পড়ুন; পাটিগণিতের লুপিংকে অনুমতি দেয়)
  • শূন্য যোগ করুন -> 5473261070 (লুপ মাথায় পরীক্ষার সাথে শিফট একত্রিত করতে অনুমতি দেয়)
  • অষ্টাল পড়ুন, দশমিক রূপান্তর করুন -> 753754680(দুটি বাইট সংক্ষিপ্ত: একটি অঙ্ক এবং উপসর্গ)

ভাঙ্গন

for(;""<$c=$argv[1][$i++];) // loop through input characters
    for($n=753754680;$n>>=3;)   // loop through template
        $r[$p++%3].="| _"[          // append character to row $p%3:
            ord(~"z/]{4lno~|"[$c])-1// decode bitmap
                >>$n%8&1            // test bit $n%8 (always 1 for bit 7)
            ?                       // if set: 1 (space)
            :$n&2                   // else: 2 (underscore) for bits 2,3,6; 0 (pipe) else
        ];
echo join("\n",$r);         // print result

হেক্সাডেসিমালের জন্য +16 বাইট:ord(~"z/]{4lno~|v.J=NF"[hexdec($c)])-1
তিতাস

1

জাভা 8, 280 বাইট

interface M{static void main(String[]a){String x="",y=x,z=x;for(int c:a[0].getBytes()){c-=48;x+=" "+(c==4|c==1?" ":"_")+" ";y+=(c==7|c>0&c<4?" ":"|")+(c==7|c<2?" ":"_")+(c>4&c<7?" ":"|");z+=(c%2<1&c!=4?"|":" ")+(c%3==1?" ":"_")+(c==2?" ":"|");}System.out.print(x+"\n"+y+"\n"+z);}}

ব্যাখ্যা:

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

interface M{                     // Class
  static void main(String[]a){   //  Mandatory main-method
    String x="",                 //   String for row 1, starting empty
           y=x,                  //   String for row 2, starting empty
           z=x;                  //   String for row 3, starting empty
    for(int c:a[0].getBytes()){  //   Loop over the bytes of the input
      c-=48;                     //    Convert the byte to integer
      x+=                        //    Append to row 1:
         " "                     //     a space
         +(c==4|c==1?            //     +If the digit is a 1 or 4:
            " "                  //       Append a space
           :                     //      Else:
            "_")                 //       Append an underscore
         +" ";                   //     + another space
      y+=                        //    Append to row 2:
         (c==7|c>0&c<4?          //      If the digit is 1, 2, 3, or 7:
           " "                   //       Append a space
          :                      //      Else:
           "|")                  //       Append a pipe
         +(c==7|c<2?             //     +If the digit is 0, 1, or 7:
            " "                  //       Append a space
           :                     //      Else:
            "_")                 //       Append an underscore
         +(c>4&c<7?              //     +If the digit is 5 or 6:
            " "                  //       Append a space
           :                     //      Else:
            "|");                //       Append a pipe
      z+=                        //    Append to row 3:
         (c%2<1&c!=4?            //      If the digit is 0, 2, 6 or 8:
           "|"                   //       Append a pipe
          :                      //      Else:
           " ")                  //       Append a space
          +(c%3==1?              //     +If the digit is 1, 4, or 7:
             " "                 //       Append a space
            :                    //      Else:
             "_")                //       Append a pipe
          +(c==2?                //     +If the digit is 2:
             " "                 //       Append a space
            :                    //      Else:
             "|");               //       Append a pipe
    }                            //   End of loop
    System.out.print(x+"\n"+y+"\n"+z);
                                 //   Print the three rows
  }                              //  End of main-method
}                                // End of class

ফাংশন হিসাবে এটি 218 বাইট পরিবর্তে হবে।


0

পাইথন, 227 টি অক্ষর

a="   ";b=" _ ";c="|_|";d="| |";e="|  ";f="  |";g="|_ ";h=" _|"
z=[[b,d,c],[a,f,f],[b,h,g],[b,h,h],[a,c,f],[b,g,h],[b,g,c],[b,f,f],[b,c,c],[b,c,h]]
x=map(int,raw_input())
for i in range(3):
 for j in x:
  print z[j][i],
 print

সরল ও সোজা।


0

পার্ল, 145 টি অক্ষর

$i=<>;for$s(6,3,0){for($i=~/./g){$v=(175,9,158,155,57,179,183,137,191,187)[$_]>>$s;$o.=($v&4?'|':$").($v&2?'_':$").($v&1?'|':$")}$o.="
"}print$o

Ungolfed:

# Read STDIN
$i = <>;
# Amount to bit shift later
for $s (6,3,0)
{
  # For each character C from STDIN
  for ($i =~ /./g)
  {
    # Get the Cth array index, bit shifted right by $s
    $v = (175, 9, 158, 155, 57, 179, 183, 137, 191, 187)[$_]>>$s;
    # Concatenate each character if the bitwise masked value says it should be there
    $o .= ($v & 4 ? '|' : $") .
          ($v & 2 ? '_' : $") .
          ($v & 1 ? '|' : $");
  }
  # Concatenate a newline
  $o .= "
";
}
# Print the result
print $o;

0

পাইথন ৩.৪.৩ - 1514 858 বাইট

এটি সমাধান করার প্রলোভন সাইন আপ করে উত্তর না দেওয়া খুব ভাল ছিল = পি

আমি পাইথনে কিছুটা নতুন, তাই আমি আমার প্রোগ্রামটি সুন্দর এবং ঝরঝরে (বা কমপক্ষে আমি করেছি) ফর্ম্যাট করেছি। উন্নতি ব্যাপকভাবে প্রশংসা করা হয়!

import sys;l1,l2,l3,l4,l5="";num=input()
for c in num:
    if c=="1":
        l1+=" oo  ";l2+="  o  ";l3+="  o  ";l4+="  o  ";l5+="oooo "
    if c=="2":
        l1+="oooo ";l2+="   o ";l3+="oooo ";l4+="o    ";l5+="oooo "
    if c=="3":
        l1+="oooo ";l2+="   o ";l3+=" ooo ";l4+="   o ";l5+="oooo "
    if c=="4":
        l1+="o  o ";l2+="o  o ";l3+="oooo ";l4+="   o ";l5+="   o "
    if c=="5":
        l1+="oooo ";l2+="o    ";l3+="oooo ";l4+="   o ";l5+="oooo "
    if c=="6":
        l1+="oooo ";l2+="o    ";l3+="oooo ";l4+="o  o ";l5+="oooo "
    if c=="7":
        l1+="oooo ";l2+="   o ";l3+="   o ";l4+="   o ";l5+="   o "
    if c=="8":
        l1+="oooo ";l2+="o  o ";l3+="oooo ";l4+="o  o ";l5+="oooo "
    if c=="9":
        l1+="oooo ";l2+="o  o ";l3+="oooo ";l4+="   o ";l5+="oooo "
    if c=="0":
        l1+="oooo ";l2+="o  o ";l3+="o  o ";l4+="o  o ";l5+="oooo "
print(l1+"\n"+l2+"\n"+l3+"\n"+l4+"\n"+l5)

সম্পাদনা: সংক্ষিপ্ত পরিবর্তনশীল নাম, ব্যবহৃত; সংক্ষিপ্ত করতে, আউটপুট সংখ্যার শেষে কেবল একটি স্থান, একবারে সংজ্ঞাযুক্ত ভেরিয়েবল।

নতুন লাইনগুলি 2 বাইট (সিআরএলএফ) এবং আমি 4 স্পেসের পরিবর্তে ট্যাব ব্যবহার করেছি।


2
প্রোগ্রামিং ধাঁধা এবং কোড গল্ফ স্বাগতম! যেহেতু এটি একটি কোড গল্ফ চ্যালেঞ্জ, আপনি নিজের কোডটি যতটা সম্ভব সংক্ষিপ্ত করতে চাইবেন। এই টিপসগুলি গল্ফ করার জন্য সহায়ক হতে পারে।
অ্যালেক্স এ।

"আমি 4 টি জায়গার পরিবর্তে ট্যাব ব্যবহার করেছি " আমি বিভ্রান্ত। আপনি যেভাবেই ট্যাব ব্যবহার করছেন না? ;)
মনিকার সাথে লাইটনেস রেস

0

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

?INPUT N$DIM A[14]COPY A,@A@A
DATA 1,0,0,1,3,1,1,3,0,4,3,4,1,6FOR D=0 TO LEN(N$)-1X=ASC("w$]m.k{%\o"[VAL(N$[D])])FOR I=0TO 6T=I*2IF X<<31THEN GBOX A[T]+D*5,A[T+1],A[T]+D*5+!(I MOD 3),A[T+1]+!!(I MOD 3)
X=X/2NEXT
NEXT

পাঠ্যের পরিবর্তে গ্রাফিক্স ব্যবহার করা কারণ এটি সম্ভবত সংক্ষিপ্ত।

ব্যাখ্যা:

PRINT 'so the input and output don't overlap
INPUT NUMBER$ 'get number
DIM PTS[7*2] 'locations of segments
COPY PTS,@PTDATA 'copy data into array
@PTDATA
DATA 1,0,0,1,3,1,1,3,0,4,3,4,1,6 'stored as x,y,x,y,...
FOR DIGIT=0 TO LEN(NUMBER$)-1
 NUM=ASC("w$]m.k{%\o"[VAL(NUMBER$[DIGIT])]) 'get digit data. That data string doesn't have any non-ASCII characters, except \ which is 127 in SB.
 FOR I=0 TO 7-1 'draw each segment
  T=I*2 'position of point in array
  IF X AND 1 THEN GLINE PTS[T]+DIGIT*5,PTS[T+1],PTS[T]+DIGIT*5+!(I MOD 3),PTS[T+1]+!!(I MOD 3) 'draw segment. I MOD 3 determines whether it's horizontal or vertical.
  X=X>>1 'shift to next bit
 NEXT
NEXT

0

সি ++, 230 229 225 223 218 207 204 198 বাইট

#import<iostream>
#define d for(auto
std::string v[3],t,g="|_| =2$0^262\'032;2$2?272";main(){std::cin>>t;d i:t)d j:{0,1,2})d k:{0,1,2})v[k]+=g[g[i*2-92+!k]>>j+k/2*3&1?j:3];d j:v)std::cout<<j<<'\n';}

স্টিডিন এবং আউটপুট থেকে স্টডআউট পর্যন্ত পড়ে।

ব্যাখ্যা:

#import<iostream>                // string inside

std::string v[3], t, g="|_| "    // symbol on different horizontal position
      "=2$0^262\'032;2$2?272";   // space(0) or not(1) for each number and position
                                 // binary representation, last 6 bits is used
                                 // even positions are for row 1, 2; odds are for row 0

main() {
    std::cin>>t;                 // input
    for (auto i:t)               // for each character
        for (auto j:{0,1,2})     // for each horizontal position
            for (auto k:{0,1,2}) // for each vertical position
                v[k]+=g[         // use first four chars only
                    g[i*2-92     // i*2-96 is number*2, +4 to skip first four
                        +!k]     // row 0 uses another character
                    >>j+k/2*3    // (k==2?3:0)+j, the expected bit
                    &1           // extract the bit
                    ?j:3         // space or not space
                ];

    for (auto j:v) std::cout<<j<<'\n'; // output
}

0

পাওয়ারশেল, 114 বাইট

param($a)6,3,0|%{$l=$_
-join($a|% t*y|%{('   0 _ 0 _|0|_ 0| |0  |0|_|'-split0)[(+('f-SR5Z^mvr'["$_"])-shr$l)%8]})}

পরীক্ষার স্ক্রিপ্ট:

$f = {

param($a)6,3,0|%{$l=$_
-join($a|% t*y|%{('   0 _ 0 _|0|_ 0| |0  |0|_|'-split0)[(+('f-SR5Z^mvr'["$_"])-shr$l)%8]})}

}

&$f "1234567890"
&$f "81"

আউটপুট:

    _  _     _  _  _  _  _  _
  | _| _||_||_ |_   ||_||_|| |
  ||_  _|  | _||_|  ||_| _||_|
 _
|_|  |
|_|  |

মূল ধারণা:

প্রতিটি মান ডিজিটাল ক্লক শৈলীতে 3 টি লাইন থাকে contains তদুপরি, প্রথম লাইনে কেবল 2 টি বিকল্প রয়েছে। মোট 6 টি বিকল্প। সুতরাং, 7 বিট প্রতিটি অঙ্কের এনকোড করার জন্য যথেষ্ট।

line str=@('   ', ' _ ', ' _|', '|_ ', '| |', '  |', '|_|')

#    line str    binary       dec    ASCII
-    --------    ---------    ---    -----
0 -> 1 
     4 
     6        -> 1 100 110 -> 102 -> 'f'

1 -> 0
     5
     5        -> 0 101 101 ->  45 -> '-'

...

8 -> 1
     6
     6        -> 1 110 110 -> 118 -> 'v'

9 -> 1
     6
     2        -> 1 110 010 -> 114 -> 'r'

সুতরাং, স্ট্রিংটি f-SR5Z^mvrসমস্ত স্ট্যান্ডার্ড ডিজিটাল ক্লক স্টাইল সংখ্যার জন্য সমস্ত বিভাগকে এনকোড করে।

দ্রষ্টব্য: ক্রমটির আদেশটি line strবিশেষভাবে নির্বাচন করা হয়েছিল যাতে সমস্ত কোড ব্যবধানে থাকে 32..126

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