इंटेगर इमोशंस


12

एक प्रोग्राम या फ़ंक्शन लिखें जो किसी दिए गए पूर्णांक n पर "प्रतिक्रिया करता है" (फ़ंक्शन पैरामीटर / आर्ग / स्टडिन के माध्यम से इनपुट)

कार्यक्रम नकारात्मक संख्याओं के बारे में परवाह नहीं करता है, यहां तक ​​कि पसंद करता है, विषम संख्याओं को नापसंद करता है और संख्या 13 से डरता है।

यह निम्नलिखित उत्पादन करना चाहिए:

यदि n <0:

 --------------------------
 |                        |
 |                        |
(|      _          _      |)
 |                        |
 |                        |
 |                        |
 |                        |
 |       oooooooooo       |
 |                        |
 |                        |
 |                        |
 --------------------------

यदि n% 2 == 0 और n> -1:

 --------------------------
 |                        |
 |                        |
(|      ^          ^      |)
 |                        |
 |                        |
 |                        |
 |     o            o     |
 |       oooooooooo       |
 |                        |
 |                        |
 |                        |
 --------------------------

अगर n% 2 == 1 और n> -1 और n! = 13:

 --------------------------
 |                        |
 |                        |
(|      >          <      |)
 |                        |
 |                        |
 |                        |
 |                        |
 |       oooooooooo       |
 |     o            o     |
 |                        |
 |                        |
 --------------------------

यदि n == 13:

 --------------------------
 |                        |
 |                        |
(|     (O)        (O)     |)
 |                        |
 |                        |
 |       oooooooooo       |
 |       o        o       |
 |       oooooooooo       |
 |                        |
 |                        |
 |                        |
 --------------------------

बाइट्स में सबसे छोटा समाधान जीतता है।


2
13 विषम है। क्या हम केवल एक चेहरे का उत्पादन करते हैं? नकारात्मक विषम हैं और यहां तक ​​कि ...

@ मार्टिनबटनर, उस मामले में नकारात्मक संख्याओं के बारे में पहला नियम पूरी तरह से अनावश्यक है। एकमात्र प्राथमिकता जिसे वास्तव में सभी नियमों की आवश्यकता होती है, वह है पहले और अंतिम लोगों के बीच की प्राथमिकताएँ।
पीटर टेलर

@PeterTaylor उफ़, अच्छी बात है।
मार्टिन एंडर

@StandardToaster मैंने किसी भी गलतफहमी से बचने के लिए आउटपुट स्थितियों को संपादित किया
Markuz

जवाबों:


4

CJam - 169

S24*aB*2li_D=3{_0<2{_2%}?}?\;:X"^^<>__":s"(O)"a2*+2/=~6X3=-{S*_@+_,C\-S*2*+@@++}:F~t7'o5*_7F:MtX3={5Mt6'o_7Ft}*X2<{X2*6+'o_5Ft}*{" |"\+'|+}%S'-26*+aa2*\*_3=1>"()"\*3\tN*

इसे http://cjam.aditsu.net/ पर आज़माएं

उच्च-स्तरीय व्याख्या:

