পূর্ণসংখ্যা আবেগ


12

একটি প্রোগ্রাম বা ফাংশন লিখুন যা প্রদত্ত পূর্ণসংখ্যা এন (ফাংশন প্যারামিটার / আরগস / স্টিডিনের মাধ্যমে ইনপুট) "প্রতিক্রিয়া" করে

প্রোগ্রামটি নেতিবাচক সংখ্যাগুলির বিষয়ে চিন্তা করে না, এমনকি পছন্দ করে, বিজোড় সংখ্যা অপছন্দ করে এবং 13 নম্বরকে ভয় করে।

এটি নিম্নলিখিত আউটপুট করা উচিত:

যদি এন <0:

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

যদি n% 2 == 0 এবং n> -1:

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

যদি n% 2 == 1 এবং n> -1 এবং n! = 13:

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

যদি এন == 13:

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

বাইটস মধ্যে সংক্ষিপ্ত সমাধান।


2
13 বিজোড়। আমরা কি কেবল একটি মুখ আউটপুট দেব? নেতিবাচকগুলি বিজোড় এবং এমনকি ...

@ মার্টিনবাটনার, সেক্ষেত্রে নেতিবাচক সংখ্যা সম্পর্কে প্রথম নিয়ম সম্পূর্ণ অপ্রয়োজনীয়। একমাত্র অগ্রাধিকার যা প্রকৃতপক্ষে সমস্ত বিধিগুলির প্রয়োজন তা হ'ল প্রথম এবং শেষেরগুলিকে মধ্যবর্তী বিষয়গুলির চেয়ে অগ্রাধিকার দেওয়া।
পিটার টেলর

@ পিটারটেলর উফ, ভাল পয়েন্ট
মার্টিন এন্ডার

@ স্ট্যান্ডার্ডটিস্টার আমি কোনও ভুল বোঝাবুঝি এড়াতে আউটপুট শর্তগুলি সম্পাদনা করেছি
মার্কুজ

উত্তর:


4

সিজেম - 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 এ সংরক্ষণ
X"^^<>__":s"(O)"a2*+2/=~করে চোখের প্রকারগুলি নির্বাচন করে (2) স্ট্রিংস
{S*_@+_,C\-S*2*+@@++}:F- - ফাংশনটি 2 টি স্ট্রিং নেয় (এস 1, এস 2 বলুন) এবং একটি সংখ্যা (এন বলুন) এবং এন স্পেস, এস 2, অন্যান্য স্পেস, এস 1, এন স্পেস সমন্বিত 24-চার স্ট্রিং তৈরি
2 (eyes) 6X3=- (F)~tকরে ম্যাট্রিক্সে চোখের রেখা
7'o5*_7F:Mtরাখে ম্যাট্রিক্সের সাধারণ মুখের রেখাটি এবং
X3={5Mt6'o_7Ft}*এক্সটি 3 হলে এম তেও সংরক্ষণ করে , এটি এমকে আবার ম্যাট্রিক্সে রাখে, 2 লাইন বেশি, এবং মুখ
X2<{X2*6+'o_5Ft}*0 টি 1 বা 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'একটি পরিবর্তনীয় বাইট্রে তৈরি করতে পারবেন যা অন্য স্ট্রিংয়ের মতো একইভাবে মুদ্রণ করে।
Veedrac

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
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.