सुपर स्क्वायर वर्षा


11

स्क्रीम ™ विंटर सेल चालू है और आपने अपने आप को एक गहन न्यूनतर एक्शन गेम, सुपर स्क्वायर में नामांकित किया है । इसे खेलने पर, आपको यह अहसास होता है कि या तो खेल केवल हास्यास्पद है या आप वास्तव में इसके बहुत बुरे हैं। विशेष रूप से, यह "बारिश" पैटर्न है जो आपको हर बार मिलता है ...

यहाँ छवि विवरण दर्ज करें

निराश, आप अपने आप को एक अलग चुनौती देने का निर्णय लेते हैं: ASCII कला में बारिश के पैटर्न को ड्रा करें!

इनपुट

इनपुट एक एकल धनात्मक पूर्णांक है जो पैटर्न के आकार को दर्शाता है n, जिसे STDIN या फ़ंक्शन तर्क के माध्यम से दिया गया है।

उत्पादन

आउटपुट बारिश के पैटर्न को निर्दिष्ट आकार में, एक स्ट्रिंग के रूप में लौटाया जाता है या STDOUT के माध्यम से मुद्रित किया जाता है। संपूर्ण छवि के ठीक पहले या बाद में व्हाट्सएप का नेतृत्व या अनुगामी होना। इसके अतिरिक्त, छवि को स्क्रीन के बाईं ओर फ्लश करने की आवश्यकता नहीं है, लेकिन स्पष्ट रूप से समझ में आना चाहिए।

यहाँ है n = 10:

 ...................
| ----------------- |
|  ...............  |
| | ------------- | |
| |  ...........  | |
| | | --------- | | |
| | |  .......  | | |
| | | | ----- | | | |
| | | |  ...  | | | |
| | | | | - | | | | |
| | | | |   | | | | |
| | | | | - | | | | |
| | | |  ...  | | | |
| | | | ----- | | | |
| | |  .......  | | |
| | | --------- | | |
| |  ...........  | |
| | ------------- | |
|  ...............  |
| ----------------- |
 ...................

यहाँ है n = 5:

 --------- 
  .......  
 | ----- | 
 |  ...  | 
 | | - | | 
 | |   | | 
 | | - | | 
 |  ...  | 
 | ----- | 
  .......  
 --------- 

और अंत में, यहाँ n = 1(सिर्फ दो दीवारें):

 - 

 - 

निर्माण (अतिरिक्त स्पष्टता के लिए)

खेल क्षेत्र को दो जोड़ी में विभाजित किया गया है जैसे:

 AAAAAAAAA
B AAAAAAA B
BB AAAAA BB
BBB AAA BBB
BBBB A BBBB
BBBBB BBBBB
BBBB A BBBB
BBB AAA BBB
BB AAAAA BB
B AAAAAAA B
 AAAAAAAAA

ऊपरी / निचले चतुर्थांश को क्षैतिज दीवारों के बीच हाइफ़न द्वारा दर्शाया जाना चाहिए -, और अंतराल डॉट्स के साथ छायांकित होना चाहिए .। बायां / दायां चतुर्भुज रिक्त स्थान और पाइप द्वारा प्रस्तुत ऊर्ध्वाधर दीवारों के बीच वैकल्पिक होना चाहिए |। मुख्य विकर्ण खाली हैं, और हमेशा रिक्त स्थान से भरा होना चाहिए।

आकार के वर्षा पैटर्न nमें 2nदीवारें होती हैं, जो केंद्र के सबसे ऊपरी / निचले चतुर्थांश की दीवारों के साथ होती हैं और केंद्र से दूर जाते ही चतुर्भुजों के बीच बारी-बारी से दीवारें बनती हैं।

स्कोरिंग

यह कोड-गोल्फ है, इसलिए सबसे कम बाइट्स में कोड जीतता है।


4
यह खेल ... मुझे पता है कि तुम किस बारे में बात कर रहे हो। यह मेरे जीवन के 40 घंटों की तरह चुराया जब तक मैंने इसे हरा नहीं दिया। ^ ^
थ्री एफएक्स

जवाबों:


3

सीजेएम, 93 87 78 61 59 बाइट्स

ri:K_+){K" |"*KKI-z:I-I2%:L+<SL>\+_W%L'-'.?I2*Ig-*@I0=>N}fI

nSTDIN के माध्यम से मूल्य लेता है

कुछ उदाहरण:

1
 - 

 - 
2
 ... 
| - |
|   |
| - |
 ... 
5
 --------- 
  .......  
 | ----- | 
 |  ...  | 
 | | - | | 
 | |   | | 
 | | - | | 
 |  ...  | 
 | ----- | 
  .......  
 --------- 
10
 ................... 
| ----------------- |
|  ...............  |
| | ------------- | |
| |  ...........  | |
| | | --------- | | |
| | |  .......  | | |
| | | | ----- | | | |
| | | |  ...  | | | |
| | | | | - | | | | |
| | | | |   | | | | |
| | | | | - | | | | |
| | | |  ...  | | | |
| | | | ----- | | | |
| | |  .......  | | |
| | | --------- | | |
| |  ...........  | |
| | ------------- | |
|  ...............  |
| ----------------- |
 ................... 

