একটি সলিটায়ার দাবা ধাঁধা সমাধান করুন


12

সম্প্রতি, সলিটায়ার দাবা নামে পরিচিত একটি ধাঁধা গেমের সাথে আমার পরিচয় হয়েছিল । আমি এখানে বিধি সংক্ষিপ্তসার করব:

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

কিং (কে)

K * . . | * K * . | * * * .
* * . . | * * * . | * K * .
. . . . | . . . . | * * * .
. . . . | . . . . | . . . .

রানী (প্রশ্ন)

Q * * * | * Q * * | * * * .
* * . . | * * * . | * Q * *
* . * . | . * . * | * * * .
* . . * | . * . . | . * . *

রুক (আর)

R * * * | * R * * | . * . .
* . . . | . * . . | * R * *
* . . . | . * . . | . * . .
* . . . | . * . . | . * . .

বিশপ (বি)

B . . . | . B . . | * . * .
. * . . | * . * . | . B . .
. . * . | . . . * | * . * .
. . . * | . . . . | . . . *

নাইট (এন)

N . . . | . N . . | . . . *
. . * . | . . . * | . N . .
. * . . | * . * . | . . . *
. . . . | . . . . | * . * .

বন্ধক (পি)

P . . . | . P . . | * . * .
. * . . | * . * . | . P . .
. . . . | . . . . | * . * .
. . . . | . . . . | . . . .

ইনপুট আউটপুট

রেফারেন্সের জন্য, সলিটায়ার দাবা ওয়েব পৃষ্ঠা থেকে নমুনা ধাঁধাটি ব্যবহৃত হবে:

. . . .
. B . .
R P . .
. . . N

সমাধানটি হ'ল নাইটের সাথে প্যাড নেওয়া, তারপরে নাইটটি নিয়ে দালালকে নিয়ে নেওয়া, এবং অবশেষে দালালকে নিয়ে বিশপকে নিয়ে যাওয়া।

ইনপুট

ইনপুট অবশ্যই তিনটি ফর্মের একটিতে থাকতে হবে; আপনার জন্য সবচেয়ে সুবিধাজনক একটি বেছে নিতে আপনি নির্দ্বিধায়।

  • অক্ষরের একটি স্ট্রিং যেমন .....B..RP.....Nনিউলাইনগুলি সহ বা ছাড়া without ফাঁকা জায়গার প্রতিনিধিত্বকারী চরিত্রটি এমন কোনও অক্ষর হতে পারে যা একটির নয় KQRBNP
  • তালিকার একটি তালিকা (বা সমতল তালিকা) যেখানে উপাদানগুলি অক্ষর বা সংখ্যা, তেমন: [['.', '.', '.', '.'], ['.', 'B', '.', '.'], ['R', 'P', '.', '.'], ['.', '.', '.', 'N']]বা [[0, 0, 0, 0], [0, 4, 0, 0], [3, 6, 0, 0], [0, 0, 0, 5]]। প্রাক্তনদের জন্য, ফাঁকা জায়গার প্রতিনিধিত্বকারী চরিত্র এমন কোনও কিছু হতে পারে যা একটি নয় KQRBNP। পরবর্তীগুলির জন্য, আমি টুকরো টুকরোটি দিয়েছি যা আমার আগের চলনগুলির তালিকায় তাদের পদমর্যাদার সাথে মিলিত হয় ( 1একজন রাজা, 4একজন বিশপ, 6একটি গিরি ইত্যাদি)। আপনি নম্বর পরিবর্তন করতে নির্দ্বিধায়
  • স্থানাঙ্ক একটি তালিকা যেখানে প্রতিটি উপাদান ফর্ম আছে [x, y, 'c'], তাই পছন্দ: [[1, 2, 'B'], [0, 1, 'R'], [1, 1, 'P'], [3, 0, 'N']]

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

আউটপুট

আউটপুট অবশ্যই চলার ক্রম বা বোর্ডের রাজ্যের ক্রম হতে হবে। কিছু ধাঁধা একাধিক সমাধান আছে; আপনি তাদের এক বা সমস্ত আউটপুট করতে পারেন। আপনি যদি বোর্ডের রাজ্যগুলির একটি ক্রম আউটপুট চয়ন করেন, তবে প্রতিটি বোর্ড অবশ্যই তাদের মধ্যে একটি যুক্তিসঙ্গত বিভাজক (যেমন নিউলাইনস) সহ তিনটি ইনপুট ফর্ম্যাটগুলির একটি হতে হবে।

