লাইন অঙ্কন অক্ষর ব্যবহার করে একটি সুডোকু বোর্ড আঁকুন


20

এটি কোড গল্ফ। এই চ্যালেঞ্জের জন্য, আমি একটি পদ্ধতি গ্রহণ করব (আপনার একটি সম্পূর্ণ প্রোগ্রামের প্রয়োজন নেই), তবে পদ্ধতিটির স্বাক্ষরটি বাইট গণনা অনুসারে গণনা করে এবং আমি সম্পূর্ণ স্বাক্ষর (লামদ্বা নয়) দেখতে চাই। পদ্ধতির জন্য ইনপুটটি 81 টি উপাদান সহ একটি পূর্ণসংখ্যা অ্যারে। পদ্ধতি থেকে আউটপুট / রিটার্ন মান হ'ল একটি স্ট্রিং যা অ্য্যাসিকে সুডোকু বোর্ড হিসাবে অ্যারের প্রতিনিধিত্ব করে।

যদি আপনি কোনও গৌরবময় ভাষা বা এমন কোনও কিছু ব্যবহার করেন যা একেবারেই পদ্ধতিতে না থাকে তবে আপনি মানিয়ে নিতে পারেন, তবে ভাষাটি যদি একেবারেই সমর্থন করে তবে আমি দেখতে চাই যে কোনও কিছু আসলে "সত্যিকারের" বর্ণাolf্য প্রোগ্রামে যুক্ত হতে পারে, এমনকি যদি পদ্ধতি শরীর নিজেই সঙ্গে কাজ করার জন্য একটি ব্যথা হয়। প্রয়োজনীয়তাটি জেলি বা 05 এবি 1 ই এর মতো ভাষাগুলিকে ব্লক করা নয়, জাভা-র মতো ভাষার পক্ষে এমন কিছু তৈরি করা সহজতর করা যা এই প্ল্যাটফর্মটির জন্য অর্থ তৈরি করে।

ইনপুটটির জন্য, পূর্ণসংখ্যা মানগুলির 1-9 এর সুস্পষ্ট অর্থ হওয়া উচিত। একটি 0 সর্বদা ফাঁকা ঘর হিসাবে ব্যাখ্যা করা উচিত। আপনি 1-9 রেঞ্জের বাইরে অন্য যে কোনও কিছুই ফাঁকা ঘর হিসাবে ব্যাখ্যা করতে পারেন, তবে এটি প্রয়োজন হয় না। অ্যারে থেকে ধাঁধাতে অবস্থান নির্ধারণ শীর্ষ বাম থেকে শুরু হয় এবং পরের সারিতে যাওয়ার আগে বাম থেকে ডানে প্রতিটি সারি পূরণ করে।

বাক্সগুলির জন্য, আমি বাইরের চারপাশে এবং প্রতিটি 3x3 অঞ্চলের মধ্যে ডাবল লাইন এবং অন্যান্য ঘরগুলির মধ্যে একক লাইন চাই। এগুলি লাইন অঙ্কন অক্ষরগুলির সাথে আঁকতে হবে (যদি আপনার আই / ও ফর্ম্যাটটি অক্ষরের অনুক্রমের পরিবর্তে বাইটের ক্রম হিসাবে স্ট্রিংগুলি উপস্থাপন করে তবে আপনাকে সেগুলি ইউটিএফ -8 বা কোডপেজ 347 এর মতো একটি সুপরিচিত এনকোডিংয়ে উপস্থাপন করা উচিত)।

এই চ্যালেঞ্জের জন্য, আমি আপনাকে সুডোকু ধাঁধা তৈরি করতে বলছি না । এটি ফাংশনের ইনপুট। আমি আপনাকে ধাঁধা সমাধান করতে বলছি না । আমি আপনাকে যা দিচ্ছি তা "আঁকতে" একটি স্ট্রিং তৈরি করতে বলছি (যতটা সম্ভব কম বাইটে)।

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

অ্যারের মানসমূহ:

{ 8, 5, 0, 0, 0, 2, 4, 0, 0, 7, 2, 0, 0, 0, 0, 0, 0, 9, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 2, 3, 0, 5, 0, 0, 0, 9, 0, 0 ,0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 7, 0, 0, 1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6, 0, 4, 0}

মানগুলি আপনার ভাষার জন্য প্রাকৃতিক যেকোন প্রক্রিয়াটি ব্যবহার করতে পারে: int [], অ্যারেলিস্ট, সিক্যুয়েন্স, টিপল, অঙ্কের স্ট্রিং, যাই হোক না কেন, যতক্ষণ না প্রতিটি কক্ষের ইনপুটটিতে আপনার মান থাকে (শুধুমাত্র জনবহুল কক্ষের অবস্থানের জন্য কোনও মানচিত্র থাকে না) )। মনে রাখবেন যে ইনপুট সরবরাহ করা হয়েছে ... এটি আপনার বাইট গণনার অংশ নয়। তবে ইনপুটটি কোনও সুডোকু ধাঁধা উপস্থাপন করতে পারে এবং ধাঁধাটির কোনও বৈধ সমাধান নাও হতে পারে । আপনি ধাঁধাটি মুদ্রণযোগ্য বলে ধরে নিতে পারেন । উদাহরণস্বরূপ, আপনি 82 উপাদানগুলির সাথে কিছু পাবেন না।

আপনি একটি যুক্তিসঙ্গত স্থির-প্রস্থের ফন্টও ধরে নিতে পারেন।

সংশ্লিষ্ট আউটপুট:

╔═══╤═══╤═══╦═══╤═══╤═══╦═══╤═══╤═══╗
║ 8 │ 5 │ ║ │ │ 2 ║ 4 │ │ ║ ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ 7 │ 2 │ ║ │ ║ │ │ 9 ║ ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ │ │ 4 ║ │ │ │ │ │ ║ ║
╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣
║ │ │ ║ 1 │ │ 7 ║ │ │ 2 ║ ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ 3 │ │ 5 ║ │ │ ║ 9 │ │ ║ ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
│ │ 4 │ ║ │ ║ │ │ │ ║ ║
╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣
│ │ │ ║ │ 8 │ ║ │ 7 │ ║ ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
│ │ 1 │ 7 ║ │ │ ║ │ │ ║ ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
│ │ ║ │ 3 │ 6 ║ │ 4 │ ║ ║
╚═══╧═══╧═══╩═══╧═══╧═══╩═══╧═══╧═══╝

4
আপনি কি পদ্ধতি অংশ সম্পর্কে নিশ্চিত? এটি প্রচুর ভাষার (অর্থাত্ পদ্ধতি ছাড়াই ভাষা) বোঝায় না।
সাইয়েস

