आप ओलंपिक के मेजबान हैं!


17

आप ओलंपिक खेलों की मेजबानी करते हैं, और इस अवसर के लिए एक शानदार पूल बनाने की जरूरत है, लेकिन पर्यवेक्षक अक्सर आयामों के बारे में अपना दिमाग बदलते हैं, और अनुरोधित आकार के साथ इसे फिर से बनाने के लिए एक त्वरित तरीके की आवश्यकता होती है!


दो पूर्णांकों को देखते हुए, Lऔर x, आपका कार्य लंबाई Lऔर xगलियों का एक स्विमिंग पूल बनाना है ।

एक पूल कैसे बनाया जाता है?

  • इसमें एक आंतरिक वर्ग होता है, जिसकी क्षैतिज दीवारें Lलगातार डैश ( -) से बनी होती हैं, और जिनकी ऊर्ध्वाधर दीवारें 3x - 1बार ( |) से बनी होती हैं। इसके अतिरिक्त, 4 +संकेत प्रत्येक कोने में स्थित हैं। चलो एक उदाहरण है ( L = 10, x = 2):

    + ---------- +
    | |
    | |
    | |
    | |
    | |
    + ---------- +
    
  • प्रत्येक लेन में 2 ऊर्ध्वाधर इकाइयों की चौड़ाई है। आंतरिक वर्ग x-1लेन विभाजकों से भरा होता है , जिसमें Lक्षैतिज रूप से लगातार :प्रतीक होते हैं। लेन विभाजक डालने के बाद, हमारे पूल को इस तरह दिखना चाहिए:

    + ---------- +
    | |
    | |
    | :::::::::: |
    | |
    | |
    + ---------- +
    
  • एक पूल में एक पैडिंग (एक बाहरी वर्ग) भी है, जिसकी क्षैतिज दीवारें (L + 4) -s हैं और जिनकी ऊर्ध्वाधर दीवारें (3x + 1) |s हैं, जो आंतरिक वर्ग को घेरे हुए हैं:

    + -------------- +
    | + ---------- + |
    | | | |
    | | | |
    | | :::::::::: | |
    | | | |
    | | | |
    | + ---------- + |
    + -------------- +
    

और यह हमारे ओलंपिक आकार का ** स्विमिंग पूल है!


ऐनक:

  • डिजाइन और कार्यक्षमता प्रयोजनों के लिए, आप की गारंटी है कि 100 ≥ L ≥ 10और 15 ≥ x ≥ 2

  • आउटपुट बिल्कुल दिखाया जाना चाहिए। "वर्टिकल-बिल्ट" * पूल को आउटपुट करना अस्वीकृत है।

  • ट्रेलिंग और अग्रणी स्थानों की अनुमति है।

  • आप इनपुट ले सकते हैं और किसी भी मानक विधि के माध्यम से आउटपुट प्रदान कर सकते हैं ।

  • डिफ़ॉल्ट ढीले लागू होते हैं।


उदाहरण / परीक्षण मामले:

एल = 20, एक्स = 3

+ ------------------------ +
| + -------------------- + |
| | | |
| | | |
| | :::::::::::::::::::: | |
| | | |
| | | |
| | :::::::::::::::::::: | |
| | | |
| | | |
| + -------------------- + |
+ ------------------------ +



L = 50, x = 5:

+ ------------------------------------------------- ----- +
| + ------------------------------------------------- - + |
| | | |
| | | |
| | ::::::::::::::::::::::::::::::::::::::::::::::::: : | |
| | | |
| | | |
| | ::::::::::::::::::::::::::::::::::::::::::::::::: : | |
| | | |
| | | |
| | ::::::::::::::::::::::::::::::::::::::::::::::::: : | |
| | | |
| | | |
| | ::::::::::::::::::::::::::::::::::::::::::::::::: : | |
| | | |
| | | |
| + ------------------------------------------------- - + |
+ ------------------------------------------------- ----- +


एल = 10, एक्स = 15

