स्कोर
प्रवेश करते ही यह अनुभाग भर जाएगा।
साधारण
1. bopjesvla Perl 54
2. edc65 Javascript (ES6) 91
3. name language score
4. name language score
5. name language score
बोनस दौर
1. name language score
2. name language score
3. name language score
4. name language score
5. name language score
कारेल जे अल्फबोट
पृष्ठभूमि
जावा के लिए एक लोकप्रिय परिचयात्मक पाठ्यक्रम है केरेल जे। रोबोट (मैं इसे स्वयं उपयोग कर रहा हूं)। रोबोट सड़कों की एक ग्रिड (पॉजिटिव पूर्णांक y-निर्देशांक) और रास्ते (पॉजिटिव पूर्णांक x-निर्देशांक) के साथ-साथ बीपर्स के साथ इंटरैक्ट करता है, जिसे ग्रिड पर रखा और संग्रहीत किया जा सकता है (ध्यान दें कि कैरेल और किसी भी बीपर्स केवल जाली पर मौजूद हो सकते हैं अंक)। कारेल (रोबोट) केवल पांच क्रियाओं को करने के लिए है: 1 से आगे बढ़ें, जगह में बाएं मुड़ें, एक बीपर नीचे रखें, एक बीपर उठाएं और खुद को बंद करें।
मेरे कंप्यूटर विज्ञान वर्ग में, हमारा पहला असाइनमेंट कारेल को यह सीखने के लिए था कि कैसे दाहिने मुड़ें, चारों ओर मुड़ें, और 1 से आगे बढ़ने और एक बीपर लगाने की संयुक्त कार्रवाई करें। कुछ दिनों बाद एक असाइनमेंट इन विधियों का उपयोग करना था और वर्णमाला के अक्षरों का उत्पादन करने के लिए नए तरीके लिखना था।
स्वाभाविक रूप से, एक बार जब मैंने इस काम को पूरा कर लिया, तो मैंने वर्णमाला के प्रत्येक अक्षर, साथ ही दस संख्यात्मक अंकों को बनाने के लिए और अधिक तरीके लिखे, और मैं यह पता लगाने की योजना बना रहा हूं कि रोबोट से एक प्रकार का वर्ड प्रोसेसर कैसे बनाया जाए, जहां एक स्ट्रिंग है एसटीडीआईएन में प्रवेश किया जाएगा और रोबोट बीपर्स को ग्रिड पर एक तरह से डाल देगा जो अक्षरों से मिलता-जुलता है।
जब भी मैंने private void draw#प्रत्येक चरित्र के लिए लिखा #, मैंने इसके बाद एक टिप्पणी जोड़ी, जो मुझे आज्ञाओं के अनुक्रम के लिए संक्षिप्त रूप से बताएगी, जिनकी मुझे आवश्यकता होगी।
मेरे पास मेरे निपटान में निम्नलिखित कमांड (pseudocode में लिखा गया है) (स्पष्टीकरण - ये केवल उपयोगी कमांड हैं)।
Turn Left
Rotate the robot 90˚ counterclockwise
Abbreviated as "l"
Turn Right
Rotate the robot 90˚ clockwise
Abbreviated as "r"
Move
Move one space forwards
Abbreviated as "m"
Put Beeper
Put a beeper on the spot that Karel is on
Abbreviated as "p"
Drop Beeper
Move, then Put Beeper
Abbreviated as "d"
Turn Around
Turn Left, then Turn Left
Abbreviated as "a"
शर्तेँ
रोबोट को निम्न क्रम में आगे बढ़ना चाहिए।
- रोबोट न्यूनतम क्षेत्र के 5xN आयत के निचले बाएं कोने पर शुरू होता है जिसमें पत्र खींचा जाएगा।
- रोबोट पत्र खींचता है।
- रोबोट आयत के निचले दाएं कोने में जाता है।
- रोबोट दो स्थानों को दाईं ओर ले जाता है और उत्तर / अप का सामना करना पड़ता है
एक उदाहरण के माध्यम से काम करते हैं। मान लीजिए हम ड्रा करना चाहते हैं A। रोबोट का स्थान अक्षर है जो इसकी दिशा (उत्तर, दक्षिण, पूर्व, पश्चिम) को इंगित करता है। यदि रोबोट एक बीपर और लोअरकेस के साथ स्पॉट पर है, तो अक्षर कैपिटल में है यदि रोबोट बिना बीपर के स्पॉट पर है। oबीपर्स के साथ स्पॉट का प्रतिनिधित्व करता है और .बीपर्स के बिना स्पॉट का प्रतिनिधित्व करता है।
जैसा कि हम बाद में देखेंगे, Aक्या यह है।
.ooo.
o...o
ooooo
o...o
o...o
यहाँ एक संभव समाधान है।
Grids ..... ..... ..... ..... ..... ..... ..... ..... .....
..... ..... ..... ..... ..... ..... ..... ..... .....
..... ..... ..... N.... E.... oE... ooE.. oooE. oooW.
..... ..... N.... o.... o.... o.... o.... o.... o....
n.... N.... o.... o.... o.... o.... o.... o.... o....
Letters p d d r d d d a
..... ..... ..... ..... ..... n.... e.... .E... .oE..
..... ..... ..... ..... N.... o.... o.... o.... o....
ooWo. oWoo. Wooo. Nooo. oooo. oooo. oooo. oooo. oooo.
o.... o.... o.... o.... o.... o.... o.... o.... o....
o.... o.... o.... o.... o.... o.... o.... o.... o....
m m m r d m r d d
.ooE. .oooe .ooos .ooo. .ooo. .ooo. .ooo. .ooo.
o.... o.... o.... o...S o...o o...o o...o o...o
oooo. oooo. oooo. oooo. ooooS ooooo ooooo ooooo
o.... o.... o.... o.... o.... o...S o...o o...o
o.... o.... o.... o.... o.... o.... o...S o...E
d m r d d d d l
mmlचौथी गोली को पूरा करने के लिए अंतिम निहित है क्योंकि यह प्रत्येक पत्र में दिखाई देता है और क्योंकि मैं वापस नहीं जाना चाहता हूं और उपरोक्त प्रस्तावित समाधान में सब कुछ के लिए एक और दो कॉलम जोड़ना चाहता हूं।
इस प्रकार, बनाने के लिए एक समाधान Aहै pddrdddammmrdmrdddmrddddlmml।
ध्यान दें कि यह आपका समाधान नहीं है। आपका एल्गोरिथ्म हर कॉलम के माध्यम से जा सकता है, उचित स्थानों पर बीपर्स लगा सकता है और यह भरोसा नहीं कर सकता है कि अन्य बीपर्स को कहां रखा गया है या रखा जाएगा। कोई फर्क नहीं पड़ता कि आपका एल्गोरिथ्म क्या है, रोबोट ग्रिड पर प्रति जगह केवल एक बीपर रख सकता है।
कार्यक्रम
आपका प्रोग्राम इसके इनपुट के रूप में लेगा 5xN ग्रिड जो पत्र के लिए ग्रिड है। ध्यान दें कि इनपुट पर कोई रोबोट नहीं है; रोबोट को उत्तर की ओर नीचे (दक्षिण-पश्चिम) कोने पर माना जाता है।
आउटपुट अक्षरों का अनुक्रम होगा जो अनुक्रम के लिए आशुलिपि हैं।
नमूना इनपुट
.ooo.
o...o
ooooo
o...o
o...o
o...o.ooooo
o...o...o..
ooooo...o..
o...o...o..
o...o.ooooo
नमूना आउटपुट
pddrdddammmrdmrdddmrddddlmml
prmmmlmlmmdrdrdddlmlmmdrdrmmmdrddddlmmlprdddlmldmmrmrmdmlmldmmrdrddddrmmmdlmml
यह कोड गोल्फ, फाल्स है। मानक सीजी नियम लागू होते हैं। बाइट्स में सबसे छोटा कोड जीतता है।
बोनस दौर
नियम
यदि आप बोनस राउंड में भाग लेना चाहते हैं, तो अपने कोड को कुशल बनाना सुनिश्चित करें! नीचे मेरे द्वारा बनाए गए 5x5 पत्रों में से एक पुस्तकालय है जब यह चलता है। बोनस राउंड का उद्देश्य एक प्रोग्राम लिखना है जो उस के लिए एक अनुक्रम प्रिंट करता ABCDEFGHIJKLMNOPQRSTUVWXYZहै जिसमें संभव के रूप में कुछ चालें शामिल हैं। STDIN का कोई इनपुट नहीं है। कोड वर्गीकृत किया जाएगा नहीं कोड की लंबाई पर लेकिन इसकी पर "कदम स्कोर।" चाल स्कोर स्वीपर एल्गोरिदम को हतोत्साहित करने के लिए डिज़ाइन किया गया है जो आयत में हर बिंदु पर जाते हैं।
d: 1
l: 1
m: 4
p: 1
r: 1
पत्र
.ooo. oooo. ooooo oooo. ooooo ooooo .oooo o...o
o...o o...o o.... o...o o.... o.... o.... o...o
ooooo oooo. o.... o...o oooo oooo. o.ooo ooooo
o...o o...o o.... o...o o.... o.... o...o o...o
o...o oooo. ooooo oooo. ooooo o.... oooo. o...o
ooooo ....o o...o o.... ooooo o...o ooooo oooo.
..o.. ....o o..o. o.... o.o.o oo..o o...o o...o
..o.. ....o oo... o.... o.o.o o.o.o o...o oooo.
..o.. o...o o..o. o.... o...o o..oo o...o o....
ooooo .ooo. o...o ooooo o...o o...o ooooo o....
oooo. oooo. ooooo ooooo o...o o...o o...o o...o
o..o. o...o o.... ..o.. o...o o...o o...o .o.o.
o..o. oooo. ooooo ..o.. o...o .o.o. o.o.o ..o..
oooo. o..o. ....o ..o.. o...o .o.o. o.o.o .o.o.
....o o...o ooooo ..o.. ooooo ..o.. ooooo o...o
o...o ooooo
.o.o. ...o.
..o.. ..o..
.o... .o...
o.... ooooo
मूल चुनौती के रूप में एक ही प्रक्रिया का पालन किया जाना चाहिए: अक्षरों को प्रत्येक अक्षर के बीच एक अंतरिक्ष पृथक्करण के साथ एक समय में खींचा जाना चाहिए।
मानक सीजी नियम लागू होते हैं। सबसे कम चाल स्कोर जीत के साथ प्रवेश।
संक्षेप में, दोनों कोड अनिवार्य रूप से एक ही काम करेंगे। पहले कोड में कम से कम बाइट्स की संख्या होनी चाहिए, और दूसरे कोड में छोटी संख्या के चाल का उपयोग करना चाहिए।