परिचय
आप एक बाधा कोर्स पर एक भगोड़ा कार में फंसने का दुर्भाग्य है। कार की सभी विशेषताएं गैर-उत्तरदायी हैं, स्टीयरिंग सिस्टम के लिए बचाती हैं, जो क्षतिग्रस्त है। यह सीधे ड्राइव कर सकता है, या यह सही मोड़ सकता है। क्या कार को सुरक्षा के लिए निर्देशित किया जा सकता है?
यांत्रिकी
आपकी कार 8x8 मैप के ऊपरी-बाएँ कोने में शुरू होती है, और निचले-दाएँ कोने में सुरक्षा के लिए कोशिश कर रही है। कार में एक अभिविन्यास है (शुरू में दाईं ओर), 90-डिग्री वेतन वृद्धि में मापा जाता है। कार दो कार्यों में से एक कर सकती है:
- एक वर्ग को आगे बढ़ाएं, या
- 90 डिग्री को दक्षिणावर्त घुमाएं, फिर एक वर्ग को आगे बढ़ाएं
ध्यान दें कि कार एक एकल वर्ग पर 180 डिग्री की बारी करने के लिए तेजी से चालू करने में असमर्थ है।
कुछ वर्ग बाधाएं हैं। यदि कार एक बाधा वर्ग में प्रवेश करती है, तो यह दुर्घटनाग्रस्त हो जाती है। 8x8 कोर्स के बाहर की सभी चीजों को बाधा माना जाता है, इसलिए कोर्स को बंद करना दुर्घटनाग्रस्त होने के बराबर है।
निचला-दायां वर्ग सुरक्षित वर्ग है, जो कार को बाधा कोर्स से बचने की अनुमति देता है। शुरुआती वर्ग और सुरक्षित वर्ग को बाधा नहीं माना जाता है।
कार्य
आपको एक प्रोग्राम या फ़ंक्शन लिखना होगा जो इसके इनपुट के रूप में 8x8 सरणी (मैट्रिक्स, सूचियों की सूची, आदि) के रूप में लेता है, बाधा कोर्स का प्रतिनिधित्व करता है। कार्यक्रम एक बूलियन, या कुछ इसी तरह की सच्चाई देता है। अगर दुर्घटनाग्रस्त हुए बिना कार को सुरक्षित चौक पर पहुंचाना संभव है (यानी, अगर नक्शा सॉल्व है), तो आउटपुट है True
, अन्यथा, यह है False
।
स्कोरिंग
मानक कोड गोल्फ नियम - विजेता सबसे कम बाइट्स वाला कोड है।
बोनस:
यदि, एक सॉल्व करने योग्य मानचित्र के लिए, आपका कोड ड्राइवर इनपुट की एक वैध श्रृंखला को आउटपुट करता है जो कार को सुरक्षित वर्ग के लिए निर्देशित करता है, तो आपके स्कोर से 10 प्रतिशत अंक काट लेता है। एक उदाहरण आउटपुट प्रारूप हो सकता है
SRSSR
(सीधे, सीधे, सीधे, सीधे इंगित करते हुए)। यह आउटपुट मानक आउटपुट को प्रतिस्थापित करेगाTrue
।यदि, एक बेकार नक्शे के लिए, आपके कोड का आउटपुट उन स्थितियों के बीच अंतर करता है, जहां कोई दुर्घटना अपरिहार्य है, और ऐसी परिस्थितियां जहां बाधा कोर्स के आसपास हमेशा ड्राइव करना संभव है, तो अपने स्कोर से 10 प्रतिशत अंक काट लें। एक उदाहरण आउटपुट हो सकता है
Crash
यदि कोई दुर्घटना अपरिहार्य है, याStuck
यदि कार हमेशा के लिए बाधा कोर्स में फंस गई है। ये आउटपुट एक मानकFalse
नक्शे के लिए मानक आउटपुट को बदल देगा ।
उदाहरण
यदि प्रोग्राम को इस तरह से एक 8x8 सरणी दिया जाता है:
[[0, 0, 0, 0, 0, 1, 0, 0],
[0, 0, 0, 0, 0, 0, 1, 0],
[1, 1, 0, 0, 0, 0, 0, 0],
[0, 1, 0, 1, 0, 0, 0, 0],
[0, 0, 1, 1, 0, 0, 0, 0],
[0, 0, 0, 0, 1, 0, 1, 0],
[0, 0, 0, 0, 0, 0, 1, 0],
[0, 1, 1, 0, 0, 0, 1, 0]]
इसकी व्याख्या इस तरह के नक्शे के रूप में की जाएगी, जिसमें काले वर्ग बाधाओं का संकेत देते हैं:
और एक संभावित समाधान हो सकता है:
चूंकि एक समाधान मौजूद है, कार्यक्रम को True
इस नक्शे के लिए वापस लौटना चाहिए / प्रिंट करना चाहिए । यहाँ दिखाए गए चालों का क्रम है SSSSRSRRRSRSSRRRSSRSSS
।
Crash
औरStuck
। वे यहाँ हैं क्योंकि वे कितने समय से हैं। रो 2 भरा, बाकी सब खाली ->Crash
। पंक्ति 7 भरी, बाकी सब खाली ->Stuck