নাইট অন দ্য রিম গ্রিম


48

ভূমিকা

অ্যারন নিমজোয়েটশ শীর্ষস্থানীয় দাবা মাস্টার এবং প্রভাবশালী দাবা লেখক ছিলেন।

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

একটি নাইটের বিভিন্ন অবস্থান এবং খালি বোর্ডে এর সম্ভাব্য পরবর্তী চলনগুলি (গোলাপী রঙে দেখানো) দেখার সময় এটি খুব স্পষ্ট হয়:

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

উদ্দেশ্য

খালি বোর্ডের অবস্থানের উপর ভিত্তি করে কোনও নাইটের সম্ভাব্য প্রত্যক্ষ পরবর্তী পরবর্তী পদক্ষেপের সংখ্যা মূল্যায়ন করুন।

ইনপুট স্পেস

নাইটের অবস্থান।

প্রথমে x (কলাম) এবং তারপরে y (সারি)। 0 0বাম নীচের কোণে।

সরলতার জন্য, আমি দাবা বোর্ডের লেবেলগুলিকে কেবল সংখ্যায় পরিবর্তন করেছি। আমাদের উদাহরণ এবং পরীক্ষার ক্ষেত্রে আমরা 0-ভিত্তিক সূচক ব্যবহার করি, আপনি যদিও 1-ভিত্তিক সূচক ব্যবহার করতে পারেন।

আপনি যে কোনও ধরণের সম্ভাব্য ইনপুট ফর্ম্যাট, একটি অ্যারে, ফাংশন আর্গুমেন্ট ইত্যাদি ব্যবহার করতে পারেন

আউটপুট স্পেস

খালি বোর্ডে একটি নাইটের জন্য সম্ভাব্য প্রত্যক্ষ পরবর্তী পরবর্তী পদক্ষেপের সংখ্যা।

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

3 4 => 8
4 6 => 6
7 7 => 2
1 0 => 3

পরীক্ষার কেসগুলি 0-ভিত্তিক সূচক নিয়োগ করে। মানগুলির পূর্ণ গ্রিড হ'ল:

2 3 4 4 4 4 3 2
3 4 6 6 6 6 4 3
4 6 8 8 8 8 6 4
4 6 8 8 8 8 6 4
4 6 8 8 8 8 6 4
4 6 8 8 8 8 6 4
3 4 6 6 6 6 4 3
2 3 4 4 4 4 3 2

9
প্রথম প্রথম চ্যালেঞ্জ! :-)
লুইস মেন্ডো

14
"রিম অন নাইট গুরুতর"

2
@ স্ট্যাসি আপনার মন্তব্য এই ধাঁধাটির জন্য একটি দুর্দান্ত শিরোনাম
হত

6
এখন সত্যিই শক্ত প্রশ্নের জন্য: উপরের চিত্রগুলিতে লাল নাইটগুলি কি একই রঙের হয়?
mbomb007

উত্তর:


25

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

lambda x,y:50/(8+x*x/7-x+y*y/7-y)-4

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


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

lambda x,y:50/(8-x*(7-x)/5-y*(7-y)/5)-4

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

ইনপুট 0-ইনডেক্সড নেয়।

এক্সপ্রেশন x*(7-x)/5স্থানাঙ্ক মানগুলিতে 0..7নিয়ে যায়

[0, 1, 2, 2, 2, 2, 1, 0]

( min(x,7-x,2)একই আছে, কিন্তু এখন আর।) এই সামিং xএবং yঅধিকার প্যাটার্ন দেয় কিন্তু ভুল সংখ্যার

0 1 2 2 2 2 1 0
1 2 3 3 3 3 2 1
2 3 4 4 4 4 3 2
2 3 4 4 4 4 3 2
2 3 4 4 4 4 3 2
2 3 4 4 4 4 3 2
1 2 3 3 3 3 2 1
0 1 2 2 2 2 1 0

( এটি সঠিক প্যাটার্নটি কেন দেয় তা সম্পর্কে আরও ভাল যুক্তির জন্য নীলের সমাধান দেখুন ))

অবশেষে, a -> 50/(8-a)-4মেঝে-বিভাগের সাথে মানচিত্রটি সঠিক মান দেয়

