पंक्ति, स्तंभ, विकर्ण, खंड


13

कुछ सकारात्मक पूर्णांक N के लिए, कोड का एक वर्ग खंड लिखें जो N वर्ण चौड़ा और N वर्ण लंबा है।

उदाहरण के लिए, आपका N 5 हो सकता है और ब्लॉक इस तरह दिख सकता है:

ThisI
sMy5B
y5Cod
eBloc
kOkay

इस ब्लॉक को निम्नानुसार व्यवहार करने की आवश्यकता है:

  1. जब शीर्ष पंक्ति को निकाला जाता है और प्रोग्राम के रूप में चलाया जाता है, तो सटीक पाठ rowको stdout में प्रिंट करने की आवश्यकता होती है।

    उदाहरण के लिए, ThisIप्रिंट होगा row

  2. जब बाएं कॉलम को निकाला जाता है और एक प्रोग्राम के रूप में चलाया जाता है, तो सटीक टेक्स्ट colको stdout में प्रिंट करने की आवश्यकता होती है।

    उदाहरण के लिए, Tsyekप्रिंट होगा col

  3. जब ऊपर से नीचे दाएं कोने के मुख्य विकर्ण को निकाला जाता है और एक कार्यक्रम के रूप में चलाया जाता है, तो सटीक पाठ diaको stdout में मुद्रित करने की आवश्यकता होती है।

    उदाहरण के लिए, TMCoyप्रिंट होगा dia

  4. जब पूरे ब्लॉक को प्रोग्राम के रूप में चलाया जाता है, जिसमें न्यूलाइन्स (एक वैकल्पिक अनुगामी न्यूलाइन के साथ) शामिल होता है, तो सटीक टेक्स्ट blkको stdout में प्रिंट करने की आवश्यकता होती है।

    उदाहरण के लिए,

    ThisI
    sMy5B
    y5Cod
    eBloc
    kOkay
    

    छपता था blk

विवरण

  • सभी चार कार्यक्रम एक ही प्रोग्रामिंग भाषा में चलाए जाते हैं।
  • मूल ब्लॉक में N 2 अक्षर लाइन टर्मिनेटर के अलावा कुछ भी हो सकते हैं ।
  • यदि आपकी भाषा में स्टडआउट नहीं है, तो आप किसी अन्य सामान्य आउटपुट विधि का उपयोग कर सकते हैं। यह सभी चार कार्यक्रमों में एक ही विधि होनी चाहिए।

सबमिशन जिसके मूल ब्लॉक में सबसे अलग अक्षर होते हैं (नई गिनती नहीं गिनते) जीतता है। टाईब्रेकर छोटे एन के साथ प्रस्तुत करने के लिए जाता है।


यह देखते हुए कि निश्चित रूप से कुछ दो-प्रतीक गूढ़ भाषा में एक समाधान है, मुझे लगता है कि यह सबसे छोटा एन में निचोड़ करने के लिए एक समाधान बन जाएगा
xnor

@xnor शायद। हालांकि 1-विशिष्ट पेंगुइन जवाब संभावना के दायरे से बाहर नहीं है। फिर भी, यह स्कोरिंग विधि पहले से सबसे छोटी एन जीतने के मुकाबले अधिक दिलचस्प है।
केल्विन के

पंक्ति और स्तंभ कार्यक्रमों की लंबाई समान होने पर काम कैसे किया जा सकता है?
xnor

@xnor आह, आप सही कह रहे हैं। यह काम नहीं करेगा।
केल्विन के

क्या गैर-ब्लॉक प्रोग्राम भी एक अनुगामी न्यूलाइन के साथ समाप्त हो सकते हैं?
jimmy23013

जवाबों:


6

> <> (मछली) , 3 अद्वितीय अक्षर (एन = 2000)

कोड का उपयोग करता है 1और -स्टैक पर मनमाने ढंग से नंबर लगाने के लिए और p(स्व-) स्टैक पर शीर्ष 3 नंबरों के आधार पर कोड को संशोधित करता है। उदाहरण के लिए, एक !स्थिति में रखना सामान्य> <> की 0 0तरह दिखाई देगा 003b*pऔर p1-यह बन जाएगा 111-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1--11-11-p

संशोधन के बाद अनुदेश सूचक (आईपी) कोड के चारों ओर लपेटता है और संशोधित भाग चलाता है। "ब्लॉक" मामले में आईपी को "पंक्ति" मामले से अलग करने के लिए आगे संशोधन (फिर वापस निर्देशित) के लिए पुनर्निर्देशित किया जाता है। "पंक्ति" मामले में समान दो पुनर्निर्देशन होते हैं, लेकिन उनके बीच कोई कोड नहीं होता है, इसलिए उनका कोई प्रभाव नहीं होता है।

4 मामलों के लिए अंतिम उत्पन्न कोड (अपरिवर्तित p1-भागों को छोड़ना ):

row:      "wor"\ooo;

column:   "loc"ooo;

diagonal: "dia"ooo;

block:    "wor"\"klb"ooo;

कोड का आकार 4 एमबी है और यहां कोड सुलभ है । (इसे चलाने में कोई कठिनाई नहीं है।)

जनरेटर python3 कार्यक्रम यहाँ सुलभ है


14

CJam, 13 12 अद्वितीय वर्ण, N = 5

"row"
cd;"a
oaiaa
l"aa;
"blk"

जैसे-जैसे आगे बढ़ती है

अद्यतन : aRunner112 द्वारा इंगित के रूप में (इस मामले में कोई सेशन) में परिवर्तित स्थान

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


2
प्रत्येक स्थान को एक चरित्र में बदल दिया जा सकता है जैसे aकि अद्वितीय चरित्र की गिनती को 12 तक लाना सही है?
रनर ११२

