क्या राजा मोहरा पकड़ सकता है?


26

चार पूर्णांक x 1 , y 1 , x 2 और y 2 के इनपुट को देखते हुए , आउटपुट करें कि क्या शतरंज में एक सफेद राजा (निर्देशांक ( x 1 , y 1 ) के साथ) एक काला मोहरा (निर्देशांक ( x 2 , y) के साथ पकड़ सकता है 2 )) और इसे कैप्चर करें यदि प्यादा किसी रानी को जितनी जल्दी हो सके बढ़ावा देने के लिए आगे बढ़ रहा है।

बोर्ड के निर्देशांक इस प्रकार हैं:

       first coordinate (x)
             12345678

           1 .#.#.#.#
           2 #.#.#.#.
           3 .#.#.#.#
  second   4 #.#.#.#.
coordinate 5 .#.#.#.#
    (y)    6 #.#.#.#.
           7 .#.#.#.#
           8 #.#.#.#.

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

राजा किसी भी दिशा में हर मोड़ पर एक वर्ग को घुमाता है (यह तिरछे तरीके से आगे बढ़ सकता है), और मोहरा केवल एक स्थान को आगे की ओर ले जा सकता है (इसके y-निर्देशांक को घटा सकता है), जब तक कि यह अपनी प्रारंभिक स्थिति में न हो (हमारे समन्वय प्रणाली के साथ, y- समन्वय 7), जिस स्थिति में यह दो स्थानों को आगे बढ़ा सकता है।

इनपुट को व्हाट्सएप के रूप में दिया जा सकता है- / अल्पविराम से अलग किए गए स्ट्रिंग, स्ट्रिंग / पूर्णांक की एक सरणी, या चार फ़ंक्शन / कमांड लाइन / आदि तर्क। निर्देशांक जो भी आदेश दिया जा सकता है सबसे सुविधाजनक / गोल्फ है (इसलिए, इनपुट को [y 2 , y 1 , x 1 , y 2 ] के रूप में स्वीकार करना तब तक ठीक है जब तक यह सुसंगत है)। आउटपुट एक सत्य या मिथ्या मूल्य होना चाहिए ।

चूंकि यह , बाइट्स में सबसे छोटा कोड जीतता है।

सत्य परीक्षण के मामले :

5 3 3 2

6 1 1 7

3 3 3 2

4 1 4 7

7 7 1 7

1 8 1 7

झूठे परीक्षण के मामले :

6 4 3 2

8 8 1 7

3 4 3 2


क्या हमने निर्देशांक का क्रम चुना है या यह होना चाहिए x1 y1 x2 y2?
डेनिस

11
मैं परीक्षण मामले का सुझाव देता हूं 1 8 1 7, जहां राजा मोहरे से पहले दो स्थानों को स्थानांतरित कर सकता है। मुझे लगता है कि अब सभी उत्तर गलत हो गए हैं। यह स्थिति समस्या को बहुत कठिन बना देती है।
xnor

1
@ नील क्योंकि संख्याओं में रूपांतरण सिर्फ उबाऊ है और कुछ भी नहीं जोड़ता है
edc65

1
@ नील में बीजीय संकेतन को शामिल करने के लिए पहले से ही बहुत सारे पद हैं, और मैं वास्तविक चुनौती पर ध्यान केंद्रित करना चाहता था।
दरवाज़े

2
@kaine मोहरा राजा के लिए एक महत्वपूर्ण खतरा पैदा नहीं करता है जब तक कि राजा इसे बढ़ावा देने से पहले या उस पर नहीं ले सकता। राजा को जांच में जाने की जरूरत नहीं है क्योंकि हमेशा एक समान रूप से अच्छी चाल है जो वह बना सकता है।
नील

जवाबों:


3

जेली , 33 बाइट्स

‘»Ɠ_2<®
Ɠ©<7
:5+Ɠ>7$¤<1.4
Ɠ_ƓA2£Ŀ

यह कार्यक्रम x2\nx1\ny2\ny1STDIN के निर्देशांक को पढ़ता है । इसे ऑनलाइन आज़माएं!

गैर-प्रतिस्पर्धी संस्करण

दुर्भाग्य से, जेली दुभाषिया के पास एक बग था जब यह प्रश्न पोस्ट किया गया था। कहा बग ने इसे दो से अधिक कमांड-लाइन तर्कों को स्वीकार करने से रोक दिया। जेली का नवीनतम संस्करण 23 बाइट्स में दिए गए कार्य को हल कर सकता है ।