+ -------------- +
| + ---------- + |
| | | |
| | | |
| | :::::::::: | |
| | | |
| | | |
| | :::::::::: | |
| | | |
| | | |
| | :::::::::: | |
| | | |
| | | |
| | :::::::::: | |
| | | |
| | | |
| | :::::::::: | |
| | | |
| | | |
| | :::::::::: | |
| | | |
| | | |
| | :::::::::: | |
| | | |
| | | |
| | :::::::::: | |
| | | |
| | | |
| | :::::::::: | |
| | | |
| | | |
| | :::::::::: | |
| | | |
| | | |
| | :::::::::: | |
| | | |
| | | |
| | :::::::::: | |
| | | |
| | | |
| | :::::::::: | |
| | | |
| | | |
| | :::::::::: | |
| | | |
| | | |
| + ---------- + |
+ -------------- +

यह , इसलिए बाइट्स में सबसे छोटा कोड जीतता है!

* पानी बाहर बह सकता है अगर यह लंबवत रूप से बनाया गया है: पी

** हाँ, मुझे पता है कि गलियाँ जितनी अधिक होती हैं और पूल जितना छोटा होता है, ड्राइंग उतना ही कम दिखता है!


सैंडबॉक्स , उन लोगों के लिए जो हटाए गए पोस्ट देख सकते हैं।
श्री एक्सकोडर

क्या होगा अगर x>=L??
क्रेगR8806

@ CraigR8806 एक ही एल्गोरिथ्म। पूल की लंबाई से अधिक लेन के साथ। मुझे लग रहा है कि आपने प्रश्न गलत किया है ...
श्री एक्सकोडर

मामले के बारे में क्या L=10और कहाँ x=15? वहाँ पूल में रखा जा सकता है की तुलना में अधिक लेन नहीं होगा? मैं इरादे को गलत समझ सकता था
CraigR8806

@ CraigR8806 लंबाई का लेन से कोई लेना-देना नहीं है! आप इसे मौजूदा जवाबों में से एक के साथ खुद का परीक्षण कर सकते हैं
श्री एक्सकोडर

जवाबों:


13

चारकोल , 32 बाइट्स

NθNη↓Eθ×η:  B⁺θ²⁺׳η¹↖←B⁺θ⁶⁺׳η³

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

-4 नील को धन्यवाद ।

एएसटी:

Program
├N: Input Number
│└θ: Identifier θ
├N: Input Number
│└η: Identifier η
├Print
│├↓: Down
│└E: Map
│ ├θ: Identifier θ
│ └×: Product
│  ├η: Identifier η
│  └':  ': String ':  '
├B: Box
│├⁺: Sum
││├θ: Identifier θ
││└2: Number 2
│└⁺: Sum
│ ├×: Product
│ │├3: Number 3
│ │└η: Identifier η
│ └1: Number 1
├Move
│└↖: Up Left
├Move
│└←: Left
└B: Box
 ├⁺: Sum
 │├θ: Identifier θ
 │└6: Number 6
 └⁺: Sum
  ├×: Product
  │├3: Number 3
  │└η: Identifier η
  └3: Number 3

वाह चारकोल को यह चुनौती मिली है :)
डाउनगोट

आप अपने नाम पर खरे रहे - आपने मुझे अपमानित किया है।
नॉटजगन

2
हमेशा की तरह, स्पष्टीकरण का अनुरोध।
कैलक्यूलेटरफल

@CalculatorFeline हाँ, मेरे पास उन सभी स्पष्टीकरणों को करने के लिए समय नहीं है जब मैं आउटगोल्फ के लिए कुछ चाह रहा हूँ ... आप -aकमांड-लाइन तर्क का उपयोग करके एएसटी की जांच भी कर सकते हैं ।
आउटगॉल्फ

-aत्रुटि क्यों उठाता है _ _ <
आउटगोल्फर

12

चारकोल , 40 39 37 बाइट्स

NθNηB⁺θ⁶⁺׳η³↘→B⁺θ²⁺׳η¹→F⁻η¹«M³↓P×:θ

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

मुझे पता है कि नील के पास पहले से ही लगभग एक ही लंबाई का एक चारकोल जवाब है, लेकिन मैंने एक अलग दृष्टिकोण लिया, इसलिए मुझे लगा कि मैं भी अपना पोस्ट कर सकता हूं।

व्याख्या

