लक्ष्य
इस प्रतियोगिता में, आपको एक मोमबत्ती के साथ एक यादृच्छिक कमरा दिया जाता है। लक्ष्य सबसे छोटा कार्यक्रम (यह गोल्फ है) लिखना है जो यह निर्धारित करता है कि कमरे के किन हिस्सों को मोमबत्ती से रोशन किया जाता है, अंधेरे स्थानों को बदलकर @। कार्यक्रम को STDIN से एक कमरा लेना चाहिए, जिसमें आउटपुट से STDOUT छपा होता है।
उदाहरण इनपुट / कक्ष
+------+
| C |
| +--+
| \ |
+---------+
मोमबत्ती एक साथ प्रस्तुत किया जाता है C, और दीवारों / दर्पण के साथ प्रतिनिधित्व कर रहे हैं |, -, /, या \। दीवारें खुद दर्पण हैं। कमरे के कोनों को एक के साथ दर्शाया गया है +।
कमरों में कभी विकर्ण दीवारें नहीं होंगी, और प्रकाश कभी भी कमरे से बाहर नहीं निकल पाएगा।
इसके अलावा, एक लाइन पर पहला चरित्र हमेशा कमरे से दीवार का हिस्सा होने वाला है। प्रत्येक पंक्ति पर पूर्ण अंतिम वर्ण कमरे की विपरीत दीवार होने वाली है। इन दोनों के बीच कोई भी चरित्र कमरे के बाहर नहीं होने वाला है।
प्रकाश और परावर्तन
मोमबत्ती आठ बुनियादी दिशाओं में प्रकाश के आठ (लेजर-जैसे) बीम का उत्सर्जन करती है: एन, एस, ई, डब्ल्यू, एनई, एसई, एसडब्ल्यू, और एनडब्ल्यू। नीचे वर्णित दर्पणों की प्रकाश किरणों की ये किरणें नीचे हैं:
Old Direction of Travel | Mirror | New Direction
N S E W NE SE SW NW / E W N S -- -- -- --
N S E W NE SE SW NW \ W E S N -- -- -- --
N S E W NE SE SW NW | - - - - NW SW NE SW
N S E W NE SE SW NW - - - - - SE NE SW NE
A -प्रकाश को अवशोषित करने का प्रतिनिधित्व करता है। प्रकाश हमेशा C या + के द्वारा अवशोषित होता है। यह ध्यान रखना महत्वपूर्ण है कि रोशनी दर्पण से दूर तभी प्रतिबिंबित होती है जब वह दर्पण के समान स्थान पर कब्जा कर रही हो। इन नियमों को समझना बहुत आसान है जब आप प्रतिबिंब को कागज पर निकालते हैं।
उदाहरण आउटपुट
आउटपुट के रूप में, प्रोग्राम को प्रबुद्ध कमरे की एक छवि को प्रिंट करना चाहिए, जिसमें काले धब्बे के रूप में लिखा गया है @, हल्के धब्बे खाली छोड़ दिए गए हैं, और दर्पण अप्रभावित हैं। उपरोक्त उदाहरण के लिए, आउटपुट होगा:
+------+
| C |
|@ @ +--+
| @\ |
+---------+
इसका मतलब है कि, यदि आप प्रकाश के बीमों को बाहर निकालते हैं, तो वे कभी भी चिह्नित स्थानों तक नहीं पहुंचेंगे @।
और ज्यादा उदाहरण
Input:
+-----+
| |
| |
| C |
| |
| |
+-----+
Output:
+-----+
| @ @ |
|@ @|
| C |
|@ @|
| @ @ |
+-----+
Input:
+-----+
| \ |
|/ C \+-+
| |
| \ - ++
+------+
Output:
+-----+
| \ @|
|/ C \+-+
| @|
| @\ -@++
+------+
@भी नहीं होना चाहिए ?