जावास्क्रिप्ट (बाहरी पुस्तकालय का उपयोग करके) (235 बाइट्स)
जीज़ यह कठिन था! खैर ... मेरी लाइब्रेरी वास्तव में इस हाहा के लिए सही काम नहीं थी। लेकिन मुझे चुनौती पसंद आई
(x,y)=>{r=x-1;s=y-1;m=Math.max(r,s);n=Math.min(r,s);l=_.RangeDown(s,y).WriteLine(z=>_.Range(0,x).Write("",w=>z==0&&w==0?"X":(z==w||(z==s&&w>=n)||(w==r&&z>=n))?"#":"."));return l+"\r\nMove count: "+(l.length-l.split("#").join("").length)}
लिंक करने के लिए लिंक: https://github.com/mvegh1/Enumerable
कोड स्पष्टीकरण: 2 चर का कार्य बनाएँ। X-1 और y-1 को चर में स्टोर करें। स्टोर में अधिकतम और न्यूनतम चर। Y की गिनती के लिए (y-1) से संख्याओं की लंबवत अवरोही सीमा बनाएं। ऊर्ध्वाधर सीमा पर प्रत्येक तत्व के लिए, जटिल विधेय के अनुसार वर्तमान तत्व के लिए एक पंक्ति लिखें। यह विधेय x की गणना के लिए 0 से पूर्णांकों की एक आरोही सीमा बनाता है। उस श्रेणी के प्रत्येक तत्व के लिए, एक जटिल विधेय के अनुसार 1 स्ट्रिंग में संघनित करें। यह जाँच करता है कि यदि नीचे बाईं ओर है, तो जाँच करें कि क्या तिरछे पर, और जाँचता है कि हम X या Y बॉर्डर पर हैं। अंत में, वह सब एक चर में संग्रहीत किया गया था। फिर कदम की गिनती प्राप्त करने के लिए, हम मूल रूप से सिर्फ # गणना करते हैं। फिर उस संग्रहीत चर को संक्षिप्त करें, और परिणाम वापस करें
वह मुंहफट हाहा था। स्क्रीनशॉट में गलत बाइटकाउंट है क्योंकि मुझे इसे पोस्ट करते समय 4 बाइट बचाने का एक तरीका मिला
संपादित करें: मैं देख रहा हूं कि अन्य उत्तर उनके आउटपुट में "मूव काउंट:" नहीं डाल रहे हैं, लेकिन मेरा है। यदि वह आवश्यकता नहीं है, तो बाइट्स का एक समूह बिखरता है ...