আপনি আউটপুট প্যাচসমূহ একটি ক্রম চয়ন করেন তাহলে, তারা জোড়া তুল্য, তাই মত জোড়া একটি তালিকা হিসাবে প্রকাশ করতে হবে: [[[3,0], [1,1]], [[0,1], [1,1]], [[1,1], [1,2]]][0,0]নীচের বাম কোণে প্রতিনিধিত্ব করে এবং আবার, পৃথক করা এবং অক্ষরগুলি পৃথক করা কোনও যুক্তিসঙ্গত পছন্দ হতে পারে।

যদি প্রদত্ত বোর্ডটি সমাধান করা যায় না, তবে কোনও মিথ্যা মান আউটপুট করুন ( 0, খালি স্ট্রিং ইত্যাদি)। যদি প্রদত্ত বোর্ডের দুটি টুকরোরও কম থাকে, তবে আচরণটি নির্ধারিত।

পরীক্ষার কেস

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

ইনপুট 1:

. . . N
. . . .
. R . .
. . B .

...N.....R....B.

[['.', '.', '.', 'N'], ['.', '.', '.', '.'], ['.', 'R', '.', '.'], ['.', '.', 'B', '.']]

[[0, 0, 0, 5], [0, 0, 0, 0], [0, 3, 0, 0], [0, 0, 4, 0]]

[[3, 3, 'N'], [1, 1, 'R'], [2, 0, 'B']]

আউটপুট 1:

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

ইনপুট 2:

. . . .
. B . .
R P . .
. . . N

.....B..RP.....N

[['.', '.', '.', '.'], ['.', 'B', '.', '.'], ['R', 'P', '.', '.'], ['.', '.', '.', 'N']]

[[0, 0, 0, 0], [0, 4, 0, 0], [3, 6, 0, 0], [0, 0, 0, 5]]

[[1, 2, 'B'], [0, 1, 'R'], [1, 1, 'P'], [3, 0, 'N']]

আউটপুট 2:

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

ইনপুট 3:

. N R .
B . . .
N . . B
. . P .

.NR.B...N..B..P.

[['.', 'N', 'R', '.'], ['B', '.', '.', '.'], ['N', '.', '.', 'B'], ['.', '.', 'P', '.']]

[[0, 5, 3, 0], [4, 0, 0, 0], [5, 0, 0, 4], [0, 0, 6, 0]]

[[1, 3, 'N'], [2, 3, 'R'], [0, 2, 'B'], [0, 1, 'N'], [3, 1, 'B'], [2, 0, 'P']]

আউটপুট 3:

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

ইনপুট 4:

. . . N
. . . R
R B B .
N P P .

...N...RRBB.NPP.

[['.', '.', '.', 'N'], ['.', '.', '.', 'R'], ['R', 'B', 'B', '.'], ['N', 'P', 'P', '.']]

[[0, 0, 0, 5], [0, 0, 0, 3], [3, 4, 4, 0], [5, 6, 6, 0]]

[[3, 3, 'N'], [3, 2, 'R'], [0, 1, 'R'], [1, 1, 'B'], [2, 1, 'B'], [0, 0, 'N'], [1, 0, 'P'], [2, 0, 'P']]

আউটপুট 4:

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

ইনপুট 5:

P . . .
. R . .
R . R .
. R . .

P....R..R.R..R..

[['P', '.', '.', '.'], ['.', 'R', '.', '.'], ['R', '.', 'R', '.'], ['.', 'R', '.', '.']]

[[6, 0, 0, 0], [0, 3, 0, 0], [3, 0, 3, 0], [0, 3, 0, 0]]

[[0, 3, 'P'], [1, 2, 'R'], [0, 1, 'R'], [2, 1, 'R'], [1, 0, 'R']]

আউটপুট 5:

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

ইনপুট 6:

. P . N
K . . .
. . B .
. . R Q

.P.NK.....B...RQ

[['.', 'P', '.', 'N'], ['K', '.', '.', '.'], ['.', '.', 'B', '.'], ['.', '.', 'R', 'Q']]

[[0, 6, 0, 5], [1, 0, 0, 0], [0, 0, 4, 0], [0, 0, 3, 2]]

[[1, 3, 'P'], [3, 3, 'N'], [0, 2, 'K'], [2, 1, 'B'], [2, 0, 'R'], [3, 0, 'Q']]

আউটপুট 6:

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