1
যে ভাষাগুলির পদ্ধতি নেই সেগুলির জন্য, আপনি খাপ খাইয়ে নিতে পারেন। তবে যদি তারা তা করে থাকে তবে আমি এমন কিছু সন্ধান করছি যা একটি "বাস্তব" প্রোগ্রামে প্লাগ করতে আসলে কার্যকর হতে পারে। আমি এটি প্রশ্নের সাথে যুক্ত করব।
জোয়েল কোহোর্ন

2
ল্যাম্বডাস না দেওয়ার কারণ কী? এগুলি অবশ্যই একটি "বাস্তব" প্রোগ্রামে প্লাগ করা যেতে পারে ঠিক তেমনি নামকৃত কার্য / পদ্ধতিগুলি
জুলিয়ান ওল্ফ

2
নিতপিকি কিন্তু গুরুত্বপূর্ণ: "এএসসিআইআই বক্স অঙ্কন চরিত্র" বলে কোনও জিনিস নেই। এএসসিআইআই 0 থেকে 127 কোডগুলিকে কভার করে, এর মধ্যে কোনওটিই বক্স অঙ্কনের অক্ষর নয়। সাম্প্রতিক সময়ে, ইউনিকোড স্ট্যান্ডার্ড, তবে এটিতে বেশ কয়েকটি পৃথক এনকোডিং রয়েছে: ইউটিএফ -8, ইউটিএফ -16 ইত্যাদি, এগুলি সবই বাক্সড্রাইং চরিত্রে 1 বাইটের বেশি ব্যবহার করে। পুরানো এনকোডিংগুলি যেমন কোডপেজ 437 একক-বাইট বক্স অঙ্কন অক্ষরকে সমর্থন করে। আপনি যখন ASCII ব্যাপ্তির বাইরে অক্ষর ব্যবহার করেন, আপনার কোন এনকোডিংগুলি বৈধ তা নির্দিষ্ট করা উচিত। en.wikedia.org/wiki/Box-drawing_character en.wikedia.org/wiki/Unicode
স্তর নদী সেন্ট