2 3 4 4 4 4 3 2
3 4 6 6 6 6 4 3
4 6 8 8 8 8 6 4
4 6 8 8 8 8 6 4
4 6 8 8 8 8 6 4
4 6 8 8 8 8 6 4
3 4 6 6 6 6 4 3
2 3 4 4 4 4 3 2

1-ইনডেক্সযুক্ত ইনপুটগুলির সাথে একটি বিকল্প সমান-দীর্ঘ সমাধান:

lambda x,y:(x*(9-x)/6+y*(9-y)/6)**2/6+2

(7-a)*a/53 চেয়ে খাটো বাইট min(a,7-a,2)
নীল

1
*lআসলে আপনার সামগ্রিকভাবে বাইট ব্যয় lambda a,b:"23468"[(7-a)*a/5+(7-b)*b/5]হয়, কেবলমাত্র 41 বাইট।
নীল

@ নীল আমি সবেমাত্র একই জিনিসটি পেয়েছি x*(9-x)/6, এক- সূচকযুক্ত ।
xnor

1
<strike>গল্ফিংয়ের অগ্রগতি দেখাতে আপনি কেন সবার মতো ব্যবহার করবেন না ?
উন্মাদ

4
@ ইনসান আমি মনে করি এটি দেখতে কুৎসিত দেখাচ্ছে এবং আসলে সাহায্য করে না। কোডটি গুরুত্বপূর্ণ জিনিস এবং যে কেউ এর বিবর্তনটি দেখতে চায় তার এখনও সম্পাদনা ইতিহাসে খোঁজ করা দরকার। আমার পুরানো কোডটি যখন দেখানোর মতো যথেষ্ট আলাদা তখন আমি এখানে সংস্করণগুলি দেখাই । তবে এই প্রশ্নে, এটি একই কৌশলতে সমস্ত ছোটখাটো উন্নতি, তাই আমি ভিন্ন ভিন্ন সম্ভাবনার কথা উল্লেখ করার জন্য আরও ক্লিনার পেয়েছি।
xnor

17

এমএটিএল , 17 14 13 12 বাইট

1 বাইট বন্ধের জন্য @ নিলকে ধন্যবাদ!

8:HZ^ZP5X^=s

ইনপুটটি 1-ভিত্তিক।

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

ব্যাখ্যা

এটি দাবাবোর্ডের প্রতিটি 64 টি অবস্থানের ইনপুট থেকে ইউক্লিডিয়ান দূরত্বকে গণনা করে এবং খুঁজে পাওয়া যায় যে এই মানগুলির মধ্যে কতটি 5 এর বর্গমূলের সমান।

যেহেতু স্থানাঙ্কগুলি পূর্ণসংখ্যা মান, আমরা নিশ্চিত হতে পারি যে 5 এর বর্গমূলের (যা স্থানাঙ্কগুলি থেকে গণনা করা হয়েছে এবং সরাসরি গণনা করা) দুটি ভাসমান-পয়েন্টের মানগুলি সত্যই একই।

8:      % Push array [1 2 ... 8]
H       % Push 2
Z^      % Cartesian power. Gives 2D array [1 1; 1 2; ... 1 8; 2 1; ... 8 8]     
ZP      % Implicit input. Compute Euclidean distances, considering each row as a point
5X^     % Square root of 5
=s      % Compute how many squared distances equal sqrt(5). Implicit display

1
চিত্তাকর্ষক এবং ব্যাখ্যাটির জন্য ধন্যবাদ
স্টারকর্ডার

1
বৃত্তাকার ত্রুটির কারণে 5 থেকে 5 এর বর্গমূলের বর্গের তুলনা করা যদি ব্যর্থ হয় তবে আপনি কি কমপক্ষে 5 এর বর্গমূলকে 5 এর বর্গমূলের সাথে তুলনা করতে পারবেন না?
নীল

@ নীল ধারণা জন্য ধন্যবাদ! হ্যাঁ, যেহেতু গণনাগুলি পূর্ণসংখ্যার সাথে থাকে তাই আমি নিশ্চিত হতে পারি যে দুটি "5 এর মূল" একই doubleসংখ্যা। পিঁপড়া এটি একটি বাইট সংরক্ষণ করে
লুইস মেন্ডো

15

গণিত 63৩ বাইট