আউটপুট ১-এ সামান্য ভুল আছে, এটি হওয়া উচিত [[[২,০], [১,১]], [[১,১], [৩.৩]]]
ড্যামিয়েন

এছাড়াও, অতিরিক্ত নোট হিসাবে, রাজা সত্যই একজন মান (ক্যাপচার হতে পারে তবে একই পদক্ষেপের নিয়ম রয়েছে) (পরী দাবার নাম মজাদার)
ধ্বংসাত্মক লেবু

@ ডামিয়েন: ভাল জায়গা! ধন্যবাদ।
এল'েন্ডিয়া স্টারম্যান

আউটপুটে টুকরো চিহ্নটি অন্তর্ভুক্ত করা কি ঠিক আছে? যেমন:[["R", [2, 0], [1, 1]], ["N", [1, 1], [3, 3]]]
আর্নল্ড

@ আরনাউল্ড: হ্যাঁ, ঠিক আছে would কিছুটা অদ্ভুত যদিও আপনি ক্যাপচার করা অংশটিকে তালিকাভুক্ত করছেন, ক্যাপচারিং টুকরা নয়।
এল'েন্ডিয়া স্টারম্যান

উত্তর:


10

হাস্কেল, 226 195 191 188 বাইট

সমস্ত সমাধানের একটি তালিকা ফেরত দেয়। প্রতিটি সমাধান চলনের একটি তালিকা। কোনও সমাধান না হলে খালি তালিকা ফিরিয়ে দেয়।

লিনকে ধন্যবাদ 4 বাইট সংরক্ষণ করা হয়েছে।

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

m"P"=[2]
m"N"=[5]
m"K"=[1,2]
m"R"=[1,4,9]
m"B"=[2,8,18]
m _=m"B"++m"R"
l%x=[z|z<-l,fst z/=x]
f[_]=[[]]
f l=[(i,j):r|(i@(s,t),a)<-l,(j@(u,v),_)<-l,(s-u)^2+(t-v)^2`elem`m a,r<-f$(j,a):l%i%j]

ব্যবহার:

main = do 
    print $ f [((3, 3), "N"), ((1, 1), "R")]
    putStrLn""
    mapM_ print $ f [((3, 3), "N"), ((1, 1), "R"), ((2, 0), "B")]
    putStrLn""
    mapM_ print $ f [((1, 2), "B"), ((0, 1), "R"), ((1, 1), "P"), ((3, 0), "N")]
    putStrLn""
    mapM_ print $ f [((1, 3), "P"), ((3, 3), "N"), ((0, 2), "K"), ((2, 1), "B"), ((2, 0), "R"), ((3, 0), "Q")]

আউটপুট:

[]

[((2,0),(1,1)),((1,1),(3,3))]

[((3,0),(1,1)),((0,1),(1,1)),((1,1),(1,2))]