यह बहुत कुछ हो सकता है, जो मैं कल पहली बात करूंगा।

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


5

हास्केल 150 बाइट्स

मुझे लगता है कि यह जीतने वाला नहीं है, मैं अपना पहला कोडगोल्फ पोस्ट करना चाहता था: डी

q n=putStr$unlines$iterate(\l->let[a,b]=if l!!0!!1=='-'then"|."else" -";c=[a:s++[a]|s<-l];t=' ':[b|x<-l!!0]++" "in t:c++[t])[" - ","   "," - "]!!(n-1)

जीएचसीआई में लोड करके और q nजहां nआकार है वहां कॉल करके उपयोग करें ।

कुछ उदाहरण:

*Main> q 1
 - 

 - 
*Main> q 2
 ... 
| - |
|   |
| - |
 ... 
*Main> q 5
 --------- 
  .......  
 | ----- | 
 |  ...  | 
 | | - | | 
 | |   | | 
 | | - | | 
 |  ...  | 
 | ----- | 
  .......  
 --------- 
*Main> q 10
 ................... 
| ----------------- |
|  ...............  |
| | ------------- | |
| |  ...........  | |
| | | --------- | | |
| | |  .......  | | |
| | | | ----- | | | |
| | | |  ...  | | | |
| | | | | - | | | | |
| | | | |   | | | | |
| | | | | - | | | | |
| | | |  ...  | | | |
| | | | ----- | | | |
| | |  .......  | | |
| | | --------- | | |
| |  ...........  | |
| | ------------- | |
|  ...............  |
| ----------------- |
 ................... 

कोई शायद बेहतर कर सकता है, मैं हास्केल के लिए काफी नया हूं।


6
जीतने की चिंता मत करो। ;) जीतना CJam और Pyth के लिए है। अन्य भाषाओं में गोल्फिंग एक ही "वेट क्लास" में सबमिशन को मात देने के बारे में है, और अपनी भाषा की कुछ नई अस्पष्ट विशेषताओं को सीखना है। PPCG में आपका स्वागत है!
मार्टिन एंडर

3

पायथन, 204 , 198 , 191 बाइट्स

r=lambda a,b,d=' ':d.join((a,b,a[::-1]))
def f(s,i,n):d=[r(s[:i],'.-'[(n-i)%2]*((n-i)*2-1))];return i==n and[r(s,' '*(2*(i%2)+1),'')]or d+f(s,i+1,n)+d
g=lambda n:'\n'.join(f('| '*(n/2),0,n))

"आर" एक उपयोगिता फ़ंक्शन है जो एक वैकल्पिक सीमांकक के साथ "बी" परिलक्षित होता है "प्रतिबिंबित" से घिरा हुआ है, (हां लैम्ब्डा मापदंडों में चूक हो सकती है)। "एफ" पुनरावर्ती है, प्रत्येक स्तर के लिए पक्षों और मध्य भागों का निर्माण "जी" बारिश का कार्य है, जिसे अनुरोधित पाठ को वापस करने के लिए पूर्णांक के साथ बुलाया जा सकता है।


मुझे बस एहसास हुआ कि मैं उन कार्यों की अनुमति देना भूल गया हूं जो स्ट्रिंग्स को लौटाते हैं, जिन्हें मैं आमतौर पर अनुमति देता हूं (संपादित किया है)। आप अभी भी
व्हाट्सएप

शॉर्ट सर्किट मूल्यांकन के एक बिट के साथ आप इसे नीचे 190 प्राप्त कर सकते हैं :) लिंक
Sp3000

क्षमा करें, मैंने आपको एक दुर्घटना से बचाया था। यदि आप संपादित करते हैं तो मैं इसे रद्द कर सकता हूं।
नटकी

1

पर्ल 5: 74 बाइट्स (73 कोड + -p)

#!perl -p
s/.*/ /;$a=qw(- .)[$|--]x
s/.+/$"$&$"/g,s/^|\z/ $a 
/g,$"^="\\"for($_)x$&

इनपुट पर पैरामीटर लेता है (उचित कार्य के लिए आवश्यक पंक्ति वर्ण का अंत):

$ perl rain.pl <<<"3"
 ----- 
  ...  
 | - | 
 |   | 
 | - | 
  ...  
 ----- 

Ungolfed:

                         # Read the input line into $_ (-p)
s/.*/ /;                 # Replace the input with a space (plus the original eol), saves the parameter in $&
for(($_)x$&) {           # Iterate $& times without affecting $_
  $c=s/.+/$"$&$"/g;      # Add $" (initially space) at the start and the end of each line, stores number of lines in $c
  $a=("-",".")[$|--]x$c; # Set $a to $c times minus or dot using magic $| (which iterates over 1 and 0 on decrement)
  s/^|\z/ $a \n/g;       # Equivalent to $_=" $a \n$_ $a \n"
  $"^="\\";              # Alternate $" between space and bar using the string xor 
}
                         # Print $_ (-p)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.