NθNηB⁺θ⁶⁺׳η³↘→B⁺θ²⁺׳η¹→F⁻η¹«M³↓P×:θ
NθNη                                         take the two inputs as numbers in θ and η
      B⁺θ⁶⁺×³η³                               draw a rectangle θ + 6 by 3η + 3
                                               (characters default to |, - and +)
                ↘→                             move the cursor down one and right two
                   B⁺θ²⁺×³η¹                  draw a rectangle θ + 2 by 3η + 1
                             F⁻η¹«            for ι (unused) from 0 up until η - 1:
                                   M³↓            move the cursor down by 3
                                       P×:θ       print θ :s without moving the cursor
                                               [implicit end of for]

1
कृपया स्पष्टीकरण दें।
कैलक्यूलेटरफल

@CalculatorFeline जोड़ा गया।
नॉटजगन

1
हुह, तो तीसरा पैरामीटर वैकल्पिक है? अच्छा है, कि मुझे दो बाइट्स बचाता है!
नील

11

चारकोल, 40 38 36 31 बाइट्स

A⁺²NθA⁺¹×³NηUOθη:¶¶Bθη↖←B⁺⁴θ⁺²η

इसे ऑनलाइन आज़माएं! लिंक कोड के वर्बोज़ संस्करण के लिए है। स्पष्टीकरण:

A⁺²Nθ       Assign(Plus(2, InputNumber()), q);

चारकोल की ड्राइंग प्रिमिटिव्स +एस सहित समग्र वर्ण गणना का उपयोग करती हैं , हालांकि इनपुट सिर्फ एस की संख्या है -, इसलिए हमें आंतरिक दीवार की चौड़ाई प्राप्त करने के लिए 2 को जोड़ने की आवश्यकता है।

A⁺¹×³Nη     Assign(Plus(1, Times(3, InputNumber())), h);

आंतरिक दीवार की ऊंचाई की गणना करें, फिर से, नीचे की पंक्ति को शामिल करें, इसलिए तीन प्रति लेन प्लस एक।

UOθη:¶¶     Oblong(q, h, ":\n\n");

गलियों को ड्रा करें। यह बस एक आयत है :जो दो रिक्त रेखाओं द्वारा लंबवत रूप से अलग होती है (पाइलक्रॉस नईलाइन वर्णों का प्रतिनिधित्व करता है)।

Bθη         Box(q, h);

Rectangleआदेश वास्तव में क्या हम भीतरी दीवार आकर्षित करने की आवश्यकता है। संपादित करें: Boxआप मुझे 2 बाइट्स बचाते हुए, इसके तीसरे पैरामीटर को छोड़ सकते हैं।

↖           Move(:UpLeft);
←           Move(:Left);
B⁺⁴θ⁺²η     Box(Plus(4, q), Plus(2, h));

और फिर से बाहरी दीवार को खींचने के लिए, थोड़ा चौड़ा और लंबा छोड़कर, और आंतरिक दीवार पर केंद्रित।


1
TIO पर चारकोल कोड के लिंक वास्तविक कोड के साथ कभी क्यों नहीं होते हैं?
जोनाथन एलन

1
@JonathanAllan मैं वर्बोज़ कोड से लिंक करता हूं क्योंकि यह अधिक पठनीय है, साथ ही मैं सत्यापन उद्देश्यों के लिए स्वचालित रूप से succinct कोड उत्पन्न करने के लिए तर्क जोड़ता हूं।
नील

... लेकिन 40 की तुलना में 219 अक्षर अधिक पठनीय कैसे हैं? : पी
जोनाथन एलन

मैं बस कठिन लग सकता था और इस टिप को देखा :)
जोनाथन एलन

1
हमेशा की तरह, कृपया समझाएं।
कैलक्यूलेटरफ्लीन

8

टी-एसक्यूएल, 284 281 बाइट्स

DECLARE @ INT,@x INT,@S VARCHAR(MAX)='+--d--+b| +d+ |b'SELECT @=L,@x=x FROM t
P:SET @S+='| |s| |b| |s| |b| |c| |b'SET @x-=1IF @x>0GOTO P
PRINT REPLACE(REPLACE(REPLACE(REPLACE(LEFT(@S,LEN(@S)-6)+'+d+ |b+--d--+','d',REPLICATE('-',@)),'b',CHAR(13)),'s',SPACE(@)),'c',REPLICATE(':',@))