[((1,3),(0,2)),((3,3),(2,1)),((2,1),(0,2)),((3,0),(2,0)),((2,0),(0,2))]
[((1,3),(0,2)),((3,3),(2,1)),((3,0),(2,1)),((2,1),(2,0)),((2,0),(0,2))]
[((1,3),(0,2)),((3,3),(2,1)),((3,0),(2,0)),((2,0),(0,2)),((2,1),(0,2))]
[((1,3),(0,2)),((3,3),(2,1)),((3,0),(2,0)),((2,1),(0,2)),((2,0),(0,2))]
[((1,3),(0,2)),((2,0),(2,1)),((3,0),(2,1)),((3,3),(2,1)),((2,1),(0,2))]
[((1,3),(0,2)),((3,0),(2,1)),((2,0),(2,1)),((3,3),(2,1)),((2,1),(0,2))]
[((1,3),(0,2)),((3,0),(2,0)),((2,0),(0,2)),((3,3),(2,1)),((2,1),(0,2))]
[((1,3),(0,2)),((3,0),(2,0)),((2,0),(2,1)),((3,3),(2,1)),((2,1),(0,2))]
[((1,3),(0,2)),((3,0),(2,0)),((3,3),(2,1)),((2,1),(0,2)),((2,0),(0,2))]
[((1,3),(0,2)),((3,0),(2,0)),((3,3),(2,1)),((2,0),(0,2)),((2,1),(0,2))]
[((3,3),(2,1)),((2,1),(1,3)),((3,0),(2,0)),((2,0),(0,2)),((0,2),(1,3))]
[((3,3),(2,1)),((2,1),(0,2)),((1,3),(0,2)),((3,0),(2,0)),((2,0),(0,2))]
[((3,3),(2,1)),((2,1),(0,2)),((3,0),(2,0)),((2,0),(0,2)),((0,2),(1,3))]
[((3,3),(2,1)),((2,1),(0,2)),((3,0),(2,0)),((2,0),(0,2)),((1,3),(0,2))]
[((3,3),(2,1)),((2,1),(0,2)),((3,0),(2,0)),((1,3),(0,2)),((2,0),(0,2))]
[((3,3),(2,1)),((1,3),(0,2)),((2,1),(0,2)),((3,0),(2,0)),((2,0),(0,2))]
[((3,3),(2,1)),((1,3),(0,2)),((3,0),(2,1)),((2,1),(2,0)),((2,0),(0,2))]
[((3,3),(2,1)),((1,3),(0,2)),((3,0),(2,0)),((2,0),(0,2)),((2,1),(0,2))]
[((3,3),(2,1)),((1,3),(0,2)),((3,0),(2,0)),((2,1),(0,2)),((2,0),(0,2))]
[((3,3),(2,1)),((3,0),(2,1)),((2,1),(2,0)),((2,0),(0,2)),((0,2),(1,3))]
[((3,3),(2,1)),((3,0),(2,1)),((2,1),(2,0)),((2,0),(0,2)),((1,3),(0,2))]
[((3,3),(2,1)),((3,0),(2,1)),((2,1),(2,0)),((1,3),(0,2)),((2,0),(0,2))]
[((3,3),(2,1)),((3,0),(2,1)),((1,3),(0,2)),((2,1),(2,0)),((2,0),(0,2))]
[((3,3),(2,1)),((3,0),(2,0)),((2,0),(0,2)),((0,2),(1,3)),((2,1),(1,3))]
[((3,3),(2,1)),((3,0),(2,0)),((2,0),(0,2)),((2,1),(0,2)),((1,3),(0,2))]
[((3,3),(2,1)),((3,0),(2,0)),((2,0),(0,2)),((2,1),(1,3)),((0,2),(1,3))]
[((3,3),(2,1)),((3,0),(2,0)),((2,0),(0,2)),((1,3),(0,2)),((2,1),(0,2))]
[((3,3),(2,1)),((3,0),(2,0)),((2,1),(1,3)),((2,0),(0,2)),((0,2),(1,3))]
[((3,3),(2,1)),((3,0),(2,0)),((2,1),(0,2)),((2,0),(0,2)),((0,2),(1,3))]
[((3,3),(2,1)),((3,0),(2,0)),((2,1),(0,2)),((2,0),(0,2)),((1,3),(0,2))]
[((3,3),(2,1)),((3,0),(2,0)),((2,1),(0,2)),((1,3),(0,2)),((2,0),(0,2))]
[((3,3),(2,1)),((3,0),(2,0)),((1,3),(0,2)),((2,0),(0,2)),((2,1),(0,2))]
[((3,3),(2,1)),((3,0),(2,0)),((1,3),(0,2)),((2,1),(0,2)),((2,0),(0,2))]
[((0,2),(1,3)),((2,1),(3,0)),((2,0),(3,0)),((3,0),(3,3)),((3,3),(1,3))]
[((0,2),(1,3)),((2,0),(2,1)),((3,0),(2,1)),((3,3),(2,1)),((2,1),(1,3))]
[((0,2),(1,3)),((3,0),(2,1)),((2,0),(2,1)),((3,3),(2,1)),((2,1),(1,3))]
[((0,2),(1,3)),((3,0),(2,0)),((2,0),(2,1)),((3,3),(2,1)),((2,1),(1,3))]
[((2,1),(3,0)),((0,2),(1,3)),((2,0),(3,0)),((3,0),(3,3)),((3,3),(1,3))]
[((2,1),(3,0)),((2,0),(3,0)),((3,0),(3,3)),((3,3),(1,3)),((0,2),(1,3))]
[((2,1),(3,0)),((2,0),(3,0)),((3,0),(3,3)),((0,2),(1,3)),((3,3),(1,3))]
[((2,1),(3,0)),((2,0),(3,0)),((0,2),(1,3)),((3,0),(3,3)),((3,3),(1,3))]
[((2,0),(2,1)),((1,3),(0,2)),((3,0),(2,1)),((3,3),(2,1)),((2,1),(0,2))]
[((2,0),(2,1)),((0,2),(1,3)),((3,0),(2,1)),((3,3),(2,1)),((2,1),(1,3))]
[((2,0),(2,1)),((3,0),(2,1)),((1,3),(0,2)),((3,3),(2,1)),((2,1),(0,2))]
[((2,0),(2,1)),((3,0),(2,1)),((3,3),(2,1)),((2,1),(1,3)),((0,2),(1,3))]
[((2,0),(2,1)),((3,0),(2,1)),((3,3),(2,1)),((2,1),(0,2)),((1,3),(0,2))]
[((2,0),(2,1)),((3,0),(2,1)),((3,3),(2,1)),((1,3),(0,2)),((2,1),(0,2))]
[((2,0),(2,1)),((3,0),(2,1)),((3,3),(2,1)),((0,2),(1,3)),((2,1),(1,3))]
[((2,0),(2,1)),((3,0),(2,1)),((0,2),(1,3)),((3,3),(2,1)),((2,1),(1,3))]
[((3,0),(3,3)),((3,3),(1,3)),((1,3),(0,2)),((0,2),(2,0)),((2,0),(2,1))]
[((3,0),(2,1)),((2,1),(2,0)),((2,0),(0,2)),((0,2),(1,3)),((1,3),(3,3))]
[((3,0),(2,1)),((1,3),(0,2)),((2,0),(2,1)),((3,3),(2,1)),((2,1),(0,2))]
[((3,0),(2,1)),((0,2),(1,3)),((2,0),(2,1)),((3,3),(2,1)),((2,1),(1,3))]
[((3,0),(2,1)),((2,0),(2,1)),((1,3),(0,2)),((3,3),(2,1)),((2,1),(0,2))]
[((3,0),(2,1)),((2,0),(2,1)),((3,3),(2,1)),((2,1),(1,3)),((0,2),(1,3))]
[((3,0),(2,1)),((2,0),(2,1)),((3,3),(2,1)),((2,1),(0,2)),((1,3),(0,2))]
[((3,0),(2,1)),((2,0),(2,1)),((3,3),(2,1)),((1,3),(0,2)),((2,1),(0,2))]
[((3,0),(2,1)),((2,0),(2,1)),((3,3),(2,1)),((0,2),(1,3)),((2,1),(1,3))]
[((3,0),(2,1)),((2,0),(2,1)),((0,2),(1,3)),((3,3),(2,1)),((2,1),(1,3))]
[((3,0),(2,0)),((2,0),(0,2)),((0,2),(1,3)),((3,3),(2,1)),((2,1),(1,3))]
[((3,0),(2,0)),((2,0),(0,2)),((1,3),(0,2)),((3,3),(2,1)),((2,1),(0,2))]
[((3,0),(2,0)),((2,0),(0,2)),((3,3),(2,1)),((2,1),(0,2)),((1,3),(0,2))]
[((3,0),(2,0)),((2,0),(0,2)),((3,3),(2,1)),((2,1),(1,3)),((0,2),(1,3))]
[((3,0),(2,0)),((2,0),(0,2)),((3,3),(2,1)),((0,2),(1,3)),((2,1),(1,3))]
[((3,0),(2,0)),((2,0),(0,2)),((3,3),(2,1)),((1,3),(0,2)),((2,1),(0,2))]
[((3,0),(2,0)),((2,0),(2,1)),((1,3),(0,2)),((3,3),(2,1)),((2,1),(0,2))]
[((3,0),(2,0)),((2,0),(2,1)),((3,3),(2,1)),((2,1),(1,3)),((0,2),(1,3))]
[((3,0),(2,0)),((2,0),(2,1)),((3,3),(2,1)),((2,1),(0,2)),((1,3),(0,2))]
[((3,0),(2,0)),((2,0),(2,1)),((3,3),(2,1)),((1,3),(0,2)),((2,1),(0,2))]
[((3,0),(2,0)),((2,0),(2,1)),((3,3),(2,1)),((0,2),(1,3)),((2,1),(1,3))]
[((3,0),(2,0)),((2,0),(2,1)),((0,2),(1,3)),((3,3),(2,1)),((2,1),(1,3))]
[((3,0),(2,0)),((1,3),(0,2)),((2,0),(0,2)),((3,3),(2,1)),((2,1),(0,2))]
[((3,0),(2,0)),((1,3),(0,2)),((2,0),(2,1)),((3,3),(2,1)),((2,1),(0,2))]
[((3,0),(2,0)),((1,3),(0,2)),((3,3),(2,1)),((2,1),(0,2)),((2,0),(0,2))]
[((3,0),(2,0)),((1,3),(0,2)),((3,3),(2,1)),((2,0),(0,2)),((2,1),(0,2))]
[((3,0),(2,0)),((3,3),(2,1)),((2,1),(1,3)),((2,0),(0,2)),((0,2),(1,3))]
[((3,0),(2,0)),((3,3),(2,1)),((2,1),(0,2)),((2,0),(0,2)),((0,2),(1,3))]
[((3,0),(2,0)),((3,3),(2,1)),((2,1),(0,2)),((2,0),(0,2)),((1,3),(0,2))]
[((3,0),(2,0)),((3,3),(2,1)),((2,1),(0,2)),((1,3),(0,2)),((2,0),(0,2))]
[((3,0),(2,0)),((3,3),(2,1)),((2,0),(0,2)),((0,2),(1,3)),((2,1),(1,3))]
[((3,0),(2,0)),((3,3),(2,1)),((2,0),(0,2)),((2,1),(0,2)),((1,3),(0,2))]
[((3,0),(2,0)),((3,3),(2,1)),((2,0),(0,2)),((2,1),(1,3)),((0,2),(1,3))]
[((3,0),(2,0)),((3,3),(2,1)),((2,0),(0,2)),((1,3),(0,2)),((2,1),(0,2))]
[((3,0),(2,0)),((3,3),(2,1)),((1,3),(0,2)),((2,1),(0,2)),((2,0),(0,2))]
[((3,0),(2,0)),((3,3),(2,1)),((1,3),(0,2)),((2,0),(0,2)),((2,1),(0,2))]
[((3,0),(2,0)),((0,2),(1,3)),((2,0),(2,1)),((3,3),(2,1)),((2,1),(1,3))]

