নাইন মেনস মরিসে কাউন্ট মিলস


21

ভূমিকা

নাইন মেনস মরিসকে ( মিলসও বলা হয়) দুটি খেলোয়াড়ের জন্য একটি বোর্ড গেম যা নিম্নলিখিত বোর্ডে খেলা হয় (লিঙ্কযুক্ত উইকিপিডিয়া-পৃষ্ঠা থেকে নেওয়া চিত্র):

মিল বোর্ড

প্রতিটি খেলোয়াড়ের 9 জন পুরুষ, রঙিন কালো এবং সাদা। এই চ্যালেঞ্জের জন্য কংক্রিটের নিয়মগুলি গুরুত্বপূর্ণ নয়, তবে আপনি আগ্রহী হলে উইকিপিডিয়া-পৃষ্ঠাটি দেখুন

চ্যালেঞ্জ

ইনপুট হিসাবে একটি গ্রিড দেওয়া হয়েছে যা একটি নির্দিষ্ট বোর্ডস্টেটের প্রতিনিধিত্ব করে, মোট মিল গণনা mসহ আউটপুট দেয় 0<=m<=8
একই বর্ণের তিন জন পুরুষ যখন তারা সংযুক্ত পয়েন্টের সরল সারিতে থাকে তখন মিলটি গঠন করে। b2থেকে f2একটি কল থেকে পুরুষদের বিভিন্ন রং এর হয় না। এছাড়াও d2থেকে d5যেহেতু তিন পয়েন্ট সংযুক্ত করা আছে কল গঠন করা হবে না।
উপরের চিত্রের বোর্ডে উদাহরণস্বরূপ দুটি মিল রয়েছে। থেকে এক f2থেকে f6থেকে এক e3থেকে e5

ইনপুট

বোর্ডটি ২ পয়েন্ট সহ একটি 2 ডি গ্রিড হিসাবে উপস্থাপিত যা উপরের উদাহরণ চিত্রটিতে প্রদর্শিত হিসাবে সংযুক্ত রয়েছে। উদাহরণটি সারিগুলির জন্য a-gকলাম এবং সংখ্যার জন্য চিঠিগুলি ব্যবহার করে 1-7, তবে যতক্ষণ না এটি 24 টি স্বতন্ত্র স্থানাঙ্ককে নীচের একটির মানচিত্র হিসাবে মানচিত্রের অবধি বেছে নিতে পারেন আপনি:

  • খালি
  • কালো দ্বারা নেওয়া
  • সাদা দ্বারা নেওয়া

কংক্রিট প্রতিস্থাপন আপনার উপর নির্ভর করে আপনি রঙগুলির জন্য "বি" বা "ডাব্লু" এর মধ্যে সীমাবদ্ধ নন।

এগুলি ছাড়াও, আপনার ইনপুটটিতে কোনও অতিরিক্ত তথ্য নাও থাকতে পারে।

অতিরিক্ত নোট

  • আপনাকে কোনও ধরণের মান দ্বারা পয়েন্ট মানচিত্র করতে হবে না। আপনি যদি ইনপুটটিকে 2 ডি অ্যারে হিসাবে নিতে চান তবে তাও ঠিক আছে। তবে মনে রাখবেন যে সেখানে সমস্ত পয়েন্ট ব্যবহার করা হয়নি এবং আপনাকে তাদের মধ্যে সংযোগগুলি বিবেচনা করতে হবে।
  • ইনপুটটি খালি থাকতে পারে, সেক্ষেত্রে আপনাকে শূন্য আউটপুট দিতে হবে (খালি বোর্ড -> মিল নেই)।
  • যেহেতু প্রতিটি খেলোয়াড়ের 9 জন পুরুষ রয়েছে তাই ইনপুটটিতে 18 টির বেশি পয়েন্ট থাকবে না
  • আপনি ইনপুটে এমটিপি পয়েন্টগুলি ছেড়ে যেতে পারেন এবং সেহেতু কেবল নেওয়া ইনপুট পয়েন্ট।
  • ইনপুটটি কোনওভাবে অর্ডার করা যেতে পারে। আপনি একটি নির্দিষ্ট অর্ডারের উপর নির্ভর করতে পারবেন না।
  • আপনি ধরে নিতে পারেন যে ইনপুটটি সর্বদা বৈধ থাকবে। এর অর্থ হ'ল প্রতিটি রঙের 9 টির বেশি পুরুষ থাকবে না এবং প্রতিটি পয়েন্টটি অনন্য হবে।