⁶>7×5
_A+⁵>6$¤+¢’»⁶_2<⁵

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


18

पायथन 2, 53 40

lambda x,y,p,q:y-2<q>=abs(x-p)+q/7+y/8*5

राजा के पास समन्वय (x, y)और मोहरा है (p, q)

तीन महत्वपूर्ण मामले हैं:

  1. प्यादा रैंक 7 पर है और रैंक 8 पर राजा। मोहरे को पकड़ने के लिए, राजा को उसी फ़ाइल या आसन्न पर होना चाहिए।

    परिणाम: q = 7 ⋀ y = 8 → |x - p| ≤ 1

  2. मोहरा रैंक पर है 7. मोहरे को पकड़ने के लिए, राजा को छह फाइलों के भीतर होना चाहिए।

    परिणाम: q = 7 → |x - p| ≤ 6

  3. प्यादा निचले पायदान पर है। प्यादा को पकड़ने के लिए, राजा को प्यादा के बाद एक कदम पर प्रचार चौक तक पहुँचने में सक्षम होना चाहिए।

    परिणाम: q < 7 → |x - p| ≤ q ⋀ y - 1 ≤ q

मेरा समाधान सिर्फ इन स्थितियों को नीचे गिरा दिया है। उम्मीद है कि इस बार गलतियाँ न हों।


2
कैसे के absसाथ काटने के बारे में max(y-1,x-p,p-x)?
xnor

ऐसा नहीं f(1,8,1,7)होना चाहिए Trueक्योंकि राजा तुरंत मोहरे को पकड़ लेता है? मुझे लगता है कि एक सूक्ष्मता है जहाँ प्यादा पंक्ति 7 को पंक्ति 6 ​​के रूप में नहीं माना जा सकता है यदि राजा तुरंत कब्जा कर लेता है।
xnor

@xnor मुझे लगता है कि यह अब ठीक हो गया है (बुरी तरह से गोल्फ में)।
grc

1
आप पिछले हालत उलट हैं, तो आप के बीच की जगह को हटा सकते हैं orऔर -2
xsot

@xsot टिप के लिए धन्यवाद। मैंने अपना दृष्टिकोण बदल दिया है और अब इसे थोड़ा और नीचे ले आया हूँ।
grc

2

प्रोलॉग, 48 42 बाइट्स

कोड:

p(X,Y,P,Q):-Y-2<Q,Q>=abs(X-P)+Q//7+Y//8*5.

उदाहरण:

p(1,8,1,7).
true

p(3,4,3,2).
false

अधिकांश की तुलना में प्रोलॉग के लिए एक बुरी चुनौती नहीं है।

संपादित करें: grc के पायथन 2 उत्तर में प्रयुक्त सूत्र पर स्विच करके 6 बाइट्स सहेजे गए ।
दुर्भाग्य से प्रोलॉग अजगर की तुलना में श्रृंखला की तुलना नहीं कर सकता है और पूर्णांक विभाजन फ्लोट डिवीजन की तुलना में 1 बाइट लंबा है।

इसे यहाँ ऑनलाइन आज़माएँ


0

जावास्क्रिप्ट (ईएस 6), 52

(x,y,u,t,d=x>u?x-u:u-x)=>(d>=y?d:y-1)<=(d<2|t<7?t:6)

मुझे लगता है कि Math.abs, Math.min, Math.max का उपयोग न करके बाइट्स को बचाया जा सकता है

पंक्ति सात पर स्थित मोहरा 2 स्थानों को हिलाने से बच सकता है, यदि और केवल यदि राजा निकट स्तंभ में नहीं है - इसलिए d6 के साथ 7 को प्रतिस्थापित करने से पहले एक चेक है ।

कंसोल में चलाने के लिए टेस्ट केस:

;[f(5,3,3,2),f(6,1,1,7),f(3,3,3,2),f(1,8,1,7),f(6,4,3,2),f(8,8,1,7),f(3,4,3,2)]

परिणाम: [true, true, true, true, false, false, false]


0

रूबी, 50 बाइट्स

def f(a,b,c,d)(a-c).abs<=(d==7?6-b/8*5:d)&&b-d<2;end

तर्क (राजा x, राजा y, प्यादा x, प्यादा y), सभी पूर्णांक हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.