1
সুন্দর সমাধান! ইনলাইনিং !কয়েকটি বাইট সংরক্ষণ করে:f l=[(i,j):r|(i@(s,t),a)<-l,(j@(u,v),_)<-l%i,r<-f$(j,a):l%i%j,(s-u)^2+(t-v)^2`elem`m a]
লিন

নিস! আউটপুট কেমন দেখাচ্ছে?
এল'েন্ডিয়া স্টারম্যান

[[((2,0),(1,1)),((1,1),(3,3))]]। সমাধানগুলির একটি তালিকা, যেখানে একটি সমাধান হল চালগুলির তালিকাগুলি, যেখানে একটি পদক্ষেপ ((x1,y1),(x2,y2))
লিন

1
m"P"=[1]এটা 2 হবে না?
ngn

হ্যা অবশ্যই! ধন্যবাদ
ড্যামিয়েন

1

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

এটি (এখনও) কিছু অনুকূলকরণ প্রয়োজন। তবে এখানে প্রথম য় তৃতীয় চেষ্টা রয়েছে।

b=>{for(n=-4,b=[...b];n<36;b.splice(n+=8,0,0,0,0,0));l=[];(M=(P,u,Z,z,L)=>{for(P=u=n;u--;)
for((z=[640,164928,641,259,899,898]["PNBRQK".indexOf(b[u])])&&P++,L=1,s=z&1;z>>=1;L++)for(Z
=u;z&1&!((Z+=L)&n)&&(b[Z]<'A'||!(M(l.push([b[Z],[u&3,31-u>>3],b[u],[Z&3,31-Z>>3]]),b[Z]=b[u
],b[u]='.'),b[u]=b[Z],b[Z]=l.pop()[0]))&&s||(L=-L,Z=u,L<0););P-37||console.log(l)})()}

আউটপুট ফরমেট:

// Puzzle #1
[["B", [2, 0], "R", [1, 1]], ["B", [1, 1], "N", [3, 3]]]

উদাহরণ:

let F =
b=>{for(n=-4,b=[...b];n<36;b.splice(n+=8,0,0,0,0,0));l=[];(M=(P,u,Z,z,L)=>{for(P=u=n;u--;)for((z=[640,164928,641,259,899,898]["PNBRQK".indexOf(b[u])])&&P++,L=1,s=z&1;z>>=1;L++)for(Z=u;z&1&!((Z+=L)&n)&&(b[Z]<'A'||!(M(l.push([b[Z],[u&3,31-u>>3],b[u],[Z&3,31-Z>>3]]),b[Z]=b[u],b[u]='.'),b[u]=b[Z],b[Z]=l.pop()[0]))&&s||(L=-L,Z=u,L<0););P-37||console.log(l)})()}

console.log("Puzzle #1");
F("...N.....R....B.");
console.log("Puzzle #2");
F(".....B..RP.....N");

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