@ रनर ११२ धिक्कार है! पारितोषिक के लिए धन्यवाद!
ऑप्टिमाइज़र

8

बैश, 19 अद्वितीय वर्ण, एन = 19

trap echo\ row exit
t=t trap exit      
t=t echo blk       
exit               
=                  
t    e             
      c            
e      h           
c       o          
h                  
o         d        
           i       
c           a      
o                  
l                  
  • पहली पंक्ति है trap echo\ row exitecho rowस्क्रिप्ट से बाहर निकलने पर यह निष्पादित किया जाता है (सिर्फ पहली पंक्ति)
  • पहला कॉलम है ttt=t echo col
  • विकर्ण है t=tt echo dia
  • पूर्ण ब्लॉक पहली पंक्ति में स्थापित EXIT हैंडलर को रद्द करके काम करता है, echo blkफिर बाहर निकलता है।

1
आप exit4 से अद्वितीय वर्णों को कम करने के लिए लोअरकेस का उपयोग कर सकते हैं । आप exitकमांड को अगली पंक्ति में स्थानांतरित कर सकते हैं और सभी अर्धविराम स्थानों को बदल सकते हैं।
jimmy23013

6

> <> , 14 अद्वितीय वर्ण, N = 10

"wor"\ooo;
     "    
l a  k    
o  i l    
c   db    
"    "    
o    oo   
o    o o  
o    o  o 
;    ;   ;

एक 2 डी भाषा में बहुत सीधा। केवल मुश्किल हिस्सा यह है कि हमें और के \बीच अंतर करने की आवश्यकता है ।rowblk


यादृच्छिक नोट जो p1-एक तीन चार समाधान देगा, लेकिन यह वास्तव में उत्पन्न करने के लिए कष्टप्रद होगा (और शायद नहीं जीतेगा)।
Sp3000

3

ब्रेनफक, 2 अद्वितीय वर्ण, एन = 378

नियमों के संभावित मामूली झुकने के साथ।

यह कार्यक्रम काफी बड़ा है, इसलिए यहां पास्टबीन पर इसका लिंक दिया गया है

row, colऔर diaकार्यक्रमों सीधा कर रहे हैं। वे बस बाइट सेल को बढ़ाते हैं जब तक कि सही ASCII कोड नहीं पहुंच जाता है और तब आउटपुट होता है। यदि पत्र पहले ही पारित हो गया है, तो यह तब तक बढ़ जाता है जब तक सेल ओवरफ्लो न हो जाए इसलिए यह 0 पर फिर से शुरू हो सकता है।

blkकार्यक्रम है जहाँ मामूली नियम झुकने होता है। blkचुनौती में पूछे गए "सटीक पाठ " को मुद्रित करने के लिए , बैकस्पेस का उपयोग किया जाता है (एएससीआईआई कोड 8), जिसके समर्थन के लिए डिस्प्लेिंग कंसोल / टर्मिनल की आवश्यकता होती है। जब भी row/ col/ diaकार्यक्रमों से गलत मान छपे होते हैं, मैं सुनिश्चित करता हूं कि वे कुछ बैकस्पेस कंट्रोल कोड आउटपुट करके हटा दिए जाएं। चीजों को सरल बनाने के लिए, मैंने यह सुनिश्चित किया है कि एक बिंदु पर आउटपुट किए गए सभी गलत मूल्य मुद्रण योग्य ASCII रेंज का हिस्सा हैं।


2

सी (जीसीसी) , 26 अद्वितीय वर्ण, एन = 29

*w;main(){printf(w?w:"row");}
ww;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;/*;;;;;;;;;;;;;;;;;;;;;;;;
m;;m;;;;;;;;;;;;;;;;;;;;;;;;;
a;;;a;;;;;;;;;;;;;;;;;;;;;;;;
i;;;;i;;;;;;;;;;;;;;;;;;;;;;;
n;;;;;n;;;;;;;;;;;;;;;;;;;;;;
(;;;;;;(;;;;;;;;;;;;;;;;;;;;;
);;;;;;;);;;;;;;;;;;;;;;;;;;;
{;;;;;;;;{;;;;;;;;;;;;;;;;;;;
p;;;;;;;;;p;;;;;;;;;;;;;;;;;;
r;;;;;;;;;;r;;;;;;;;;;;;;;;;;
i;;;;;;;;;;;i;;;;;;;;;;;;;;;;
n;;;;;;;;;;;;n;;;;;;;;;;;;;;;
t;;;;;;;;;;;;;t;;;;;;;;;;;;;;
f;;;;;;;;;;;;;;f;;;;;;;;;;;;;
(;;;;;;;;;;;;;;;(;;;;;;;;;;;;
";;;;;;;;;;;;;;;;";;;;;;;;;;;
c;;;;;;;;;;;;;;;;;d;;;;;;;;;;
o;;;;;;;;;;;;;;;;;;i;;;;;;;;;
l;;;;;;;;;;;;;;;;;;;a;;;;;;;;
";;;;;;;;;;;;;;;;;;;;";;;;;;;
);;;;;;;;;;;;;;;;;;;;;);;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
};;;;;;;;;;;;;;;;;;;;;;;};;*/
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;*w="blk";

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


1

रूबी, 24 अद्वितीय वर्ण, एन = 17

trap(0){$><<:row}
rr=a=:blk;%;00000
a0a00000000000000
p00p0000000000000
(000(000000000000
00000000000000000
)00000)0000000000
{000000{000000000
$0000000$00000000
>00000000>0000000
<000000000<000000
<0000000000<00000
:00000000000:0000
c000000000000d000
o0000000000000i00
l;;trap(0){$><<a;
};000000000000;{}

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

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