2
অ-অবজেক্ট-ভিত্তিক ভাষাগুলিতে কোনও পদ্ধতির নিকটতম সম্ভাব্য সমতুল্য পেতে "পদ্ধতি" সম্ভবত "নামকরণের ফাংশন" হওয়া উচিত। (উদাহরণস্বরূপ, একটি বহুল ব্যবহৃত ভাষা সি, এর কোন পদ্ধতি নেই তবে এর নামকরণের ফাংশন রয়েছে)) বেশিরভাগ ভাষায় আমি জানি যেগুলির পদ্ধতি রয়েছে, সেগুলি ভাষাটির একটি নির্দিষ্ট ফাংশনের সমতুল্য। (আমি যে সর্বাধিক পরিচিত ব্যতিক্রমটি সম্পর্কে অবগত রয়েছি সে হ'ল সি ++, যেখানে কোনও পদ্ধতি ব্যবহারের চেয়ে নামকরণের ফাংশন ব্যবহার করা এই কাজটির পক্ষে অনেক বেশি প্রশংসনীয় হবে, কারণ আপনি পদ্ধতিটি কী ধরণের সাথে যুক্ত করবেন তা সত্যিই অস্পষ্ট as ।)

উত্তর:


9

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

যারা এটিকে গল্ফ করতে সহায়তা করেছেন তাদের ধন্যবাদ।

এনক্রিপশন মধ্যে এনক্রিপশন ...

q=lambda x,y:x+y+x+y+x
r=lambda a,b,c,d,e:a+q(q(b*3,c),d)+e+"\n"
print(((r(*"╔═╤╦╗")+q(q("║ %d │ %d │ %d "*3+"║\n",r(*"╟─┼╫╢")),r(*"╠═╪╬╣"))+r(*"╚═╧╩╝"))%eval(input())).replace(*"0 "))

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

গল্ফ করা।


আমি কীভাবে লক্ষ্য করিনি ... এটি পাইথন 2 ব্যবহারের পুরো কারণের মতো, তবে ধন্যবাদ।
লিকি নুন

1
আসলে আপনি পাইথন 3 ব্যবহার করা আরও ভাল, তারপরে আপনার প্রথম লাইনের প্রয়োজন হবে না।
এরিক আউটগলফার

1
আপনি শেষ লাইনে আরও প্যারেন্সগুলি সরাতে পারেন: টিও
কনর

এফ এর সংজ্ঞা মুছে ফেলুন এবং i সংজ্ঞা হিসাবে i=["╔"+(g+"╦")*2+g+"╗"]+d+2*(["╠"+(e+"╬")*2+e+"╣"]+d)+["╚"+(h+"╩")*2+h+"╝"]4 বাইট সংরক্ষণ করুন
অফিশিয়ালিম

7

সি (জিসিসি) , 398 395 291 বাইট

বিপরীত স্ট্রিংয়ের মাধ্যমে 3 বাইট সংরক্ষণ করা হয়েছে এবং 104 (!) বাইটস লিকি নুনকে ধন্যবাদ জানায়।

#include<locale.h>
#define q(x,y) x y x y x
#define D L"╝"q(q("═══","╧"),"╩")"╚"q(q("\n║"q(q(" & ","│"),"║")"║","\n╢"q(q("───","┼"),"╫")"╟"),"\n╣"q(q("═══","╪"),"╬")"╠")"\n╗"q(q("═══","╤"),"╦")"╔"
i;f(int*t){setlocale(LC_ALL,"");for(i=721;i--;)wprintf(L"%lc",D[i]%19?D[i]:*t++?48+t[-1]:32);}

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

সি (জিসিসি) , 395 বাইট

আমি এটি এখানে রাখব যাতে প্রোগ্রামটি কীভাবে কাজ করে তা আরও স্পষ্ট।

#include<locale.h>
#define A L"\n╢───┼───┼───╫───┼───┼───╫───┼───┼───╟"
#define B L"\n║ & │ & │ & ║ & │ & │ & ║ & │ & │ & ║"
#define C L"\n╣═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╠"
#define E B A B A B
#define D L"╝═══╧═══╧═══╩═══╧═══╧═══╩═══╧═══╧═══╚"E C E C E L"\n╗═══╤═══╤═══╦═══╤═══╤═══╦═══╤═══╤═══╔"
i;f(int*t){setlocale(LC_ALL,"");for(i=721;i--;)wprintf(L"%lc",D[i]%19?D[i]:*t++?48+t[-1]:32);}

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

সিতে ইউনিকোড নিয়ে কাজ করা ... ব্যয়বহুল। একটি হিসাবে ইনপুট লাগেint*লিঙ্কে এবং স্পেসিফিকেশনে প্রদর্শিত ।

আমি দেখতে যাচ্ছি যে আমি স্ট্রিংকে হার্ডকোডিংয়ের পরিবর্তে কিছু নম্বর যাদু ব্যবহার করে বাইটগুলি সংরক্ষণ করতে পারি কিনা।



@ লিকি নুন হু, ধন্যবাদ! এটি টিআইও অনুসারে 291 বাইট
কনমার ও'ব্রায়ান

টিআইও এসবিসিএস ব্যবহার করে গণনা করছে ।
ফাঁস নুন

6

পিএইচপি , 297 বাইট

<?for(;$l<19;$l++)echo$l&1?strtr(vsprintf(str_pad("",67,"║ %d │ %d │ %d "),array_slice($_GET,9*($l/2^0)-9,9)),0," "):str_pad([╔,╟,╠,╚][$b=$l?$l<18?$l%6<1?2:1:3:0],108,strtr("11101110111".[╦,╫,╬,╩][$b],[[╤,═],[┼,─],[╪,═],[╧,═]][$b])).[╗,╢,╣,╝][$b],"
";

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

সম্প্রসারিত

for(;$l<19;$l++)  # loop thrpugh lines
  echo$l&1 # Output
    ?strtr(
        vsprintf(str_pad("",67,"║ %d │ %d │ %d ") # formated string for lines with numbers
        ,array_slice($_GET,9*($l/2^0)-9,9)) # nine items of the input array
      ,0," ") #replace zeros with space
    :str_pad([╔,╟,╠,╚][$b=$l?$l<18?$l%6<1?2:1:3:0] # start character non number lines and switch number four cases
      ,108 # fill too 108 bytes
      ,strtr("11101110111".[╦,╫,╬,╩][$b] # with string 
        ,[[╤,═],[┼,─],[╪,═],[╧,═]][$b]))  #replace ones and zero with the two character in array chosed 
    .[╗,╢,╣,╝][$b] # end row with chosen character
  ,"
    "; # end line with new line

উভয় সংস্করণের জন্য ব্যবহৃত ফাংশন

vspintsf , strtr , str_pad , অ্যারে_স্লাইস , অ্যারে_চঙ্ক

পিএইচপি , 313 বাইট

<?$r=($s=str_pad)(╔,108,($t=strtr)(($p=11101110111).╦,[╤,═])).╗;foreach(array_chunk($_GET,9)as$v)$r.=$t(vsprintf($s("
",68,"║ %d │ %d │ %d "),$v),0," ").(++$k%9?$k%3?$s("
╟",109,$t($p.╫,[┼,─])).╢:$s("
╠",109,$t($p.╬,[╪,═])).╣:"");echo$r.$s("
╚",109,$t($p.╩,[╧,═])).╝;

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


কিভাবে কাজ করে?
সাইয়েস

@ কিয়েস আমি আমার নতুন সংস্করণটির জন্য একটি ব্যাখ্যা যুক্ত করেছি
জার্গ হালসারম্যান

5

টি-এসকিউএল, 445 437 বাইট (381 টি অক্ষরে)

DECLARE @r INT=0,@ NVARCHAR(999)=N'╔=╤=╤=╦=╤=╤=╦=╤=╤=╗P'p:SELECT @+=FORMAT(CAST(SUBSTRING(a,@r*9+1,9)AS INT),N'║ 0 │ 0 │ 0 ║ 0 │ 0 │ 0 ║ 0 │ 0 │ 0 ║P')FROM t
SET @r+=1IF @r=9SET @+=N'╚=╧=╧=╩=╧=╧=╩=╧=╧=╝P'ELSE IF @r%3=0SET @+=N'╠=╪=╪=╬=╪=╪=╬=╪=╪=╣P'ELSE SET @+=N'╟-┼-┼-╫-┼-┼-╫-┼-┼-╢P'IF @r<9GOTO p
PRINT REPLACE(REPLACE(REPLACE(REPLACE(@,'=',N'═══'),'-',N'───'),'0',' '),'P',CHAR(13))

ইনপুট কলামে সঞ্চিত ডিজিটের একটি স্ট্রিং মারফত একটি পূর্ব বিদ্যমান টেবিলের টি , অনুমোদিত পদ্ধতি প্রতি

ফর্ম্যাট এবং ব্যাখ্যা :

DECLARE @r INT=0, @ NVARCHAR(999)= N'╔=╤=╤=╦=╤=╤=╦=╤=╤=╗P'
p:
    SELECT @+= FORMAT(CAST(SUBSTRING(a, @r*9+1, 9) AS INT),
        N'║ 0 │ 0 │ 0 ║ 0 │ 0 │ 0 ║ 0 │ 0 │ 0 ║P') FROM t
    SET @r+=1
    IF @r=9 SET @+= N'╚=╧=╧=╩=╧=╧=╩=╧=╧=╝P'
    ELSE IF @r%3=0 SET @+= N'╠=╪=╪=╬=╪=╪=╬=╪=╪=╣P'
    ELSE SET @+= N'╟-┼-┼-╫-┼-┼-╫-┼-┼-╢P'
IF @r<9 GOTO p
PRINT REPLACE(REPLACE(REPLACE(REPLACE(@, '=',N'═══'), '-',N'───'), '0',' '), 'P',CHAR(13))

লুপ উপরের লাইন আমি কলাম থেকে ইনপুট স্ট্রিং এর পরবর্তী 9 টি সংখ্যা পেয়ে করছি একটি পূর্ব বিদ্যমান টেবিলের টি

আমি অঙ্কগুলির সেই স্ট্রিংটিকে একটি পূর্ণসংখ্যায় রূপান্তর করি এবং FORMATকাস্টম পাঠ্য টেম্পলেট ব্যবহার করে তাদের নেট ফাংশনটি ব্যবহার করি '║ 0 │ 0 │ 0 ║ 0 │ 0 │ 0 ║ 0 │ 0 │ 0 ║P'

এর পরে আমি কেবল উপযুক্ত ডিভাইডার লাইনটি সংযোজন করব এবং আউটপুট আগে কিছু বাইট-সঞ্চয় প্রতিস্থাপন করব।

ফলাফল ফলকে আউটপুট প্রদর্শিত হয়:

╔═══╤═══╤═══╦═══╤═══╤═══╦═══╤═══╤═══╗
║ 8 │ 5 │   ║   │   │ 2 ║ 4 │   │   ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ 7 │ 2 │   ║   │   │   ║   │   │ 9 ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║   │   │ 4 ║   │   │   ║   │   │   ║
╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣
║   │   │   ║ 1 │   │ 7 ║   │   │ 2 ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ 3 │   │ 5 ║   │   │   ║ 9 │   │   ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║   │ 4 │   ║   │   │   ║   │   │   ║
╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣
║   │   │   ║   │ 8 │   ║   │ 7 │   ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║   │ 1 │ 7 ║   │   │   ║   │   │   ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║   │   │   ║   │ 3 │ 6 ║   │ 4 │   ║
╚═══╧═══╧═══╩═══╧═══╧═══╩═══╧═══╧═══╝

আমার আগে অন্যান্য অঙ্কন চরিত্রের কিছু জন্য কিছু অতিরিক্ত প্রতিস্থাপন ছিল, তবে তারা শেষ পর্যন্ত আমার বাইটগুলি সংরক্ষণ করেনি।

সম্পাদনা 1 : 1 এর@r পরিবর্তে শূন্য থেকে শুরু করে এবং কিছু অনিবদ্ধ স্থান সরিয়ে 8 বাইট সংরক্ষণ করা হয়েছে ।


4

রেটিনা , 196 167 বাইট

.{27}
¶N#=XZ#Q¶|$&
\d{9}\B
$&¶M#─┼Y#P¶|
\d{3}
 $& |
\B\d
 │ $&
^¶.*
B#=RT#E
$
¶H#=UW#K
+`#([^#¶]+)([^#¶])#
#$1#$2#$1#$2#$1#
#(.)#
$1$1$1
T`0=|#L` ═-╬

এটি অনলাইন চেষ্টা করুন! দৈর্ঘ্য 81 ব্যাখ্যার একটি স্ট্রিং হিসাবে ইনপুট লাগে: যেহেতু বক্স অক্ষর অঙ্কন তিন বাইট খরচ ইউনিকোড কোড পয়েন্ট ═-╬ব্যবহার কোডে প্রতিনিধিত্ব করা হয় =|#A-Z(সমস্ত নয় এমন অক্ষর ব্যবহার করা হয় কিন্তু রেঞ্জ স্টিকিং বাইট সংরক্ষণ)। অতিরিক্তভাবে সারিগুলি #চিহ্নগুলি ব্যবহার করে সংকুচিত হয় : a#bcd#eপ্রসারিত হয় abbbcbbbcbbbdbbbcbbbcbbbdbbbcbbbcbbbe

.{27}
¶N#=XZ#Q¶|$&

╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣প্রতি তৃতীয় সারির জন্য সন্নিবেশ করানো হয় , 27 টির প্রতিটি গোষ্ঠীর শুরুতে প্লাস এ।

\d{9}\B
$&¶M#─┼Y#P¶|

╟───┼───┼───╫───┼───┼───╫───┼───┼───╢অন্যান্য সারিগুলির মধ্যে সন্নিবেশ করানো হয় , সেই সারিগুলির শুরুতে প্লাস গুলি।

\d{3}
 $& |

প্রতি তিন অঙ্কের পরে সন্নিবেশ করান । সমস্ত s এখন sertedোকানো হয়েছে।

\B\d
 │ $&

|বাকী সমস্ত সংখ্যার মধ্যে এস সন্নিবেশ করান । (এটি পাইপের পরিবর্তে প্রকৃত বাক্স অঙ্কনের অক্ষর Unfortunately দুর্ভাগ্যক্রমে অক্ষরগুলির ─│┼একে অপরের থেকে অনেক দূরে কোড এবং ডাবল বক্সের অক্ষরগুলি স্থানধারকগুলি ব্যবহার করার সময় এটি উপযুক্ত করার জন্য রয়েছে।)

^¶.*
B#=RT#E

প্রথম সারিটি এতে পরিবর্তন করে ╔═══╤═══╤═══╦═══╤═══╤═══╦═══╤═══╤═══╗(এটি প্রথম স্থানে প্রথম সারিতে যোগ না করে 1 বাইট সংরক্ষণ করে)।

$
¶H#=UW#K

╚═══╧═══╧═══╩═══╧═══╧═══╩═══╧═══╧═══╝শেষ সারির পরে যুক্ত হয়।

+`#([^#¶]+)([^#¶])#
#$1#$2#$1#$2#$1#

a#bcd#eপ্রথমে a#bc#d#bc#d#bc#e, তারপরে প্রসারিত হয়a#b#c#b#c#b#d#b#c#b#c#b#d#b#c#b#c#b#e

#(.)#
$1$1$1

পরিবর্তনগুলি #b#করারbbb । এটি পচন সম্পূর্ণ করে।

T`0=|#L` ═-╬

সমস্ত শূন্য এন্ট্রি মুছে ফেলে, এবং বক্স অঙ্কন অক্ষরের সাথে স্থানধারীদের প্রতিস্থাপন করে।


আপনি 0স্থান দ্বারা প্রতিস্থাপন করতে ভুলে গেছেন ।
লিকি নুন

এছাড়াও প্রতিটি সীমানা জুড়ে দ্বিগুণ রেখা রয়েছে কেবলমাত্র সীমানা এবং 3x3 অঞ্চলগুলির চেয়ে।
জোয়েল কোহোর্ন

@ জোয়েলকোহুর্ন স্থির, দুঃখিত
নিল

@ লিক্যনুন ধন্যবাদ, আমি এটিকে উপেক্ষা করেছি। (এছাড়াও, আমি স্পেসগুলি দিয়ে শেষ হওয়া লাইনগুলি বা বিশেষত কেবল স্থানগুলি এড়াতে চাই, এ কারণেই আমি বিকল্প 2 বাইট সংরক্ষণের সন্ধান করেছি))
নিল

3

এসওজিএল ভি0.12 , 174 172 164 160 158 বাইট

«ž#>]Wž²6√±_ΕΨ╥╬]v←ē⅓ZΗ⌡z∫◄‽q   §↑╗∑Ολ[Μ↕z↓/∆Yn⁄:Ο║χ≥¾▓g*≈]═+π℮─6⁽SE/⁷,0+►Ƨ⌡u\^⁄-▼0cΦ“╤─┼╬│║═╔╗╚╝”Φ⅜nΡ¡ΞΨīŗ(`½│uģ“ ╬ζ─{ζ} 6Δ¹∑A'⁄─{IaW}¹∑#¶ŗ3 ¶ŗ ”+Ƨøp+!!┌d0@ŗčŗ

অতিরিক্ত দীর্ঘ ব্যাখ্যা:

...“                          push a big base-43 encoded number; will be used later. It's pushed here to save a byte on a quote
    ...”                      push "╤─┼╬│║═╔╗╚╝" - the chars in SOGLs encoding
        ...“                  push 679301851737965572513837476350078477
             ╬                push "╬"
              ζ               convert it to its codepoint (9580)
               ─              convert that number to an array of base-9580 numbers
                {ζ}           convert each number to a character (pushing each on the stack)
                    6Δ        push all ascii chars up to 6 (" !"#$%&'()*+,-./0123456")
                      ¹∑      join all the strings on the stack together ("╤─┼╬│║═╔╗╚╝╦╟╫╢╠╪╣╧╩ !"#$%&'()*+,-./0123456")
                        A     save on variable `A`. Now ontop of the stack is the 1st big number
                         '⁄─  onvert from base 43

{   }                           for each number do
 I                                increase
  aW                              get its position in the variable A
     ¹∑                         join all the strings ontop of the stack (the loop above pushed each char separately)
       #¶ŗ                      replace quote (") characters with newlines
          3 ¶ŗ                  replace 3s with "¶"
               ”+               append "”"
                 Ƨøp+           append "øp"
                     !!         execute the created code as SOGL
                       ┌        push "-"
                        d       push variable d - defaults to string input. In a full program could be set as an input
                         0@ŗ    replace zeroes with spaces
                            č   chop into an array
                             ŗ  replace ["-" with input chopped - so each iteratively]

যে প্রোগ্রামটি কার্যকর করা হয়েছে:

───!#
 - $
¶%&¶'(
)╪)╪)+
)╤)╤),
)╧)╧).
┼#
+╬+/
0!╫0!1
,╦,2
.╩.4
5│$║&
#0
═══)
$│$5
║&&%
╠/╬+╣6'*
╟1╫0!╢(
(6
╔2╦,╗6'**╚4╩.╝”øp

যেখানে শেষ লাইনটি সব ঠিক আছে in the entire program replace occurrences of the last char of this line with the rest of this line। এই কারণেই অর্ধেক অক্ষরকে কেবল এলোমেলো ascii তৈরি করা সম্ভব হয়েছিল (তবে স্পেস, ড্যাশ এবং উদ্ধৃতি কার্যকরভাবে ব্যবহৃত হয়েছে তা বের করার জন্য কিছুটা সময় নিয়েছিল)

...”    push the whole sudoku grid
    øp  print nothing (prevents bug that this code would already print and pop the result)

এখানে চেষ্টা করুন!
অনলাইন ইন্টারপ্রেটার কোডটি আরও সঠিক কারণ ট্যাবগুলি এসই এর সাথে কাজ করে না

-8 বাইট: পুরো বোর্ডকে সংকুচিত করে ব্রুট ফোর্স প্রতিস্থাপন, তারপরে তাদের কোডপয়েন্টগুলি সহ বিদেশী চরগুলি (কোডপেজে) প্রতিস্থাপন করুন। এটি করতে পুরানো প্রোগ্রামের চেয়ে এক ঘন্টা কম সময় নিয়েছে ...
-4 বাইট: সংক্ষেপিত স্ট্রিং সংকোচিত করা হচ্ছে ...
-2 বাইট: অ্যারের পরিবর্তে ভেরিয়েবল + স্ট্রিং ব্যবহার করে


2

জাভাস্ক্রিপ্ট (ES6), 246 বাইট / 198 অক্ষর

(n,r=(x,y)=>x+y+x+y+x,q=s=>([u,w,x,y,z]=[...s[0]],u+r(r(w+w+w,x),y)+z+`
`))=>q`╔═╤╦╗`+n.reduce((o,v,i)=>o+"║││"[i++%3]+` ${v||" "} `+(i%9?e:`║
`+(i-27&&i-54?i<81?q`╟─┼╫╢`:e:q`╠═╪╬╣`)),e="")+q`╚═╧╩╝`

ইনপুট হল পূর্ণসংখ্যার একটি অ্যারে। একই দুটি সহায়ক ফাংশন ব্যবহার করে শেষ হয়েছেলিকি নুনের পাইথন উত্তর , তাই ক্রেডিট সেখানে যায়।

যদি function প্রয়োজন হয়, 263 বাইট / 215 অক্ষর

function g(n,r=(x,y)=>x+y+x+y+x,q=s=>([u,w,x,y,z]=[...s[0]],u+r(r(w+w+w,x),y)+z+`
`)){return q`╔═╤╦╗`+n.reduce((o,v,i)=>o+"║││"[i++%3]+` ${v||" "} `+(i%9?e:`║
`+(i-27&&i-54?i<81?q`╟─┼╫╢`:e:q`╠═╪╬╣`)),e="")+q`╚═╧╩╝`}

পরীক্ষার স্নিপেট

81 সংখ্যার কোন ইনপুট সমর্থিত ( 1234, 1, 2, 3, 4[1 2 3 4], ইত্যাদি)। পুরো পৃষ্ঠা হিসাবে সেরা দেখা।

f=
(n,r=(x,y)=>x+y+x+y+x,q=s=>([u,w,x,y,z]=[...s[0]],u+r(r(w+w+w,x),y)+z+`
`))=>q`╔═╤╦╗`+n.reduce((o,v,i)=>o+"║││"[i++%3]+` ${v||" "} `+(i%9?e:`║
`+(i-27&&i-54?i<81?q`╟─┼╫╢`:e:q`╠═╪╬╣`)),e="")+q`╚═╧╩╝`

onload=I.oninput=_=>O.innerHTML=(m=I.value.match(/\d/g))&&m.length==81?f(m.map(x=>+x)):''
<textarea id=I rows=3 style="width:95%">8, 5, 0, 0, 0, 2, 4, 0, 0, 7, 2, 0, 0, 0, 0, 0, 0, 9, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 2, 3, 0, 5, 0, 0, 0, 9, 0, 0 ,0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 7, 0, 0, 1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6, 0, 4, 0</textarea>
<pre id=O>


2

ব্যাচ, 332 বাইট

@echo off
set/ps=
set s=%s:0= %
call:l É Í Ñ Ë »
set t="Ç Ä Å × ¶"
for %%i in (%t% %t% "Ì Í Ø Î ¹" %t% %t% "Ì Í Ø Î ¹" %t% %t% "È Í Ï Ê ¼")do call:c %%~i
exit/b
:c
set t=º
for %%j in (³ ³ º ³ ³ º ³ ³ º)do call set t=%%t%% %%s:~,1%% %%j&call set s=%%s:~1%%
echo %t%
:l
set t=%2%2%2%3%2%2%2%3%2%2%2
echo %1%t%%4%t%%4%t%%5

কনসোলটি সিপি 437 এ থাকা দরকার। যদি এটি আপনার ডিফল্ট না হয় CHCP 437তবে আপনার কনসোলটি ট্রু টাইপ ফন্টে সেট করা থাকলে আপনি কমান্ডটি ব্যবহার করে এটি পরিবর্তন করতে পারেন । (সিপি 437 যদি ইতিমধ্যে আপনার ডিফল্ট কোড পৃষ্ঠা হয় তবে এটি কেবল রাস্টার ফন্টগুলির সাথে কাজ করবে)) সিপি 437 তে কোডটি দেখতে দেখতে এটিই:

@echo off
set/ps=
set s=%s:0= %
call:l ╔ ═ ╤ ╦ ╗
set t="╟ ─ ┼ ╫ ╢"
for %%i in (%t% %t% "╠ ═ ╪ ╬ ╣" %t% %t% "╠ ═ ╪ ╬ ╣" %t% %t% "╚ ═ ╧ ╩ ╝")do call:c %%~i
exit/b
:c
set t=║
for %%j in (│ │ ║ │ │ ║ │ │ ║)do call set t=%%t%% %%s:~,1%% %%j&call set s=%%s:~1%%
echo %t%
:l
set t=%2%2%2%3%2%2%2%3%2%2%2
echo %1%t%%4%t%%4%t%%5

2

অন্যান্য উত্তর থেকে কাটা ধারণাগুলি সহ:

সি # (.নেট কোর) , 401 বাইট, 349 চারস

string s(string x){Func<string,string,string>q=(m,n)=>m+n+m+n+m;var a="╔"+q(q("=","╤"),"╦")+"╗";for(var i=0;i<9;) {a+=int.Parse(x.Substring(i*9,9)).ToString("\n║"+q(q(" 0 ","│"),"║")+"║\n")+(i++<8?(i%3>0?"╟"+q(q("-","┼"),"╫")+"╢":"╠"+q(q("=","╪"),"╬")+"╣"):"╚"+q(q("=","╧"),"╩")+"╝");}return a.Replace("=","═══").Replace("-","───").Replace("0"," ");}

Ungolfed:

static public string s(string x)
{
    Func<string,string,string>q=(m,n)=>m+n+m+n+m;
    var a="╔"+q(q("=","╤"),"╦")+"╗";
    for (var i=0;i<9;) //once per row
    {
        //parse that row to an int, then spit out a formatted string
        a += int.Parse(x.Substring(i*9,9)).ToString("\n║"+q(q(" 0 ","│"),"║")+"║\n") 
          // as well as a trailing row for the box
          + (i++<8?(i%3>0?"╟"+q(q("-","┼"),"╫")+"╢":"╠"+q(q("=","╪"),"╬")+"╣"):"╚"+q(q("=","╧"),"╩")+"╝");
    }
    //expand placeholder characters before returning
    return a.Replace("=","═══").Replace("-","───").Replace("0"," ");
}

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

আমার উত্তর:

সি # (.নেট কোর) , 509 430 418 বাইট, 328 অক্ষর

string b(string x){var a="╔=╤=╤=╦=╤=╤=╦=╤=╤=╗\n║";for(int i=0,j=0,k,l,m;j<3;j++)for(k=0;k<3;k++){for(l=0;l<3;l++)for(m=0;m<3;)a+=" "+x[i++]+(m++<2?" │":" ║");a+=i<80?(k<2?"\n╟-┼-┼-╫-┼-┼-╫-┼-┼-╢\n║":"\n╠=╪=╪=╬=╪=╪=╬=╪=╪=╣\n║"):"\n╚=╧=╧=╩=╧=╧=╩=╧=╧=╝";}return a.Replace("=","═══").Replace("-","───").Replace("0"," ");}

Ungolfed:

public string s(string x)
{
    var a = "╔=╤=╤=╦=╤=╤=╦=╤=╤=╗\n║";
    for (int i=0,j=0,k,l,m;j<3;j++)
    {
        for (k = 0; k < 3;k++)
        {
            for (l = 0; l < 3; l++)
            {
                for (m = 0; m < 3;)
                    a += " " + x[i++] + (m++ < 2 ? " │" : " ║");
            }
            a += i < 80 ? (k < 2 ? "\n╟-┼-┼-╫-┼-┼-╫-┼-┼-╢\n║": "\n╠=╪=╪=╬=╪=╪=╬=╪=╪=╣\n║") 
                        : "\n╚=╧=╧=╩=╧=╧=╩=╧=╧=╝";
        }
    }
    return a.Replace("=", "═══").Replace("-","───").Replace("0"," ");
}

I also looked at using a lambda for the `for` loops here, but it actually cost me one byte (saved 10 bytes per loop, with 41 bytes of overhead).

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


আপনার কি প্রতিটি অঙ্কন চরিত্রকে দুটি বাইট হিসাবে গণনা করা দরকার?
ব্র্যাডিসি

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

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

1

চিপ , 3645 বাইট

... এটি টাইপো নয় ...

ooooooZZ-)-K-)-K-)-K-)-K-)-K-)-K-)-K-)-K-)-K-)-K-)-K-).
|`xxxx-x--(x---x---x---x---x-v-x---x---x---x---x---x-.`K-)-K-)-K-)-K-).
|b|`xx-x--(x-v-x---x-v-x---x-x-x---x-v-x---x-v-x---x-x-x---x-v-x---x-.`K-).
|>xd`x-x(v-x-x-x-v-x-x-x-v-x-x-x-v-x-x-x-v-x-x-x-v-x-x-x-v-x-x-x-v-x-x-x-.|
||`--x-x-x(x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x/.
|`--z',/\',/\',/\',/\',/\',/\',/\',/\',/\',/\',/\',/\',/\',/\',/\',/\',/\','
`-. |,< >.| >.| >.| >.| >.| >.| >.| >.| >.| >.| >.| >.| >.| >.| >.| >.| >.|
*-x-/xZ/xZ^/xZ^/xZ^/xZ^/xZ^/xZ^/xZ^/xZ^/xZ^/xZ^/xZ^/xZ^/xZ^/xZ^/xZ^/xZ^/xZ'
Z~' |`'|`' |`' |`' |`' |`' |`' |`' |`' |`' |`' |`' |`' |`' |`' |`' |`','`'
    `)-K-)-K-)-K-)-K-)-K-)-K-)-K-)-K-)-K-)-K-)-K-)-K-)-K-)-K-)-K-)-K-)'
=
oooooo).h
`)))--^M^Zh
=
oooooo
|    `(--------------------------------------------------------------------------------------------------------va
KZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ^cg
)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx-xKZvvZ
xxxxxxxxxxxxxx)xxxxxxxxxxx)xxxxxxxxxxx)xxxxxxxxxxx)xxxxxxxxxxx)xxxxxxxxxxx)xxxxxxxxxxx)xxxxxxxxxxx)xxxxxxxxxxxx-Kxxxx}e
)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)x))xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)x))xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)x)b`feac
  c