বিধি

  • আপনার সমাধানে কোন ইনপুট ফর্ম্যাটটি ব্যবহার করবেন তা পরিষ্কার করুন। আপনার প্রোগ্রাম চালানোর জন্য একটি উদাহরণ প্রদান করা আন্তরিকভাবে উত্সাহিত করা হয়।
  • ফাংশন বা সম্পূর্ণ প্রোগ্রাম অনুমোদিত।
  • ইনপুট / আউটপুট জন্য ডিফল্ট নিয়ম
  • স্ট্যান্ডার্ড লুফোলস প্রযোজ্য।
  • এটি , তাই সর্বনিম্ন বাইট-কাউন্ট জেতা। টাইব্রেকার আগে জমা দেওয়া হয়।

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

এখানে ইনপুট ফর্ম্যাটটি প্রথম উপাদান হিসাবে প্রথম উদাহরণ হিসাবে এবং স্থিতি দ্বিতীয় উপাদানের অবস্থা হিসাবে স্থানাঙ্কগুলির সাথে তালিকার একটি তালিকা। সাদা দ্বারা গৃহীত একটি বিন্দুটিকে "ডাব্লু" হিসাবে চিহ্নিত করা হয় এবং কালো দ্বারা "বি" হিসাবে নেওয়া বিন্দুটিকে চিহ্নিত করা হয়। অন্যান্য সমস্ত পয়েন্টগুলি বাদ এবং খালি রয়েছে।

[( "A4", "W"), ( "B2", "খ"), ( "B4", "খ"), ( "C4", "খ"), ( "D1", "W") ( "D2", "W"), ( "E3", "W"), ( "E4", "W"), ( "E5", "W"), ( "F2", "খ") , ("f4", "খ"), ("f6", "খ"), ("জি 4", "ডাব্লু")] -> 2
[( "A1", "খ"), ( "A4", "খ"), ( "A7", "খ"), ( "B4", "খ"), ( "C4", "খ") , ("ডি 3", "ডাব্লু"), ("ডি 2", "ডাব্লু"), ("ডি 1", "ডাব্লু")] -> 3
[] -> 0
[("বি 4", "বি"), ("এ 4", বি "), (" সি 4 ", ডব্লু")] -> 0
[("বি 4", "বি"), ("এ 4", বি "), (" সি 4 ", বি")] -> 1
[("a1", "খ"), ("a4", "খ"), ("a7", "খ"), ("বি 2", "খ"), ("বি 4", "বি") , ("বি 6", "বি"), ("সি 3", "বি"), ("সি 4", "বি"), ("সি 5", "বি"), ("ই 3", "ডাব্লু") , ("ই 4", "ডাব্লু"), ("ই 5", "ডাব্লু"), ("এফ 2", "ডাব্লু"), ("এফ 4", "ডাব্লু"), ("এফ 6", "ডাব্লু") , ("g1", "w"), ("g4", "ডাব্লু"), ("জি 7", "ডাব্লু")] -> 8

শুভ কোডিং!


সম্পর্কিত - একটি সামান্য।
insertusernamehere

আমি ধরে নিয়েছি যে রঙগুলি অবশ্যই সংযুক্ত হওয়ার সাথে সাথে সংযুক্ত হতে হবে তবে এটি কিছুটা অস্পষ্ট। যেমন d2, d3, d5 একই রঙের একটি মিল গঠন?
রবার্ট বেনসন

@ রবার্টবেসন না এটি এর কারণ নয় d3এবং d5সংযুক্ত নয়। বিধি বলে, Three men of the same color form a mill when they are in a straight row of connected points.। আমি এই বিভাগে কিছু উদাহরণ যুক্ত করেছি এটি পরিষ্কার করার জন্য, মন্তব্যের জন্য ধন্যবাদ!
ডেনকার