S24*aB*किनारों के बिना चेहरे के लिए रिक्त स्थान से भरा मैट्रिक्स बनाता
li_D=3{_0<2{_2%}?}?\;:Xहै, संख्या को पढ़ता है और इसे 0 (सम), 1 (विषम), 2 (ऋणात्मक) या 3 (13) में परिवर्तित करता है, इसे एक्स में संग्रहीत
X"^^<>__":s"(O)"a2*+2/=~करता है, आंख के प्रकार (2 ) का चयन करता है स्ट्रिंग्स)
{S*_@+_,C\-S*2*+@@++}:F- फंक्शन F में 2 स्ट्रिंग्स (S1, S2) और एक नंबर (N कहते हैं) लेता है और 24 रिक्त स्थान को N स्पेस, S2, अन्य स्पेस, S1 से युक्त बनाता है, N स्पेस
2 (eyes) 6X3=- (F)~tमैट्रिक्स में आंखों की लाइन
7'o5*_7F:Mtडालता है। मैट्रिक्स में आम मुंह लाइन, और यह भी एम में बचाता है
X3={5Mt6'o_7Ft}*अगर एक्स 3 है, तो यह मैट्रिक्स में फिर से एम डालता है, 2 लाइनें अधिक है, और मुंह के किनारों को बीच में डालता है
X2<{X2*6+'o_5Ft}*अगर एक्स 0 या 1 है, तो यह मुंह के कोनों को अंदर डालता है उपयुक्त स्थिति
{" |"\+'|+}%ऊर्ध्वाधर किनारों को जोड़ती है और हर पंक्ति में बाईं ओर एक स्थान
S'-26*+aa2*\*क्षैतिज किनारों को
_3=1>"()"\*3\tजोड़ता है जो कानों को जोड़ता है
N* न्यूलाइन सेपरेटर जोड़ता है


4

रूबी, 241 224

f=->n{s=" #{?-*26}
"
s+=" |#{' '*24}|
"*11+s
s[84]=?(
s[110]+=?)
s[233,12]=m=?O*12
s[91,3]=s[102,3]=n<0?' _ ':n==13?(s[177,12]=m;s[205]=s[216]=?O;'(O)'):(s[203+d=n%2*56]=s[218+d]=?O;" #{n%2<1??^:b=?>} ")
s[103]=?<if b
$><<s}

यह एक फंक्शन को परिभाषित करता है जिसे कहा जाता है f[13]। मुझे यकीन है कि सुधार के लिए बहुत जगह है, इसी तरह वेंटरो ने मुझे यहां करने में मदद की ।

मूल रूप से, मैं पहले किसी न किसी ढांचे का निर्माण कर रहा हूं, और कानों के साथ-साथ मुंह को भी जोड़ सकता हूं। फिर मैं संख्या के आधार पर आंखों को रखता हूं। आंखों में डालने के लिए पात्रों को काम करते समय, मैं विभिन्न मुंह का भी ध्यान रखता हूं, इसलिए मुझे फिर से संख्या के प्रकार की जांच करने की आवश्यकता नहीं है। अंत में मुझे विषम संख्याओं के लिए दाईं आंख को ठीक करने की आवश्यकता है, क्योंकि ऊपर दिए गए कोड दोनों आंखों में एक ही स्ट्रिंग डालते हैं।


4

सी # - 349 बाइट्स

निश्चित रूप से किसी भी पुरस्कार को जीतने के लिए नहीं, बल्कि चीजों को करने का एक अलग तरीका।

golfed:

class P{static void Main(string[]A){int j=64,i,r=0,n=int.Parse(A[0]);for(var f=(n<0?"IDID-TDTD-":n==13?"HDHD(IDIDOJDJD)SDSD(TDTDOUDUD)KIRI JHSJo":n%2<1?"IDID^TDTD^HIHIoUIUIo":"IDID>TDTD<HKHKoUKUKo")+@"JJSJoCBZM BB[M|BA[N-ADAD(\D\D)AA\N AA]N"+"\n";j++<78;)for(i=64;i++<93;System.Console.Write(f[r]))for(r=0;f[r++]>i|f[r++]>j|i>f[r++]|j>f[r++];r++);}}

कम गोल्फ वाला:

class P
{
    static void Main(string[]A)
    {
        int j=64,i,r=0,n=int.Parse(A[0]); // everything is offset by 65 in this program

        for(
            var f=(n<0?"IDID-TDTD-": // this string describes a set of rectangles (x1,y1,x2,y2,ch)
                n==13?"HDHD(IDIDOJDJD)SDSD(TDTDOUDUD)KIRI JHSJo":
                n%2<1?"IDID^TDTD^HIHIoUIUIo":
                "IDID>TDTD<HKHKoUKUKo"
                )+@"JJSJoCBZM BB[M|BA[N-ADAD(\D\D)AA\N AA]N"+"\n";

            j++<78;) // the loop then prints the rectangles to the screen
            for(i=64;i++<93;System.Console.Write(f[r]))
                for(r=0;f[r++]>i|f[r++]>j|i>f[r++]|j>f[r++];r++);
    }
}

3

पायथन 2 - 255

वास्तव में छोटा नहीं है , लेकिन मैं इसे वैसे भी पोस्ट करूंगा:

n=input()
o='o'
S='  '
w=y=7*S
b=' '+'-'*26+'\n'
p=' |%19s     |\n'
E=p%y*2
v=S+o*10+S
u=z=o+6*S+o
A=a='^ '
if n%2:A='< ';a='> ';u=y;w=z
if n<0:A=a='_ ';u=w=y
if n==13:A=a='(O)';u=w=v;v=S+o+S*4+o+S
print b+E+'(|%8s%11s     |)\n'%(a,A)+E+p%u+p%v+p%w+E+b

मुझे पायथन में तार के लिए आइटम असाइनमेंट की याद आती है! :( फिर एक चरित्र मैट्रिक्स के साथ शुरू हो सकता है और बस आँखों और मुंह को संशोधित कर सकता है।


मूल रूप से मैंने वास्तव में रूबी को एक समान पीपीसीजी चुनौती के लिए सीखा था जहां मुझे उस कारण के लिए अपरिवर्तनीय स्ट्रिंग्स की आवश्यकता होती है। : डी
मार्टिन एंडर

आप कर सकते हैं b=bytearray()और फिर b+'mystring'एक उत्परिवर्तनीय बायट्रेयर उत्पन्न करेंगे, जो किसी अन्य स्ट्रिंग के समान प्रिंट करता है।
विड्रैक

3

अजगर 2, 257

विजेता नहीं, बल्कि एक वैकल्पिक दृष्टिकोण, काफी करीब हो गया! मुझे आशा है कि मैं इसमें से कुछ और आकर्षण निचोड़ सकता हूं। वास्तव में बाइट्स को निचोड़ने के लिए आम सबस्ट्रिंग का उपयोग करके, सभी लाइनों को टुकड़ा द्वारा बनाया जाता है।

X,Z=R=" |"
Q=X*5
Y=X*7
A=X+"-"*26
B=R+X*24+Z
n=input()
a,b,c,d,e,f,g=((("^>^<o  o "+Q)[n%2::2],"OO  ()o")[n==13],"__"+Q)[n<0]
for F in(A,B,B,"(|"+Q+e+a+f+Y+X+e+b+f+Q+"|)",B,B,R+Y+g*10+Y+Z,R+Q+c+X+g+Y+X+g+X+c+Q+Z,R+Y+"o"*10+Y+Z,R+Q+d+Y+Q+d+Q+Z,B,B,A):print F

2

सीजेएम, 202

[S'-26*N]:Z[S'|:PS24*PN]:RR'(PS5*qi:XD=X0<-X2%2*+:Y[" ^ "_" > ""(O)"" - "__]=S8*Y[" ^ ""   "" < ""(O)"" - "__]=S5*P')NRRXD=[SPS7*'oA*S7*PN]:QR?Y[[SPS5*'oSC*'oS5*PN]:T_R[SPS7*'oS8*'oS7*PN]RRR]=QY2=TR?RRZ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.