=
oooooo
,'   `(--------------------------------------------------------------------------------------------------------.cba
KZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ^x^^)v--.
xx)xxxxxxxxxxx)xxxxxxxxxxx)xxxxxxxxxxx)xxxxxxxxxxx)xxxxxxxxxxx)xxxxxxxxxxx)xxxxxxxxxxx)xxxxxxxxxxx)xxxxxxxxxxxx-xK-'f e`.
)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx-x-K-+Z+Z}e
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxK^}b gac
xxxxxxxxxxxxxx)xxxxxxxxxxx)xxxxxxxxxxx)xxxxxxxxxxx)xxxxxxxxxxx)xxxxxxxxxxx)xxxxxxxxxxx)xxxxxxxxxxx)xxxxxxxxxxxx-K^d
=
oooooo
,-'
KZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZtabgfv------.
)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx-xK^^x-Zv-vZ}e
xxxxxxxxxxxxxx)xxxxxxxxxxx)xxxxxxxxxxx)xxxxxxxxxxx)xxxxxxxxxxx)xxxxxxxxxxx)xxxxxxxxxxx)xxxxxxxxxxx)xxxxxxxxxxxxK^---^}cade,]b
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)-K----^-^^~'
,v'
db
=
oooooo
,--' `(--------------------------------------------------------------------------------------------------------v-.,-v-ZZZZZZZZZZZZf
KZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ'a{x.df
)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xx)xxKx-xxv+Zc
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)x-KZx+bge
xx)xxxxxxxxxxx)xxxxxxxxxxx)xxxxxxxxxxx)xxxxxxxxxxx)xxxxxxxxxxx)xxxxxxxxxxx)xxxxxxxxxxx)xxxxxxxxxxx)xxxxxxxxxxxx---K\--^c
 a^b