উত্তর:


4

এপিএল (ডায়ালগ ক্লাসিক) , 26 25 বাইট

-1 ফ্রাউনফ্রোগকে ধন্যবাদ

≢{|∊(+/⍵⍪↓⍵),⊢/4 2⍴+⌿⍵}∩≢

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

আর্গুমেন্টটি 1(কালো), ¯1(সাদা) এবং 0(খালি) একটি 3x3x3 অ্যারে । প্রথম মাত্রাটি ঘন ঘন স্কোয়ারগুলির নীড়ের গভীরতার সাথে। অন্যান্য দুটি মাত্রা উল্লম্ব এবং অনুভূমিক অক্ষের সাথে রয়েছে।

000---------001---------002
 |           |           |
 |  100-----101-----102  |
 |   |       |       |   |
 |   |  200-201-202  |   |
 |   |   |       |   |   |
010-110-210     212-112-012
 |   |   |       |   |   |
 |   |  220-221-222  |   |
 |   |       |       |   |
 |  120-----121-----122  |
 |           |           |
020---------021---------022

আমাদের একটি মিল রয়েছে যখনই কোনও অক্ষের সাথে সমষ্টি একটি 3বা একটি ফল দেয় ¯3তবে প্রথম অক্ষটি বরাবর যোগ করার সময় আমাদের অবশ্যই চারটি কোণটি বাতিল করতে হবে।

{} অন্তর্নিহিত যুক্তি সহ একটি ফাংশন

↓⍵হয় বিভক্ত - আমাদের ক্ষেত্রে এটি নেস্টেড দৈর্ঘ্য -3 ভেক্টর একটি 3x3 ম্যাট্রিক্স মধ্যে একটি 3x3x3 ঘনক্ষেত্র সক্রিয়

⍵⍪↓⍵ আসল কিউব নেয় এবং এর নীচে 3-ভেক্টরের 3x3 ম্যাট্রিক্সকে আটকায়, সুতরাং আমরা স্কেলার এবং ভেক্টরগুলির 4x3x3 মিশ্র অ্যারে পাই

+/শেষ অক্ষ বরাবর যোগফল; এটি শেষ অক্ষ ( +/⍵) এর সাথে মূল ঘনক্ষেত্রের সংমিশ্রনের এবং আমরা বিভক্ত হওয়ার কারণে মাঝের অক্ষ বরাবর সংযুক্ত করার সংযুক্ত প্রভাব ফেলেছি ( +/↓⍵)

এখন আমাদের অবশ্যই প্রথম অক্ষের জন্য বিশেষ কেসটি যত্ন নেওয়া উচিত।

+⌿⍵ প্রথম অক্ষের সাথে যোগফলগুলি, 3x3 ম্যাট্রিক্স ফেরত

4 2⍴ তবে আমাদের অবশ্যই কোণগুলি গণনা করতে হবে না, সুতরাং আমরা এটির মতো 4x2 ম্যাট্রিক্সকে পুনরায় আকার দিন:

ABC      AB
DEF  ->  CD
GHI      EF
         GH  ("I" disappears)

এখন আমরা কেবল সর্বশেষ কলামে আগ্রহী ( BDFH), তাই আমরা প্রতিমাটি ব্যবহার করি⊢/

,BDFH২ য় এবং তৃতীয় অক্ষের জন্য আমরা ম্যাট্রিক্সের সাথে সম্মতি জানাই ( BDFHএবং ম্যাট্রিক্স উভয়েরই 4 এর একটি শীর্ষ মাত্রা রয়েছে)

আমরা এ পর্যন্ত প্রাপ্ত সমস্ত কিছুকে একটি একক ভেক্টরে ফ্ল্যাট করে তোলে

| পরম মান গ্রহণ করে

{ }∩≢ কেবল থ্রেস ফিল্টার করে - ইনপুটটির দৈর্ঘ্য (≢) সর্বদা 3

তাদের গণনা