इनपुट INT स्तंभों से लिया जाता है एल और एक्स पहले से मौजूद तालिका में टी , हमारी अनुमति इनपुट विधि प्रति

मूल रूप से मैं बार-बार वर्णों (d = डैश, s = रिक्त स्थान, c = कॉलोन, b = लाइन ब्रेक) का प्रतिनिधित्व करने वाले अक्षरों के साथ एक लंबी स्ट्रिंग बना रहा हूं, फिर उन सभी को उपयुक्त फिलर्स के साथ अंत में REPLACE।

प्रारूपित:

DECLARE @ INT,@x INT,@S VARCHAR(MAX)='+--d--+b| +d+ |b'
SELECT @=L,@x=x FROM t
P:
    SET @S+='| |s| |b| |s| |b| |c| |b'
    SET @x-=1
IF @x>0 GOTO P
PRINT REPLACE(REPLACE(REPLACE(REPLACE( LEFT(@S,LEN(@S)-6)+'+d+ |b+--d--+'
     ,'d',REPLICATE('-',@))
     ,'b',CHAR(13))
     ,'s',SPACE(@))
     ,'c',REPLICATE(':',@))

लूप के अंदर मैं रिक्त स्थान की 2 पंक्तियों और कॉलनों की 1 पंक्ति को जोड़ देता हूं, फिर अंत में मैं उस विभक्त पंक्ति को काट देता हूं और प्रतिकृति करने से पहले पूल की सीमा को जोड़ देता हूं।

संपादित करें : @सबसे अधिक उपयोग किए जाने वाले चर पर स्विच करके 3 बाइट्स सहेजे गए , और आरंभिक क्रम स्वैपिंग।


8

जावास्क्रिप्ट (ईएस 6), 137 124 बाइट्स

मेरे फोन पर इसे थोड़ा नीचे गोल्फ, और अधिक का पालन करें।

x=>y=>`+--0--+
| +0+ |
${((a=`| |1| |
`)+a+`| |2| |
`).repeat(y-1)+a+a}| +0+ |
+--0--+`.replace(/\d/g,n=>"- :"[n].repeat(x))

कोशिश करो

f=
x=>y=>`+--0--+
| +0+ |
${((a=`| |1| |
`)+a+`| |2| |
`).repeat(y-1)+a+a}| +0+ |
+--0--+`.replace(/\d/g,n=>"- :"[n].repeat(x))
oninput=_=>o.innerText=f(+i.value)(+j.value);o.innerText=f(i.value=50)(j.value=5)
input{font-family:sans-serif;margin:0 5px 0 0;width:50px;}
<label for=i>L: </label><input id=i type=number><label for=j>x: </label><input id=j type=number><pre id=o>


मुझे यह पसंद है क्योंकि यह इंटरैक्टिव है: D
xDaizu

@xDaizu, मेरे कुछ अन्य जेएस समाधानों की जाँच करें, इसलिए;)
झबरा

6

पायथन 2 , 124 120 117 बाइट्स

हाइपर न्यूट्रिनो के लिए -2 बाइट्स धन्यवाद

l,x=input()
o='+--%s--+\n| +%s+ |\n'%(('-'*l,)*2)
print o+'| |%s| |\n'*(x*3-1)%((' '*l,' '*l,':'*l)*x)[:-1]+o[-2::-1]

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


122 बाइट्स (आपका वैरिएबल tअनावश्यक है)
हाइपरनेत्रिनो

4

SOGL V0.12 , 52 51 बाइट्स

:┌* +1Ο;@*┐1ΟG∙⁴++⁰
b3*Ie4+⁰b3*He⁰32žbH∫3*2+4;e :*ž

यह कोशिश करो!
यह देखते हुए कि 20 बाइट्स एक आयताकार कार्य है, जिसे चारकोल में बिल्ट-इन किया गया है, को देखते हुए बुरा नहीं है।

स्पष्टीकरण:

Rectangle function: (example: on stack 4, 2)
:                   duplicate the top of stack (X pos)      [4, 2, 2]
 ┌*                 get that many "-"es                     [4, 2, "--"]
    +               push "+"                                [4, 2, "--", "+"]
     1Ο             wrap the dashes in pluses               [4, 2, "+--+"]
       ;            get the duplicated X position           [4, "+--+", 2]
        @*          get that many spaces                    [4, "+--+", "  "]
          ┐         push "|"                                [4, "+--+", "  ", "|"]
           1Ο       wrap the spaces with "|"                [4, "+--+", "|  |"]
             G      get the Y value ontop                   ["+--+", "|  |", 4]
              ∙     get an array with that many strings     ["+--+", ["|  |", "|  |", "|  |", "|  |"]]
               ⁴    duplicate the dashes wrapped in pluses  ["+--+", ["|  |", "|  |", "|  |", "|  |"], "+--+"]
                ++  add everything to one array             [["+--+", "|  |", "|  |", "|  |", "|  |", "+--+"]]
Main function: (example input: 2, 5)
b3*                              push variable B (input 1, Y length) multiplied by 3                     [6]
   I                             increase it                                                             [7]
    e4+                          push variable E (input 2, X length) + 4                                 [7, 9]
       ⁰                         execute the rectangle function [in X: E+4, Y: b*3+1]                    [["+---------+","|         |","|         |","|         |","|         |","|         |","|         |","|         |","+---------+"]]
        b3*                      push variable B * 3                                                     [["+---------+",..,"+---------+"], 6]
           H                     decrease it                                                             [["+---------+",..,"+---------+"], 5]
            e                    push variable E                                                         [["+---------+",..,"+---------+"], 5, 5]
             ⁰                   execute the rectangle function [on X: E, Y: B*3-1]                      [["+---------+",..,"+---------+"], ["+-----+","|     |","|     |","|     |","|     |","|     |","+-----+"]]
              32ž                at coordinates [3;2] (1-indexed) in the first rectangle put in the 2nd  [["+---------+",
                                                                                                           "| +-----+ |",
                                                                                                           "| |     | |",
                                                                                                           "| |     | |",
                                                                                                           "| |     | |",
                                                                                                           "| |     | |",
                                                                                                           "| |     | |",
                                                                                                           "| +-----+ |",
                                                                                                           "+---------+"]
                 bH∫             iterate over the numbers from 1 to B-1:                                 [[...], 1]
                    3*2+           push pop()*3+2                                                        [[...], 5]
                        4;         push 4 one below the stack                                            [[...], 4, 5]
                          e        push the variable E (X length)                                        [[...], 4, 5, 5]
                            :*     get that many colons                                                  [[...], 4, 5, ":::::"]
                              ž    insert [at coordinates [4; cIter*3+2] the colons]                     


4

पायथन 2 , 128 126 बाइट्स

L,x=input()
k='+'+'-'*(L+4)+'+\n| +'+'-'*L+'+ |\n'
f=lambda k:'| |'+k*L+'| |\n'
print k+f(':').join([f(' ')*2]*x)[:-1]+k[::-1]

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

-2 बाइट्स @ Mr.Xcoder को धन्यवाद



@ Mr.Xcoder राइट, धन्यवाद, मुझे नहीं पता कि मैं उन अतिरिक्त कोष्ठक के साथ क्या सोच रहा था: P
HyperNeutrino



2

चारकोल , 36 बाइट्स

NθNηFη«M³↑P×θ:»←B⁺θ²⁺׳η¹↖←B⁺θ⁶⁺׳η³

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

यह मेरे अन्य उत्तर की तुलना में अधिक चारकोल-वाई एल्गोरिथ्म है।


1
चारकोल ने आधिकारिक रूप से पूरी चुनौती ले ली है। 4/10 उत्तर चारकोल में हैं ...
श्री एक्सकोडर

@ Mr.Xcoder ठीक है, यह विशेष रूप से गोल्फ एस्की-आर्ट के लिए डिज़ाइन की गई एक भाषा है, इसलिए आपको इसके लिए क्या मिलेगा। ;)
एरिक आउटगोल्फ

1
स्पष्टीकरण का अनुरोध।
कैलक्यूलेटरफल

@ Mr.Xcoder और उनमें से तीन समान लंबाई भी हैं!
नील


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