=
oooooo
,---'`(--------------------------------------------------.
KZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ'gf
)xxxxx)xxxxx)xxxxx)xxxxx)xxxxx)xxxxx)xxxxx)xxxxx)xxxxx)xx-^KZc
)xxxxx)x)xxx)x)xxx)xxxxx)x)xxx)x)xxx)xxxxx)x)xxx)x)xxx)xxbahKZ\ZZZ
x))xxxxxxxxxxxxxxxx))xxxxxxxxxxxxxxxx))xxxxxxxxxxxxxxxx))-K-eh|fff
 ,--K-v-v-K--v-vK-v---K-----K-----K-----K-----K-----K `--Z-Z--'
A/ab/B/e/C/cd/D/-e/A
*}s

এটি অনলাইন চেষ্টা করুন! , প্রকার, রকম. টিআইও সংস্করণে (thet 4 পরে) theoooooo , যাতে এটি 60 সেকেন্ডেরও কম সময়ে শেষ হয়ে যায়। সম্পূর্ণ সংস্করণটি আমার মেশিনে প্রায় 1m25s সময় নেয় এবং টিআইও প্রায় অর্ধেক দ্রুত বলে মনে হয়। এর অর্থ টিআইও কেবল আউটপুটের প্রথম 7 লাইন দেখায়।

আমার প্রথম খসড়াটি 19758 বাইটের বিশাল আকারে ওজন করেছিল এবং আমাকে চালাতে প্রায় 8m30s নিয়েছিল। চূড়ান্ত সমাধান, প্রাক-গল্ফিং, একটি স্প্রি 599 বাইট ছিল, মাত্র 2 মি07 সেকেন্ড নিয়ে।

সুতরাং, তাহলে এটি কিভাবে কাজ করে?

এটিতে টার্মিনেটর অনুসারে ৮২ বাইট, 81 অঙ্কের একটি স্ট্রিং লাগে takes \0অথবা\n অন্য কোনও সংখ্যাও করবে। (এই বাস্তবায়নটি কেবলমাত্র প্রথম ৮১ এর দিকে দেখায়, তবে কমপক্ষে আরও একটি প্রয়োজন, যেহেতু চিপ যদি এটির ইনপুটটি শেষ করে ফেলেছে তবে এটি সমাপ্ত হবে If এটি যদি অগ্রহণযোগ্য হয় তবে পতাকাটি-z ব্যবহার করা যেতে পারে, যা কার্যকরভাবে অসীম সংখ্যার সংযোজন করে s\0 বাইটগুলিকে সংযুক্ত করে ইনপুটটির সমাপ্তি)) সংক্ষিপ্ত টিআইও কোডটি আসলে সমস্ত 81 বাইটে পায় না, সুতরাং পয়েন্টটি সেখানে রয়েছে।

আমি যেভাবে এটি প্রয়োগ করেছি, এটি কেবল ইনপুটটির 4 টি বিটের দিকে নজর রাখে, তাই সত্যিকার অর্থে কোনও সুডোকু 'ধাঁধা' হতে পারে, কাঁচা বাইনারি ডেটা থেকে শেক্সপিয়ারের কম-জানা কাজগুলিতে। যে কোনও চরিত্রের কম 4 বিট সমস্ত শূন্য, সমস্ত স্থান অক্ষর হিসাবে একটি স্পেস (একটি বিশেষ কেস) হিসাবে উপস্থিত হবে123456789:;<=>? । (সুতরাং, শেষ কয়েকটি অঙ্ক নয়, তবে সাধারণ সুডোকুতে কোনওটিই 10 টি বৈধ সংখ্যা নয়)।

বক্স-অঙ্কন চরিত্রগুলির জন্য, এটি ইউটিএফ -8 উত্পাদন করে, প্রতিটি 3 বাইটের সমান।

আসল বাস্তবায়ন সম্পর্কে কী?

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

যে লাইনগুলি শুরু হয় =তা হ'ল স্তর বিভাজক। তারপরে, স্তরগুলি স্ট্যাক করা হয়, উপরের এবং বাম দিকগুলি সারিবদ্ধ করে। দ্যoএর পিনের হিসেবে পরিবেশন করা, সিগন্যাল একটি স্তর থেকে অন্য পাস করতে সক্ষম হবেন।

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

দ্বিতীয় স্তরটি বরং ক্ষুদ্র, এবং এটির খুব ক্ষুদ্র কাজ রয়েছে। এটি সংখ্যাযুক্ত 0x80রেখাগুলি ব্যতীত আউটপুটটির সমস্ত লাইনের জন্য বিট সেট করে । বিটের hসাথে মিলে এমন চিপ উপাদান 0x80। (বর্ণমালার কম শেষ hমাধ্যমে aসমস্ত আট আউটপুট বিট সংজ্ঞায়িত।)

স্তর তিনটি যেখানে আমরা সত্যই মুদ্রণের মাংসে প্রবেশ করি get এই স্তরটি এক লাইনের দায়িত্বে রয়েছে। অবরুদ্ধ সংস্করণটিতে আটটি সারি রয়েছে xএবং এর) প্রতি বাইটের আটটি বিটের প্রত্যেকটির জন্য 0 এবং 1 এর ম্যাপিং এর গুলি রয়েছে। তবে, আমরা কম সারিগুলিতে একই কাজটি সম্পাদন করতে বিটগুলিতে নিদর্শনগুলির সুবিধা নিতে পারি।

স্তর চারটি অনেকটা তৃতীয়ের মতো। এটি অনুভূমিক ডাবল লাইন পরিচালনা করে।

স্তর পাঁচটি শেষ লাইনটি পরিচালনা করে। মনে রাখবেন যে এটি অন্যান্য স্তরগুলির শীর্ষে তারটি অনুপস্থিত। এটি কারণ সিকোয়েন্সারটিতে আমাদের নিয়ন্ত্রণ ফিরিয়ে আনার দরকার নেই। পরিবর্তে, আমরা এখানে দিয়ে এখানে মৃত্যুদন্ড কার্যকর করতে পারি t

স্তর ছয়টি অনুভূমিক একক লাইনগুলি পরিচালনা করে।

সাত নম্বর স্তরটি যেখানে মুদ্রিত হয়। এটি নয়টি সংখ্যাযুক্ত প্রতিটি লাইনের জন্য 'বলা' হয়। এটির প্রয়োগের অংশ হিসাবে এটি 9 বাইট ইনপুট গ্রহণ করে।


1

জাভাস্ক্রিপ্ট (ES6), 222 বাইট

ES6 ফাংশনগুলির জন্য সংক্ষিপ্ত বাক্য গঠন ব্যবহার করে - utf8, 222 বাইটে ( https://mothereff.in/byte-counter ) 174 অক্ষর এনকোড করা হয়েছে । ব্যবহারের function ...জন্য আরও 16 টি বাইট প্রয়োজন।

F=v=>[1,...v].map((x,i)=>'│║│'[i%3]+` ${x||' '} `+(i%9?'':`║
${[h,r,s,u,t]=i%27?'─╟╫┼╢':i>80?'═╚╩╧╝':i?'═╠╬╪╣':'═╔╦╤╗',r+(s=(u=(h+=h+h)+u+h+u+h)+s)+s+u+t}
`)).join``.slice(6)

কম গল্ফড

F=v=>{
   // horizontal lines are appended after each 9th element
   // so I need to prepend a dummy first element to draw the top horizontal line
   v = [1, ...v];
   return v.map( (x,i) => 
     '│║│'[i % 3] + ` ${x||' '} ` // left bar and cell value
     + ( i % 9 ? '' // add horizontal line after each 9th element
       // the line drawing characters are chosen according to the value of i
       : `║\n${ [h, r, s, u, t] = 
         i % 27 != 0
         ? '─╟╫┼╢'
         : i > 80 
           ? '═╚╩╧╝' // i==81, bottom row
           : i != 0
             ? '═╠╬╪╣'
             : '═╔╦╤╗', // i==0, top row
         r + (s = (u = (h += h + h) + u + h + u + h) + s) + s + u + t
         }\n`
       )
   ).join``
   .slice(6) // cut the first cell (the dummy element)
}

F=v=>[1,...v].map((x,i)=>'│║│'[i%3]+` ${x||' '} `+(i%9?'':`║
${[h,r,s,u,t]=i%27?'─╟╫┼╢':i>80?'═╚╩╧╝':i?'═╠╬╪╣':'═╔╦╤╗',r+(s=(u=(h+=h+h)+u+h+u+h)+s)+s+u+t}
`)).join``.slice(6)

function go() {
  var i=I.value
  i = i.match(/\d+/g).map(x => +x); // convert strings to numbers
  O.textContent = F(i)
}
#I { width: 90% }
<input id=I value='8 5 0 0 0 2 4 0 0 7 2 0 0 0 0 0 0 9 0 0 4 0 0 0 0 0 0 0 0 0 1 0 7 0 0 2 3 0 5 0 0 0 9 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 8 0 0 7 0 0 1 7 0 0 0 0 0 0 0 0 0 0 3 6 0 4 0'>
<button onclick='go()'>go</button>
<pre id=O></pre>


1

জাভা (ওপেনজেডিকে 8) , 279 বাইট

String f(int[]a){String P="0121213121213121214",R[]={"╔═╤╦╗","║ │║║x","╟─┼╫╢","╠═╪╬╣","╚═╧╩╝"},r="";for(int X:P.getBytes()){for(int x:P.replace("1",R[X-=48].length()>5?"151":"111").getBytes())r+=R[X].charAt(x-48);r+="\n";}for(int i:a)r=r.replaceFirst("x",i>0?""+i:" ");return r;}

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

বাইট গণনার জন্য, সিপি -৩77 ব্যবহার করুন যা জাভাIBM437 (সাম্প্রতিক এপিআই) হিসাবে স্থানীয়ভাবে সমর্থিত বাCp437 (পুরানো এপিআই) ; সুতরাং এই সিস্টেমটি ব্যবহার করুন যার চারসেটটিতে এই চরসেটটি ডিফল্ট চরসেট হিসাবে রয়েছে।

এই কোডটি জাভা 5 থেকে সামঞ্জস্যপূর্ণ, তবে কেবল জাভা 8-তে পরীক্ষা করা হয়েছিল।

ব্যাখ্যা

String f(int[]a){
  String P="0121213121213121214",                         // Both lines and rows are repeated according to this pattern.
         R[]={"╔═╤╦╗","║ │║║x","╟─┼╫╢","╠═╪╬╣","╚═╧╩╝"},  // Characters found on each line.
                                                          //   (note the 'x')
         r="";                                            // The string under construction
  for (int X: P.getBytes()) {                             // For each line,
    for (int x:                                           //  For each character in the pattern,
         P.replace("1",R[X-=48].length()>5?"151":"111")   //    *but* with a cell width of 3,
                                                          //    and with an optional character ('x')
         .getBytes())
      r+=R[X].charAt(x-48);                               //   append the real mapped character
    r+="\n";                                              //  then append a new line
  }
  for(int i:a)                                            // For each number in the input
    r = r.replaceFirst("x",i>0?""+i:" ");                 //  replace the first 'x' with that number.
                                                          //    (or space if zero)
  return r;                                               // Return the constructed string.
}

1

Tcl , 599 বাইট (295 অক্ষর)

খুব নির্বোধ পন্থা, তবে আমি কেবল এটি করতে হয়েছিল এমনকি এটি কোনও পদক্ষেপে বিজয়ী না হয়ে:

puts ╔═══╤═══╤═══╦═══╤═══╤═══╦═══╤═══╤═══╗
set r ║ 
lmap x $L {if !$x {set x \ }
set r $r\ $x\ [expr [incr i]%3?"│":"║"]
if ![expr $i%9] {puts $r\n[expr $i%27?"╟───┼───┼───╫───┼───┼───╫───┼───┼───╢":$i<72?"╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣":"╚═══╧═══╧═══╩═══╧═══╧═══╩═══╧═══╧═══╝"]
set r ║}}

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


এটি 599 ইউটিএফ -8 বাইট। আপনি বাইট সংরক্ষণ করতে সাধারণ বক্স অক্ষর পুনরায় ব্যবহার করার জন্য চেষ্টা করা উচিত
dzaima

@জাইমা: আমি জানি, আমি একটি কীবোর্ডে
সার্জিওল

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