হেই, আমি ঠিক সেটাই প্রস্তাব করছিলাম।
অ্যাডম

আপনি কি এক মুহুর্তের জন্য chat.stackexchange.com/rooms/52405/apl এ যোগ দিতে পারবেন ?
অ্যাডম

≢{|∊(+/⍵⍪↓⍵),⊢/4 2⍴+⌿⍵}∩≢একটি খাটো
হ'ল

টুইটারে সম্পাদিত
ngn

4

জাভাস্ক্রিপ্ট (ES6), 276 228 125 117 105 বাইট

a=>btoa`i·yø!9%z)ª»-ºü1j;ÝÈ%¥·¡ªÜ"·ç¹Ê1`.replace(/.../g,b=>(a[b[0]]+a[b[1]]+a[b[2]])/3&1||'').length

(উপরের কিছু অ-ছাপ ছাপানো অক্ষর রয়েছে যা এখানে প্রদর্শিত হবে না, তাই এখানে btoaঅনুলিপিটি অনুলিপি করা ও চালানো যায় না)

a=>'abcdefghijklmnopqrstuvwxajvdksglpbehqtwimrfnucox'.replace(/.../g,b=>(a[b[0]]+a[b[1]]+a[b[2]])/3&1||'').length

মিল গ্রুপ কীগুলির সাথে মেলে এমন লেটার ট্রিপল্টে একটি রেফারেন্স স্ট্রিং ভেঙে দেয়। ইনপুটটি কোনও অবজেক্টের আকারে রয়েছে, যেখানে কীগুলি হ'ল অক্ষর হয় a-x, নীচে বাম থেকে শুরু করে উপরের ডানদিকে শেষ হয়, প্রথমে বাম থেকে ডানে সরে যায়। মানগুলি 1সাদা, -1কালো এবং 0খালি জন্য।

উদাহরণ

{b:1,d:-1,e:1,f:-1,i:1,k:-1,l:-1,m:1,n:-1,r:1,u:-1} => 2
{j:1,d:-1,k:-1,l:-1,b:1,e:1,i:1,m:1,r:1,f:-1,n:-1,u:-1,o:1} => 2
{a:-1,j:-1,v:-1,k:-1,l:-1,h:1,e:1,b:1} => 3
{} => 0
{k:-1,j:-1,l:1} => 0
{k:-1,j:-1,l:1} => 1
{a:-1,j:-1,v:-1,d:-1,k:-1,s:-1,g:-1,l:-1,p:-1,i:1,m:1,r:1,f:1,n:1,u:1,c:1,o:1,x:1} => 8

এই উদাহরণগুলি ওপির উদাহরণ থেকে নেওয়া হয়েছে, লেটার-কী এবং নম্বর-মান অবজেক্টে রূপান্তরিত হয়েছে। প্রথমটি উদাহরণ চিত্র থেকে, অন্যরা উদাহরণ সেট থেকে।


1
সুন্দর কাজ! আপনি বড় স্ট্রিং দিয়ে সংকোচন করতে পারেন atob
ETH প্রোডাকশনগুলি

@ ইথ প্রডাকশন ধন্যবাদ! মনে হচ্ছে এটি ছাপানো অক্ষরবিহীন অক্ষরগুলি ব্যবহার করছে, সুতরাং আমি btoaপাশাপাশি একটিও অন্তর্ভুক্ত করব । এছাড়াও আরও কিছু উন্নতি পাওয়া গেছে যা এটিকে আরও কমিয়ে আনে।
Mwr247

2

গণিত, 217 131 বাইট

যদিও আমি নিশ্চিত যে এটি বিশেষভাবে প্রতিযোগিতামূলক নয়, এখানে আপনার জন্য একটি এন্ট্রি রয়েছে।

