चेकर्स चेकर


10

इस चुनौती का लक्ष्य यह निर्धारित करना है कि क्या एक कदम एक कानूनी अंग्रेजी चेकर्स चाल है।

यह चुनौती 8x8 बोर्ड का उपयोग करेगी। एक स्थानांतरित टुकड़े को एक आदमी (राजा नहीं) के रूप में माना जाना चाहिए जो केवल तिरछे आगे बढ़ सकता है। बोर्ड में 0 या अधिक काले टुकड़े और 1 या अधिक सफेद टुकड़े होंगे। एक सफेद टुकड़ा वर्तमान में चल रहा होगा। सफेद टुकड़ा उसके सामने तिरछे एक काले टुकड़े पर "कूद" सकता है यदि इसके पीछे का वर्ग सीधे खाली हो। उस स्थिति से एक और छलांग लेना संभव है यदि इसके सामने तिरछे दिशा में एक और काला टुकड़ा हो। कैप्चर अनिवार्य है, इसलिए यह उपलब्ध नहीं है कि कूदने के लिए अवैध है। हालांकि, एक रास्ता लेना अनिवार्य नहीं है जो कूद की संख्या को अधिकतम करता है। मूल रूप से, इसका मतलब है कि यदि आप एक छलांग लगाते हैं और अंत स्थिति से एक और संभव छलांग है तो यह कदम अवैध है। टुकड़े की स्थिति निम्नलिखित नंबरिंग योजना का उपयोग करती है:

चेकरबोर्ड नंबरिंग


नियम

इनपुट:

  • संख्याओं की एक सूची जो काले टुकड़ों का प्रतिनिधित्व करती है।

  • संख्या की एक सूची जो सफेद टुकड़ों का प्रतिनिधित्व करती है।

  • सफेद टुकड़े के लिए एक प्रारंभिक स्थिति

  • सफेद टुकड़े के लिए समाप्त होने की स्थिति

आउटपुट:

  • एक सत्य मूल्य यदि चाल वैध है, अन्यथा एक गलत मूल्य


आप मान सकते हैं कि एक सफेद टुकड़ा हमेशा शुरुआती स्थिति पर कब्जा करेगा।

यदि सुविधाजनक है, तो आप यह मान सकते हैं कि सफेद टुकड़े की सूची में पहला सफेद टुकड़ा इनपुट 3 को स्वीकार करने के बजाय शुरुआती स्थिति में होगा।

मानक कोड गोल्फ नियम। सबसे कम बाइट्स जीतता है।


परीक्षण के मामलों

उदाहरण के लिए, O एक प्रारंभिक स्थिति है, X अंतिम स्थिति है, B काले टुकड़े हैं, और W सफेद टुकड़े हैं

Black pieces: []
White pieces: [5]
Move: (5, 1)
Output: True

Single move no jump
 X _ _ _
O _ _ _ 

B: [6]
W: [9]
M: (9, 2)
O: True

Single jump
 _ X _ _
_ B _ _ 
 O _ _ _

B: [2, 6]
M: (9, 2)
O: False

Illegal ending position on top of black piece
 _ X _ _
_ B _ _ 
 O _ _ _

B: [7, 14]
W: [17]
M: (17, 3)
O: True

Double jump
 _ _ X _
_ _ B _ 
 _ _ _ _
_ B _ _ 
 O _ _ _

B: [7, 14]
M: (17, 10)
O: False

Illegal jump, must take the next jump as well
 _ _ _ _
_ _ B _ 
 _ X _ _
_ B _ _ 
 O _ _ _

B: [4]
W: [8]
M: (8, 3)
O: False

Illegal jump across the board
 _ _ _ X
B _ _ _ 
 O _ _ _


B: [6, 7]
W: [6]
M: (10, 1)
O: True

Split decision p1
 X _ _ _
_ B B _ 
 _ O _ _

B: [6, 7]
M: (10, 3)
O: True

Split decision p2
 _ _ X _
_ B B _ 
 _ O _ _


B: [2]
W: [1]
M: (1, 3)
O: False

Sideways Jump
 O B X _

B: [6]
W: [1]
M: (1, 10)
O: False

Backwards Jump
 O _ _ _
_ B _ _ 
 _ X _ _

B: [6]
W: [9, 2]
M: (9, 2)
O: False

Illegal ending position on top of white piece
 _ X _ _
_ B _ _ 
 O _ _ _

B: []
W: [9, 6]
M: (9, 2)
O: False

Illegal jump over white piece
 _ X _ _
_ W _ _ 
 O _ _ _

B: [8, 15, 23, 24]
W: [27]
M: (27, 4)
O: True


Split decision long path
 _ _ _ X
_ _ _ B 
 _ _ _ _
_ _ B _ 
 _ _ _ _
_ _ B B 
 _ _ W _

B: [8, 15, 23, 24]
W: [27]
M: (27, 20)
O: True

Split decision short path
 _ _ _ _
_ _ _ B 
 _ _ _ _
_ _ B _ 
 _ _ _ X
_ _ B B 
 _ _ W _

3
मैं B=[8,15,23,24];W=[27]प्रत्येक के साथ एक टेस्ट-केस जैसा सुझाव देता हूं M=[27,4]और M=[27,20]यह दिशा को बदल देगा। 2 यह मेरे पास एक प्रश्न का उत्तर देगा: क्या दोनों वैध हैं या अब इसे लिया जाना चाहिए? ("कैप्चर अनिवार्य है, इसलिए यह कूदना गैरकानूनी है कि उपलब्ध नहीं है" दोनों तरह के सुझाव मान्य हैं, हालांकि मुझे नहीं पता कि आप इसे अवैध बनाते हैं कि यदि संभव हो तो इसे कैप्चर न करें, इसलिए शायद आप इसका मतलब समझें संभव के रूप में कई टुकड़े?)
जोनाथन एलन

क्षमा करें, मुझे नहीं पता कि कैसे (अंग्रेजी) चेकर्स खेलना है । क्या आप कानूनी कदम क्या है, इसके बारे में कुछ और विवरण जोड़ने का मन करेंगे।
tsh


कैप्चर अनिवार्य है, इसलिए यह उपलब्ध नहीं है कि कूदने के लिए अवैध है। "क्या छलांग लेते हैं" का मतलब है?
एरिक आउटगॉल्फ

1
@JonathanAllan मुझे लगता है कि मैंने स्पष्टीकरण में आपके प्रश्न को संबोधित किया और परीक्षण मामलों को जोड़ा।
Anoemica

जवाबों:


1

यह चुनौतीपूर्ण था :) * फिक्स्ड बग्स (अतिरिक्त बाइट्स)

जावास्क्रिप्ट (Node.js) , 197 193 191 185 181 186 बाइट्स

f=(B,W,S,E,F=1)=>g(S).filter((x,i)=>B[I="includes"](x)&!B[I](t=g(x)[i])&!W[I](t)&&t>0?F+=f(B,W,t,E):0)[0]?F>1:g(S)[I](E)
g=S=>[S--,!(y=~-(e=S-3)/4%2|0)||S%4^3?y?e+1:e:0,S%4||y?y?e:e-1:0]

इसे ऑनलाइन आज़माएं!


मुझे लगता है कि आप >>2&1इसके बजाय उपयोग कर सकते हैं /4%2|0
अरनौलड

टेस्टकेस: [10, 3], [14], 14, 7विफल।
tsh

@tsh तय :), अगर अधिक परीक्षण मामलों में विफल रहा तो मुझे बताएं
डैनियलइंडी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.