মার্টিন ইন্ডারের পরামর্শ অনুসারে 20 বাইট সংরক্ষণ করা হয়েছে!

EdgeCount[8~KnightTourGraph~8,#+1+8#2/<->_]&

উপরেরটি পূর্ণ নাইট ট্যুর গ্রাফে প্রদত্ত ঘর থেকে 1 টি হপ দূরে থাকা স্কোয়ারের সংখ্যাটি আবিষ্কার করে।


g=KnightTourGraph[8,8,VertexLabels->"Name",Axes->True]

শীর্ষস্থানীয় নাম এবং স্থানাঙ্ক সহ পুরো নাইটের ট্যুর গ্রাফ প্রদর্শন করে। দ্রষ্টব্য যে গাণিতিক স্থানাঙ্কগুলির জন্য এক-ভিত্তিক সূচকে ডিফল্ট হয়।

চিত্রলেখ


#+1+8#2&[r,f]ইনপুট হিসাবে শূন্য-ভিত্তিক মানগুলি ব্যবহার করে র‌্যাঙ্ক (সারি) r, এবং ফাইল (কলাম) এর সাথে বর্গক্ষেত্রের সাথে সম্পর্কিত শীর্ষস্থানটি রূপান্তর fকরে।

উদাহরণস্বরূপ #+1+8#2&[2,1]11 ফেরত দেয়।


EdgeCount আশেপাশের গ্রাফে প্রান্তগুলির সংখ্যা দেয়।


2 র‌্যাঙ্কের জন্য প্রান্ত, ফাইল 1 (বর্গ 11):

IncidenceList[8~KnightTourGraph~8, 8 #2 + # + 1] &[2, 1]

(*{1 <-> 11, 5 <-> 11, 11 <-> 17, 11 <-> 21, 11 <-> 26, 11 <-> 28}*)

হাইলাইট করা প্রান্তগুলি:

HighlightGraph[g, {1, 5, 11, 17, 21, 26, 28, Style[1 <-> 11, Thick, Blue], Style[5 <-> 11, Thick, Blue], Style[11 <-> 17, Thick, Blue], Style[11 <-> 21, Thick, Blue], Style[11 <-> 26, Thick, Blue], Style[11 <-> 28, Thick, Blue]},GraphHighlightStyle -> "DehighlightFade", PlotRangePadding -> .5]

লক্ষণীয় করা


পদ্ধতি 2: ইউক্লিডিয়ান দূরত্ব

70 বাইট

এই পদ্ধতিটি দীর্ঘতর তবে সম্ভবত কিছুটা আগ্রহ। পদ্ধতির মধ্যে রয়েছে দাবাটির কেন্দ্র এবং আগ্রহের ঘরের মধ্যে ইউক্লিডিয়ান দূরত্ব পরীক্ষা করা check

Which[(x=Sqrt@Tr[({3.5, 3.5}-#)^2])<2.2,8,x<3,6,x<4,4,x<4.6,3,x>4.6,2]&

exemplifying

Which[(x=Sqrt@Tr[({3.5, 3.5}-#)^2])<2.2,8,x<3,6,x<4,4,x<4.6,3,x>4.6,2]&@{0, 0}
Which[(x=Sqrt@Tr[({3.5, 3.5}-#)^2])<2.2,8,x<3,6,x<4,4,x<4.6,3,x>4.6,2]&@{3, 3}

2

8


কোনও মূল্য নির্ধারণের জন্য দাবাটির কেন্দ্র থেকে দূরত্ব কীভাবে যথেষ্ট তা ভিজ্যুয়ালাইজ করতে সহায়তা করতে To

values={{2,3,4,4,4,4,3,2},{3,4,6,6,6,6,4,3},{4,6,8,8,8,8,6,4},{4,6,8,8,8,8,6,4},{4,6,8,8,8,8,6,4},{4,6,8,8,8,8,6,4},{3,4,6,6,6,6,4,3},{2,3,4,4,4,4,3,2}};
f[x_]:=Text[x,#]&/@Position[values,x]r_~w~p_:=RegionMember[{3.5`,3.5`}~Disk~r,p]
h@y_:=Which[2.2~w~y,8,3~w~y,6,4~w~y,4,4.6~w~y,3,2<3,2]

Graphics[{Circle[{4.5, 4.5}, 2.3], Circle[{4.5, 4.5}, 3], 

চেনাশোনা [4.5 {, 4.5 4.5, 4],

চেনাশোনা [{4.5, 4.5}, 4.6], ফ্ল্যাটেন [f / @ {2, 3, 4, 6, 8 1, 1]}, অক্ষ -> সত্য, অক্ষরেগিন -> {-1, -1}]


২.২, ৩, ৪, এবং ৪. numbers সংখ্যাটি বৃত্তের রেডিআই।

ভাবমূর্তি


1
দুর্দান্ত ট্যুর গ্রাফ
স্টারকর্ডার

20
KnightTourGraphগাণিতিক এবং এর বিল্টিনগুলি ... :-)
লুইস মেন্ডো

আমি মনে করি #আপনার উত্স কোডের শেষে একটি বিভ্রান্তি রয়েছে (ঠিক এর আগে ])। আপনি যদিও IncidenceListপরিবর্তে ব্যবহার করতে সক্ষম হবেন EdgeList@NeighborhoodGraph। (বিকল্পভাবে, এছাড়াও আছে EdgeCount, কিন্তু আমি মনে করি যে এটি দীর্ঘ হওয়া শেষ হবে।)
মার্টিন এন্ডার

1
ওহ অপেক্ষা করুন, এটি আসলে খাটো:EdgeCount[8~KnightTourGraph~8,#+1+8#2<->_]&
মার্টিন ইন্ডার

EdgeCountখুব ভাল!
ডেভিডসি

12

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

(x,y)=>+"23468"[((7-x)*x+(7-y)*y)/5|0]

0-ইনডেক্সড ইনপুট নেয়। ব্যাখ্যা: কেন্দ্রের দূরত্বগুলির স্কোয়ারটি দেখুন:

24.5 18.5 14.5 12.5 12.5 14.5 18.5 24.5
18.5 12.5  8.5  6.5  6.5  8.5 12.5 18.5
14.5  8.5  4.5  2.5  2.5  4.5  8.5 14.5
12.5  6.5  2.5  0.5  0.5  2.5  6.5 12.5
12.5  6.5  2.5  0.5  0.5  2.5  6.5 12.5
14.5  8.5  4.5  2.5  2.5  4.5  8.5 14.5
18.5 12.5  8.5  6.5  6.5  8.5 12.5 18.5
24.5 18.5 14.5 12.5 12.5 14.5 18.5 24.5

অ্যাক্সেসযোগ্য স্কোয়ারের সংখ্যা পাঁচটি ব্যান্ডের মধ্যে পড়ে:

8    0-5
6    5-10
4   10-15
3   15-20
2   20-25

আমি আসলে 24.5 গণনা করি - (3.5 - x) ** 2 - (3.5 - y) ** 2 = (7 - x) * x + (7 - y) * y এটি একটি ছোট গণনা হিসাবে, তবে এটি যা কিছু করে তা বিপরীত ব্যান্ড ক্রম।


সুপার সংক্ষিপ্ত এবং খুব সুন্দর পদ্ধতির, সুতরাং আমাকে আর নিজের জেএস সমাধান শুরু করতে হবে না :)
স্টারকর্ডার

সূত্রটি ব্যাসার্ধের স্কোয়ারের সমতুল্য হওয়ার বিষয়ে ভাল বিষয়। আমি x*(7-x)কেবল একটি অপারেশন হিসাবে ভেবেছিলাম যা দেখতে নিম্নচাপের মতো 0..7দেখা যায় এবং বাঁকানো ফিট হয়ে যায় তবে এটি ব্যাখ্যা করে যে কেন xএবং এর জন্য সংমিশ্রিত হওয়ার পরে এটি এত সুন্দর নিদর্শন কেন উত্পাদন করে y
xnor

11

জেলি, 10 বাইট

8ṗ2_³²S€ċ5

1-ইন্ডেক্স। ফর্মের একক যুক্তি গ্রহণ করে [x,y]এখানে চেষ্টা করুন।

8ṗ2          Cartesian square [[1,1],[1,2]…[8,8]]
   _³        Subtract the input
     ²S€     Compute the norm of each vector
        ċ5   Count fives

ডেনিস একটি বাইট সংরক্ষণ করলেন!


মাত্র এগারো বাইট, বাহ!
স্টারকর্ডার

আমি এই প্রশ্নটি সকালে দেখেছিলাম এবং এটি হ'ল সঠিক অ্যালগরিদম আমি ভেবেছিলাম যে সময় পেলে আমি জেলিটিতে প্রয়োগ করব। : পি
পুরক্কা কুডারী

8

গণিত, 44 40 বাইট

আমি বর্তমানে একই বাইট গণনায় তিনটি সমাধান পেয়েছি:

2[3,4,6,8][[Tr@⌊3.2-.8Abs[#-4.5]⌋]]&
Tr@⌈.85(4-Abs[#-4.5])⌉/.{5->6,6->8}&
⌊Tr@⌈.85(4-Abs[#-4.5])⌉^1.1608⌋&

এগুলি সমস্তই নামবিহীন ফাংশন {3, 4}যা 1 টি ভিত্তিক যা স্থানাঙ্কের জুড়ি নেয় ।

আমি কিছুটা সুস্পষ্ট সূত্র নিয়ে আসার চেষ্টা করেছি। পুরো বোর্ডের সাধারণ প্যাটার্নটি এর মতো দেখাচ্ছে:

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

এই রঙগুলির আসল মানগুলি (সবচেয়ে হালকা থেকে অন্ধকার পর্যন্ত) 2, 3, 4, 6, 8। এটাই:

2 3 4 4 4 4 3 2
3 4 6 6 6 6 4 3
4 6 8 8 8 8 6 4
4 6 8 8 8 8 6 4
4 6 8 8 8 8 6 4
4 6 8 8 8 8 6 4
3 4 6 6 6 6 4 3
2 3 4 4 4 4 3 2

আমরা প্রথম, কেন্দ্র উৎস নাড়াচাড়া পরম মান গ্রহণ থেকে ফলাফলের যতবার প্রতিসাম্য কাজে লাগান 4। এটা আমাদের স্থানাঙ্ক দেয় 0.5করার 3.5প্রতিটি কোনা থেকে বেড়ে। অর্ডার কেন্দ্র স্থানাঙ্ক ম্যাপ একই আমরা প্রয়োজন করার জন্য 0.5এবং 1.5বিভিন্ন মূল্যবোধ ও করতে 2.5এবং 3.5একই মান হবে। এটি সহজেই দিয়ে 0.8দেয় (দেয় {0.4, 1.2, 2., 2.8}) এবং ফলাফল মেঝে দিয়ে। সুতরাং এখন আমরা {0, 1, 2, 2}কেন্দ্র থেকে দূরত্ব পেয়েছি । যদি আমরা প্রতিটি কক্ষে স্থানাঙ্কগুলি যুক্ত করি তবে আমরা এই টেবিলটি পাই:

0 1 2 2 2 2 1 0
1 2 3 3 3 3 2 1
2 3 4 4 4 4 3 2
2 3 4 4 4 4 3 2
2 3 4 4 4 4 3 2
2 3 4 4 4 4 3 2
1 2 3 3 3 3 2 1
0 1 2 2 2 2 1 0

এটির বিভিন্ন সম্ভাব্য ফলাফলের জন্য অনন্য মান রয়েছে, তাই আমরা এটিকে কেবল সূচি হিসাবে ব্যবহার করি 2[3,4,6,8]

দ্বিতীয় সংস্করণে আমরা ফ্লোরের পরিবর্তে সিলিং ব্যবহার করি। এইভাবে 2, 3এবং 4ইতিমধ্যে সঠিক, তবে আমরা পেয়েছি 5এবং 6পরিবর্তে 6এবং 8তাই, আমরা একটি বিকল্প বিধি দিয়ে ম্যানুয়ালি তাদের সংশোধন করি।

শেষ অবধি, তৃতীয় সংস্করণে, আমরা ক্ষয়ক্ষতির মাধ্যমে এবং এরপরে প্রসারিত করি 5এবং তার পরে অন্য তল অপারেশন করি।668


আমি বোর্ডের সাধারণ প্যাটার্নটি ব্যবহার করে খুব পছন্দ করি, দুর্দান্ত!
স্টারকর্ডার

6

এপিএল, 21 টি অক্ষর

{+/,5=+/¨×⍨(⍳8 8)-⊂⍵}

ইংরেজীতে:

  • (⍳8 8): 8x8 র‌্যাঙ্ক -2 অ্যারেতে সমস্ত কোষের স্থানাঙ্কগুলি রয়েছে;
  • +/¨×⍨(⍳8 8)-⊂⍵: বোর্ডের প্রতিটি কক্ষের সম্মানের সাথে প্রদত্ত ঘরের ইউক্যালিডিয়ান দূরত্বগুলির বর্গক্ষেত্র;
  • 5=: 0/1 এর ম্যাট্রিক্স, যেখানে 1 গুলি স্কোয়ার্ড দূরত্বে সমান 5 সমান হয়;
  • +/,: সমতল ম্যাট্রিক্সের যোগফল

পরীক্ষা (আদিতে 1):

    f←{+/,5=+/¨×⍨(⍳8 8)-⊂⍵}
    f¨1+(3 4)(4 6)(7 7)(1 0)
8 6 2 3

এই ফর্মটিতে:

f←{+/,5=+/¨×⍨(⍳⍺)-⊂⍵}

বাম আর্গুমেন্ট বোর্ডের মাত্রা নির্দিষ্ট করতে পারে। সুতরাং 8 8 fস্ট্যান্ডার্ড বর্গাকার দাবাবোর্ডের জন্য কাজ করবে। তবে বৃহত্তর এবং আয়তক্ষেত্রাকার বোর্ডে পরীক্ষার কেসগুলি বিভিন্ন ফলাফল দেয় give উদাহরণস্বরূপ, একটি 12x10 বোর্ডে:

    g←(10 12)∘f
    g¨1+(3 4)(4 6)(7 7)(1 0)
8 8 8 3

এপিএল জারগনে, একটি ম্যাট্রিক্স হ'ল র‌্যাঙ্কের অ্যারে, কোষগুলির সামগ্রীর বিষয়ে কিছুই বলেনি। কয়েক বছর ধরে (আব) শর্তাবলীর ব্যবহার আমাকে এতে সংবেদনশীল করে তুলেছে। আমি আরও traditionতিহ্যগতভাবে ঝুঁকির পাঠকদের জন্য বিবরণটি আপডেট করব। ধন্যবাদ.
lstefano

@ ইস্টফানো যে "র‌্যাঙ্ক" কে "মাত্রা সংখ্যার" হিসাবে ব্যবহার করে একই সমস্যায় ভুগছে বলে মনে হচ্ছে :
লুইস মেন্ডো

আমি হব ... আপনি ঠিক বলেছেন! আপনি দেখতে পাচ্ছেন যে লিনিয়ার বীজগণিত গ্রহণের পরে অনেক দিন হয়ে গেল। আমি ছেড়ে দিচ্ছি :-)
lstefano

1
সম্পূর্ণ প্রোগ্রাম, 27: ≢⍸5=+/¨×⍨-∘⎕¨⍳8 8 এটি অনলাইন চেষ্টা করুন!
অ্যাডম

@ আদম আপনি কি বলতে চান 17
ngn

6

জাভা - 160 150 বাইট

int m(int r,int c){int m=0,i,j;for(i=0;i<3;i+=2)for(j=0;j<3;j+=2){m+=r+i>0&r+i<9&c+2*j>1&c+2*j<11?1:0;m+=r+2*i>1&r+2*i<11&c+j>0&c+j<9?1:0;}return m;}

Ungolfed:

public static int m(int r, int c) {
    int m=0;
    for(int i=-1;i<2;i+=2)
        for(int j=-1;j<2;j+=2){
            m += r+i>-1 && r+i<8 && c+2*j>0 && c+2*j<8 ? 1:0;
            m += r+2*i>0 && r+2*i<8 && c+j>1 && c+j<8 ? 1:0;
        }
    return m;
}

অবরুদ্ধড কোডটি 4 টি বাইট সংরক্ষণের জন্য লুপের সীমানা পরিবর্তন করা ছাড়া অভিন্ন। প্রতিটি সম্ভাব্য পদক্ষেপের মাধ্যমে পুনরাবৃত্তি করে এবং একটি বাউন্ড চেক (> 0 এবং <8) সম্পাদন করে কাজ করে। অফসেটগুলি (1, 2), (2, 1), (-1, 2), (-2, 1) ইত্যাদি ইত্যাদি ব্যবহার করে এবং i এবং j এর প্রতিটি মানের জন্য 2 টি পদক্ষেপ পরীক্ষা করতে সক্ষম।

সম্পাদনা করুন: লিকি নুন এবং u902383 এর পরামর্শের জন্য 10 বাইট সংরক্ষণ করা হয়েছে।


এটিও দ্রুত ছিল, দুর্দান্ত!
স্টারকর্ডার

সেখানে কোনও ত্রুটি ছিল, এটি ঠিক করা হয়েছে।
ejaszewski

1
int m=0,i=-1,j;কিছু বাইট সংরক্ষণ করতে
লিকি নুন

1
লজিকাল এবং বিটওয়াইজ
এ্যান্ড এ

6

সি, 44 বাইট

f(x,y){return "23468"[((7-x)*x+(7-y)*y)/5];}

তবে এটি আরও ভাল:

f(x,y){return "2344443234666643468888644688886446888864468888643466664323444432"[x*8+y];}

1
নিখোঁজ ;। সংকলন করবে না
ugoren

@ জিয়াকোমো গারাবেলো দেখুন: meta.codegolf.stackexchange.com/a/1146/55729
জ্যাকাজ্যাক

1
এটি কোনও স্নিপেট নয়, এটি একটি ফাংশন এবং এটি পোস্ট ক্রিয়াকলাপ নিষিদ্ধ নয়। অনুপস্থিত সেমিকোলনের জন্য দুঃখিত। সংশোধন করা হয়েছে।
গিয়াকোমো গারাবেলো

5

হাস্কেল, 49 48 বাইট

w=[0..7]
x%y=sum[1|a<-w,b<-w,(a-x)^2+(b-y)^2==5]

1
আপনি [0..7]1 বাইট জন্য একটি পরিবর্তনশীল সংরক্ষণ করতে পারেন ।
xnor

5

জাভা, ৮১ টি অক্ষর (১১৩ বাইট)

int r(int a,int b){return "⍄䐲㑦晃䚈衤䚈衤䚈衤䚈衤㑦晃⍄䐲".codePointAt(a*2+b/4)>>(3-b%4)*4&15;}

পুরো ফলাফলের টেবিলটিকে ইউনিকোড টেবিল হিসাবে এনকোড করুন এবং তারপরে বিটওয়াইস ক্রিয়াকলাপগুলি যথাযথ বাইট করুন।

আপনি এটি অনলাইনে এখানে দেখতে পাবেন: https://ideone.com/K9BojC


3

পাইথন, 94 বাইট

lambda x,y,a=[2,1,-1,-2,-2,-1,1,2]:list((9>x+a[i]>0)&(9>y+a[5-i]>0)for i in range(8)).count(1)

1 ভিত্তিক সূচক ব্যবহার করে।

Https://repl.it/C6gV এ ডেমো ।


2

পাইথ - 33 15 বাইট

অর্ধেক আমার আকার হ্রাস করার জন্য @ লিক্যনুনকে ধন্যবাদ

মানচিত্রগুলি পুনরায় সাজানো এবং Vসম্ভবত গল্ফটি কিছুটা দূরে থাকবে।

/sM*Fm^R2-Rd8Q5

টেস্ট স্যুট


1
এটি দ্রুত ছিল, দুর্দান্ত!
স্টারকর্ডার




1

আসলে, 18 বাইট

`;7-2km`MΣ8-:50\¬¬

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

এই প্রয়োগ একই সূত্র যে অনেক অন্যান্য উত্তর ব্যবহার করা হয়েছে: 50/(8-x*(7-x)//5+y*(7-y))//5)-4[x,y]ইনপুটটিকে তালিকা হিসাবে নেওয়া হয়: (বা পাইথনের কোনও পুনরাবৃত্তিযোগ্য আক্ষরিক, এর মতো (x,y)বা x,y)।

ব্যাখ্যা:

`;7-2km`MΣ8-:50\¬¬
`;7-2km`M           for each value in input:
 ;7-                  make a copy, subtract from 7
    2                 push 2
     km               minimum of the three values (x, 7-x, 2)
         Σ          sum
          8-        subtract from 8
            :50\    integer divide 50 by the value
                ¬¬  subtract 2 twice

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