Count[Total/@{{a1,d1,g1},{b2,d2,f2},{c3,d3,e3},{a4,b4,c4},{e4,f4,g4},{c5,d5,e5},{b6,d6,f6},{a7,d7,g7},{a1,a4,a7},{b2,b4,b6},{c3,c4,c5},{d1,d2,d3},{d5,d6,d7},{e3,e4,e5},{f2,f4,f6},{g1,g4,g7}}/.#/.{"w"->1,"b"->2},3|6]&

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

{a4 -> "w", b2 -> "b", b4 -> "b", c4 -> "b", d1 -> "w", d2 -> "w", e3 -> "w", e4 -> "w", e5 -> "w", f2 -> "b", f4 -> "b", f6 -> "b", g4 -> "w"}

একক-চরিত্রের স্থানাঙ্কের নামগুলি তুচ্ছভাবে 51 টি অক্ষর থেকে গল্ফ দেয়, এটি একটি 166 বাইট সমাধান করে। "ডাব্লু" এবং "বি" গল্ফের চেয়ে আরও 17 টি অক্ষর বাদ দিয়ে 1 এবং 2 খেলোয়াড়দের নামকরণ।

সুতরাং আমরা পেতে

Count[Total/@{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,a,j,v,d,k,s,g,l,p,b,e,h,q,t,w,r,i,m,f,u,n,c,o,x}~Partition~3,3|6]/.#&

যদি আমি ইনপুট ফর্ম্যাটিংয়ের নিয়মগুলি সঠিকভাবে বুঝতে পারি তবে আপনি সেগুলি এটিকে 1এবং হিসাবে নিতে সক্ষম হবেন 2। উদাহরণটি ব্যবহৃত হয়েছে wএবং b, তবে আমি মোটামুটি নিশ্চিত আমরা এটির মধ্যে সীমাবদ্ধ নেই।
Mwr247

@ Mwr247 আপনি ঠিক বলেছেন আপনি যে কোনও ফর্ম্যাট ব্যবহার করতে পারেন, যতক্ষণ না এটি অতিরিক্ত তথ্য যোগ না করে। আমি বাসায় এলে বিষয়টি পরিষ্কার করব।
ডেনকার

1

এপিএল (ডায়ালগ ইউনিকোড) , 50 বাইট

"অবজেক্টস সলিউশন"

@ এনএনজি এর সমাধানের চেয়ে দীর্ঘ (২৯ টি অক্ষর) থাকাকালীন এটি সম্পূর্ণ ভিন্ন পদ্ধতির ব্যবহার করে: ইনপুটটিতে সেই সমাধানের মতো সামগ্রিক কাঠামো থাকে তবে সমস্ত স্লট বস্তু হিসাবে প্রতিনিধিত্ব করা হয়। খালি স্লটগুলি (অস্তিত্বহীন কেন্দ্র কলাম সহ) খালি অবজেক্ট হতে হবে। সমস্ত কৃষ্ণাঙ্গ পুরুষদের অবশ্যই "কৃষ্ণাঙ্গ" বস্তুর উল্লেখ থাকতে হবে এবং সমস্ত সাদা পুরুষদের অবশ্যই "সাদা মানুষ" বস্তুর উল্লেখ থাকতে হবে। সমস্ত বস্তু ঐচ্ছিকরূপে চমৎকার থাকতে পারে ডি isplay এফ ORM গুলি পাঠযোগ্যতা জন্য, এবং তাই কেন্দ্র কলাম ঐচ্ছিকরূপে অদৃশ্য করা যেতে পারে।

+/1=(≢¨(,∪/,∪⌿⍤2),(⊢/4 2⍴∪⌿))

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

+/ যোগফল

1=() ভিতরে আছে

≢¨() এর ট্যালি

  , র্যাভেলড (সমতল)

  ∪/ অনন্য সেট জুড়ে

  , সংক্ষিপ্ত

  ∪⌿⍤2 অনন্য সেট ডাউন

,(... ) থেকে ঘনিভূত

  ⊢/ এর ডানদিকের কলাম

  4 2⍴ , চারটি সারি এবং দুটি কলামে পুনরায় আকার দেওয়া হয়েছে,

  ∪⌿ অনন্য কলামার সেট

একটি এপল অপারেটর, যেমন এজিএল ( ä) সরবরাহ করে, দৈর্ঘ্যটি 27 টি অক্ষরে নামিয়ে আনবে

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