আমাকে একটি কুকি কোড করুন


16

চ্যালেঞ্জ

ইনপুট অনুযায়ী এক ধরণের একটি ASCII কুকি কোড করুন।

ইনপুট

  • কুকি ধরনের। এটি তিনটি স্ট্রিংয়ের মধ্যে একটি: "সরল", "চকোলেট" বা "বাদাম"। ফাংশন আর্গুমেন্ট, স্টিডিন (বা নিকটতম সমতুল্য), বা ফাইল আর্গুমেন্ট হতে পারে।

আউটপুট

  • একটি এএসসিআইআই কুকি। নিচে দেখ.

অবশ্যই

     ___
    /   \
    |   |
    \___/

সরল ইনপুট জন্য,

     ___
    /. .\
    | . |
    \___/

চকোলেট ইনপুট এবং শেষ পর্যন্ত

     ___
    /^  \
    |^ ^|
    \___/

বাদাম ইনপুট জন্য।

অন্যান্য তথ্য

  • এটি আমার প্রথম চ্যালেঞ্জ, এটি যতটা সহজ। গঠনমূলক প্রতিক্রিয়া ব্যাপকভাবে প্রশংসা করা হয়।
  • এটি করার জন্য কোনও উপায় ব্যবহার করুন।
  • চলার জায়গাগুলি ঠিক আছে।
  • এটি একটি কোড গল্ফ চ্যালেঞ্জ, সুতরাং 9 দিন (বুধবার, 12 আগস্ট 2015 এর 12) শেষে স্বল্পতম এন্ট্রি জয়ী।

ধন্যবাদ!

বিজয়ী হলেন 41 বাইট সহ পাইথ ব্যবহার করছেন জাকুবে। যারা অংশগ্রহন করেছো সবাইকে ধন্যবাদ. আমি এখন আরও জটিল চ্যালেঞ্জ নিয়ে নিজেকে নিয়ে কাজ করব।


7
এটি দুর্দান্ত, তবে এটি সাধারণ হিসাবে সহজ। এটি প্রতিটি ধরণের কুকিজের ব্যাস বা পরিমাণের জন্য ব্যবহারকারীর ইনপুট প্রয়োজন করে ব্যাপকভাবে উন্নত করা যেতে পারে। উদাহরণস্বরূপ চকোলেট চিপস এবং বাদামগুলি কি লোকেশনে থাকতে হবে? (পরিবর্তনশীল ব্যাস সহ, তারা সম্ভবত এলোমেলো হতে পারে)) এটি বলেছে, পোস্টের পরে চ্যালেঞ্জটি পরিবর্তন করা খারাপ রূপ। আমি আপনাকে পরামর্শ দিচ্ছি 1. এটি যেমন হয় তেমন ছেড়ে যান, বা 2. এটি মুছুন, এটি সম্পর্কে আরও কিছুটা ভাবুন এবং / অথবা এটি meta.codegolf.stackexchange.com/q/2140/15599 এ পোস্ট করুন তারপরে আবার পোস্ট করুন ।
স্তর নদী সেন্ট

1
একাধিক টপিংকে মঞ্জুরি দেওয়া এটিকে আরও আকর্ষণীয় করার অন্য উপায় হতে পারে। তারপরে, সরল চেহারা চ্যালেঞ্জগুলি প্রায়শই অনেক বেশি অংশগ্রহণ করে। বিটিডাব্লু, দু'টি কুকির নমুনা আউটপুটে শীর্ষস্থানীয় সাদা স্থান রয়েছে। এটা সম্ভবত ইচ্ছাকৃত নয়?
রেটো কোরাডি

1
আমি ইনডেন্টটি বাতিল করতে একটি ছোটখাট সম্পাদনা করেছি, সুতরাং সমস্ত কুকিগুলির একই নেতৃস্থানীয় সাদা স্থান রয়েছে। আমি ধরে নিলাম চারটি শীর্ষস্থানীয় স্থান একটি বিন্যাসের বিষয় এবং এটির প্রয়োজন নেই? শীর্ষস্থানীয় / পিছনে নতুন লাইনের অনুমতি আছে কিনা তা আপনার নির্দিষ্ট করা উচিত। Unnecessaryচ্ছিক ট্রেলিংয়ের নতুন লাইনের অনুমতি ব্যতীত আমি অপ্রয়োজনীয় শ্বেত স্পেসটিকে অস্বীকার করার পরামর্শ দেব।
স্তর নদী সেন্ট

1
ফাংশন অনুমতি দেওয়া হবে?
মেয়রমন্টি

1
@ স্টেভেভারিল আমার চোখ খুলার পরে , এটি কি আপনি একটি স্নোম্যানকে কোড করতে চান এটির একটি সহজ সংস্করণ বলে মনে হচ্ছে ? । উল্লিখিত ভেরিয়েবল ব্যাসের মতো আরও কিছু প্রয়োজনীয়তা সত্যিই এটির উন্নতি করবে।
manatwork

উত্তর:


4

পাইথ, 42 41 বাইট

X" ___
/d a\\
|cac|
\___/"G.>"^X .  .^"Cz

এটি অনলাইনে ব্যবহার করে দেখুন: নিয়মিত ইনপুট / টেস্ট স্যুট

ব্যাখ্যা:

 "..."                      template string
X     G                     replace "a..z" in ^ with:
                   Cz         convert z to an integer (base 256 of ord(char))
       .>"^X .  .^"           rotate "^X .  .^"
                              ["Plain"     -> " .  .^^X", 
                               "Chocolate" -> ".  .^^X ", 
                               "Nuts"      -> " .^^X . "]

7

রুবি, 73

->s{' ___
/'+['^  \
|^ ^','. .\
| . ','   \
|   '][s[0].ord%3]+'|
\___/'}

এটি একটি বেনামে ল্যাম্বদা ফাংশন। এখানে এটি একটি পরীক্ষামূলক প্রোগ্রামে রয়েছে:

g=->s{' ___
/'+['^  \
|^ ^','. .\
| . ','   \
|   '][s[0].ord%3]+'|
\___/'}

puts g.call(gets)

এটি কেবল কুকি ধরণের প্রথম অক্ষর ব্যবহার করে (বড় আকারে) এবং পরিসরে একটি সূচক পেতে মডুলো 3 লাগে 0..2। তারপরে এটি যথাযথ স্ট্রিংগুলি সঠিক জায়গায় এম্বেড করে কুকির প্রতিনিধিত্ব করে স্ট্রিংটি প্রদান করে।


আপনি যদি মনে করেন ordপদ্ধতিটি যদি আপনি পুরো স্ট্রিংয়ের জন্য কল করেন তবে এটি কী করতে পারে? আমার প্রথম ধারণাটি ফর্ম্যাট করা ছিল:->s{" ___\n/%1$s \\\n|%1$s %1$s|\n\\___/"%'^. '[s.ord%3]}
manatwork

ভুলে যাও. আরও একবার trখাটো হিসাবে প্রমাণিত:->s{' ___↵/% \↵|% %|↵\___/'.tr ?%,'^. '[s.ord%3]}
manatwork

@ মান্যাটওয়ার্ক আপনার পরামর্শের জন্য আপনাকে ধন্যবাদ। আমি মিস করেছি s[0] --> s, এটি চেষ্টা করার মত ঘটনা কখনই আমার কাছে ঘটেনি। আপনার কোডটি চকোলেট মামলার সঠিক উত্তর দেবে বলে মনে হচ্ছে না, কারণ বাদামের চেয়ে চকোলেট চিপগুলি বিভিন্ন জায়গায় রয়েছে। তবুও সেখানে কিছু দরকারী ধারণা রয়েছে, আমি পরে তাদের দিকে নজর দেব। আমি আগে trবা ব্যবহার করি নি %
লেভেল নদী সেন্ট

উফ। তুমি ঠিক. এটি ছিল বিসি (কফির আগে) একটি দ্রুত চেষ্টা। চিপ স্থাপনের পার্থক্যটি খুব তাড়াতাড়ি লক্ষ্য করা। :( (বিটিডাব্লু, "%" trএর সিনট্যাক্সের সাথে কোনও সম্পর্ক নেই just আমি যে কুকি আর্টকে স্থানধারক হিসাবে ব্যবহার করেছি তার মধ্যে কেবল এমন একটি চরিত্র জড়িত নয়
manatwork

4

পাইথন 2.7.6, 99 বাইট

def c(t):n=hash(t)%3;return" ___\n/"+" ^."[n]+" "+"  ."[n]+"\\\n|"+[" ","^ ^"," . "][n]+"|\n\\___/"

এই অ্যালগরিদম এই বিষয়টির উপর নির্ভর করে যে hash(cookie)%30 কখন cookie = "Plain", 1 কখন cookie = "Nutএবং 2 কখন দেয় cookie = "Chocolate। যদি কেউ এই কোডটি খাটো করার কোনও উপায় জানেন তবে দয়া করে আমাকে মন্তব্যগুলিতে জানান।



"এটি করার জন্য কোনও উপায় ব্যবহার করুন" " হ্যাঁ, alচ্ছিক যুক্তি অনুমোদিত।
The_Basset_Hound

ঠিক আছে, তবে আমি মনে করি আমি এখনও প্রথমটির সাথে লেগে থাকব এবং দ্বিতীয়টিকে যেমন আছে তেমন রেখে দেব।
লুভজো

@ বেটাডেকে আমি কেবলমাত্র মনে করি না যে alচ্ছিক যুক্তিগুলি আসলে কোড-গল্ফের চেতনায় রয়েছে। আমি আসলে জানি না কেন, আমি কেবল মনে করি এটির অনুমতি দেওয়া উচিত নয়। এখন যেহেতু তারা উভয়ই একই দৈর্ঘ্য, আমি alচ্ছিক-আর্গুমেন্ট সংস্করণটি সরিয়েছি।
লুভজো

3
@ লভজো অদ্ভুত এবং অস্বাভাবিক পদ্ধতি ব্যবহার করে কোড গল্ফের পুরো স্পিরিট :)
বিটা ডেকে

3

সি: 122

q(char *p){char *t,*m;int i=*p%3;t=i?i%2?". .":"   ":"^  ";m=i?i%2?" . ":"   ":"^ ^";printf(" ___\n/%s\\ \n|%s|\n\\___/",t,m);}

আমি গল্ফ শেষ করার পরে ব্যাখ্যা।

ব্যবহারের উদাহরণ:

 int main(void){
 q("Plain");
 printf("\n");
 q("Nut");
 printf("\n"); 
 q("Chocolate");
 }

3

সিজেম, 49 48 বাইট

" ___
/""^  ^ ^. . ."S7*+6/rci=3/"\
|"*"|
\___/"

সিজেএম ইন্টারপ্রেটারে এটি অনলাইনে চেষ্টা করুন ।

কিভাবে এটা কাজ করে

" ___
/"

e# Push that string.

"^  ^ ^. . ."S7*+6/

e# Push that string, append 7 spaces and split into chunks of length 6.
e# This pushes ["^  ^ ^" ". . . " "      "].

rci

e# Read from STDIN, cast to character, then to integer.
e# "Plain", "Chocolate", "Nuts" -> 'P', 'C', 'N' -> 80, 67, 78

=

e# Select the corresponding element from the array.
e# Arrays wrap around in CJam, so for an array A of length 3,
e# A80= is A2=, A67= is A1= and A78= is A0=.

3/

e# Split into chunks of length 3.

"\
|"*

e# Join those chunks, using that string as separator.

"|
\___/"

e# Push that string.

শেষে, সিজেএম স্বয়ংক্রিয়ভাবে স্ট্যাকের সমস্ত উপাদান মুদ্রণ করে।


3

জাভাস্ক্রিপ্ট (ES6), 90

s=>" ___\n/"+(s.length-4?s.length-5?". .\\\n| . ":"   \\\n|   ":"^  \\\n|^ ^")+"|\n\\___/"

এটি একটি বেনামে তীর ফাংশন। কোন কুকি আঁকতে হবে তা নির্ধারণ করতে এটি ইনপুটটির দৈর্ঘ্য ব্যবহার করে।

ব্যাখ্যা:

s=>
 " ___\n/" +               //build the first part of the cookie

 (s.length - 4 ?           //if the length is 4, this condition will evaluate to 0, which coerces to false. Otherwise it is true

      s.length - 5 ?            //if the length is 5, this evaluates to false; otherwise true

           ". .\\\n| . " :      //build the unique part of the Chocolate cookie, if length was not 5
           "   \\\n|   "        //build the unique part of the Plain cookie, if length was 5

      : "^  \\\n|^ ^"      //build the unique part of the Nuts cookie, if length was 4
 )

 + "|\n\\___/"             //build the last part of the cookie, and implicitly return the built string

পরীক্ষা করার জন্য:

f=s=>" ___\n/"+(s.length-4?s.length-5?". .\\\n| . ":"   \\\n|   ":"^  \\\n|^ ^")+"|\n\\___/"

console.log(f("Nuts"))
console.log(f("Plain"))
console.log(f("Chocolate"))

3

BrainFuck, 481 447 436 বাইট

ব্রেইনফ্যাক কেন নয় ?, প্রোগ্রামটি সম্ভবত আরও গল্ফ করা যেতে পারে তবে আমি মনে করি এটি বেশ ঝরঝরে।

,>++++++[-<---------->]<-------[----------->>>-<<+<[-->->+<<]]>>>+>>++.<+++++++++[->>>>>>>++++++++++<+++++<++++++++++++++<++++++++++<+++++<++++++++++<+++<]++++++++++>+++.>+++++...>++>++>-->+>++++<<<<<<<.<<<[->>>>>>.>>>.<<<<<.>>>>>.<<.<<<<.>>>>>.<<<<.>>>>>.<<<<<.>>>>.<<<<<.>>>>.<<...>.<<<<<<]>[->>>>>.<<...>>>.<<<<.>>>>>.<<<<...>>>>.<<<<<.>>>>.<<...>.<<<<<]>[->>>>.>>>>.<<<<<<..>>>.<<<<.>>>>>.>>.<<<<<<.>>>>>>.<<.<<<<<.>>>>.<<...>.<<<<]

3

সি # ইন্ডেন্টেশন এবং লাইন ব্রেক সহ

using System;
class Cookie
{
    static void Main()
    {
      String E="",N="",C=Console.ReadLine();
      if(C=="P"){E="   ";N="   ";}
      if(C=="C"){E=". .";N=" . ";}
      if(C=="N"){E="^  ";N="^ ^";}
      Console.Write(" ___ \n/" + E + "\\ \n|" + N + "|\n\\___/");
    }
}

গল্ফড (225 টি অক্ষর)

using System;class X{static void Main(){String E="",N="",C=Console.ReadLine();if(C=="P"){E="   ";N="   ";}if(C=="C"){E=". .";N=" . ";}if(C=="N"){E="^  ";N="^ ^";}Console.Write(" ___ \n/" + E + "\\ \n|" + N + "|\n\\___/");}}[![enter image description here][1]][1]

1
কেন না String C= Console.ReadLine(),E=... ইত্যাদি?
rpax

আরে @ আরপ্যাক্স, আপনার মন্তব্য আমাকে 2 টি চরিত্র ছাঁটাই করতে সহায়তা করেছে। ধন্যবাদ।
মেরিন নাকারমি

2

সি # 6, 105 বাইট

সুতরাং খুব সহজেই এই সাব-100 বাইট পেয়েছে, যদিও শেষের কয়েকটি বাইটগুলি কোথায় আটকানো হবে সে সম্পর্কে কোনও ধারণা নেই: সি

string C(string t)=>$" ___\n/{(t[0]=='C'?". .\\\n| . ":t[0]=='N'?"^  \\\n|^ ^":"   \\\n|   ")}|\n\\___/";

2

পাইথ, 58 54 53 52 50 বাইট

+d*\_3p+\/j"\\
|"c@["^  ^ ^"*". "3*d6)Chz3\|"\___/

আমি মনে করি না এটি আরও গল্ফ করা যেতে পারে। আমি সত্যিই এটি 50 বাইটের নিচে চেপে ধরার চেষ্টা করছিলাম


একটি দ্রুত এবং সহজ এক". . . " -> *". "3
Sp3000

আপনার আগ্রহী হলে, আমি এটি 42 বাইটে করার একটি দুর্দান্ত পদ্ধতি পেয়েছি ।
জাকুব

2

জাভাস্ক্রিপ্ট (ES6), 72 বাইট

এটি যতটা সহজ হিসাবে প্রায় ... নতুন লাইনগুলি প্রতি 1 টি বাইট হিসাবে গণনা করা হয়

f=s=>` ___
/${s[4]?s[5]?`. .\\
| . `:`   \\
|   `:`^  \\
|^ ^`}|
\\___/`

ডেমো

এটি ES6 হিসাবে, এই ডেমোটি আপাতত ফায়ারফক্স এবং সাফারিতে কাজ করে।

f=s=>` ___
/${s[4]?s[5]?`. .\\
| . `:`   \\
|   `:`^  \\
|^ ^`}|
\\___/`

// Snippet stuff

A.innerHTML = f("Nuts");
B.innerHTML = f("Plain");
C.innerHTML = f("Chocolate");
<p>Nuts</p>
<pre id=A></pre>

<p>Plain</p>
<pre id=B></pre>

<p>Chocolate</p>
<pre id=C></pre>


2

কমোডোর 64 বেসিক, 181 বাইট

10 INPUT A$
20 IF A$="PLAIN" THEN B$="/   \":C$="|   |"
30 IF A$="CHOCOLATE" THEN B$="/. .\":C$="| . |"
40 IF A$="NUTS" THEN C$="/^  \":C$="|^ ^|"
50 PRINT" ___":PRINT B$:PRINT C$:PRINT"\___/"

মন্তব্য:

ব্যাকস্ল্যাশগুলির পরিবর্তে \SHIFT-M অক্ষরগুলি ব্যবহৃত হয়েছে, স্ল্যাশগুলির জন্য /- SHIFT-N এবং পাইপগুলির জন্য |- SHIFT-T। SHIFT-Z (কার্ড ডায়মন্ড সাইন) এর জন্য ব্যবহৃত হয়েছিল^ । প্রকৃতপক্ষে অক্ষরগুলি কোনও বিষয় নয় কারণ তারা প্রত্যেকে একটি করে বাইট দখল করে।

কারণ C64- তে প্রতিটি কমান্ড (PRINT, INPUT, THEN, ইত্যাদি) মেমোরিতে 2 বাইট নেয় (বা কিছু এমনকি একটি, আইআইআরসি), বেসিক ভাষা চেষ্টা করার মতো ছিল (তবে এটি আমার প্রত্যাশার চেয়ে বেশি বাইট লাগল) took

প্রোগ্রামটি টাইপ করার আগে ফ্রি মেমোরি পরিমাপ করে (38909 বাইট) এবং পরে (38728 বাইট) PRINT FRE(0)+65536কমান্ড ব্যবহার করে 181 বাইটের পার্থক্য রেখে প্রোগ্রামের আকার গণনা করা হয়েছিল ।

কোড পরীক্ষিত এবং এই সরঞ্জামটির সাথে তৈরি স্ক্রিনশটগুলি: http://codeazur.com.br/stuff/fc64_final/ (জিপিএল)।

স্ক্রীনশট:

সি 64 স্ক্রিনশট 1

সি 64 স্ক্রিনশট 2


2

লুয়া 5.3, 113 বাইট 112 বাইট

c=io.read()print(' ___\n/'..(c=='plain'and'   \\\n|   'or c=='nut'and'^  \\\n|^ ^'or'. .\\\n| . ')..'|\n\\___/')

এটি প্রচুর পরিমাণে অপারেটর এবং স্ট্রিং কনটেনটেশন ব্যবহার করে এবং আমি সমস্ত সাদা অংশ স্পেস করে যা আউটপুটের অংশ নয় itself


2

জাভা 258 217 টি অক্ষর / বাইট


Golfed

class C{public static void main(String[] a){p(" ___");if(a[0].equals("Chocolate")) {p("/. .\\");p("| . |");}if(a[0].equals("Nut")){p("/^  \\");p("|^ ^|");}p("\\___/");}static void p(String s) {System.out.println(s);}}

মূল

class C {
    public static void main(String[] a) {
        p(" ___");
        if(a[0].equals("Chocolate")) {
            p("/. .\\");
            p("| . |");
        }
        if(a[0].equals("Nut")){
            p("/^  \\");
            p("|^ ^|");
        }
        p("\\___/");
    }
    static void p(String s) {
        System.out.println(s);
    }
}

1

LUA 270 অক্ষর 270 বাইট

    c = io.read()
    if c == "plain" then
    print" ___"
    print"/   \\"
    print"|   |"
    print"\\___/"
    io.read()
    elseif c == "chocolate" then
    print" ___"
    print"/. .\\"
    print"| . |"
    print"\\___/"
    io.read()
    elseif c == "nut" then
    print" ___"
    print"/^  \\"
    print"|^ ^|"
    print"\\___/"
    end

এটি যে কোনও চ্যালেঞ্জের জন্য আমার দ্বিতীয় উত্তর
অ্যালেক্স অ্যালেন

"আপনি কী ধরণের কুকি চান" বের করা যেতে পারে, এটির দরকার নেই। এটি ঠিক সেখানে 39 বাইট আউট লাগে।
দ্য_বাসেট_হাউন্ড

এটি একটি কোড-গল্ফ চ্যালেঞ্জ। আপনার কোডটি কিছুটা ছোট করার চেষ্টা করুন। উদাহরণস্বরূপ আপনার প্রারম্ভিক মুদ্রণের দরকার নেই, ছোট cookieকরতে হবে c, আইএফএসের সময় সাদা স্থান সরিয়ে ফেলতে হবে, সেই অপ্রয়োজনীয় io.read()গুলি সরিয়ে ফেলুন , কুকির প্রথম এবং শেষ লাইন সর্বদা একই থাকে, ....
জাকুবে

@ বাসসাহাউন্ড মুদ্রণ বিবৃতিটি সরিয়ে ফেলেছে
অ্যালেক্স অ্যালেন

@ জাকুব কুকি সি তে ছোট করেছেন
অ্যালেক্স অ্যালেন

1

LOLCODE 265 টি অক্ষর

HAI
I HAS A T
GIMMEH T
VISIBLE " ___"
BOTH SAEM T AN "Chocolate", O RLY?
YA RLY
VISIBLE "/. .\"
VISIBLE "| . |"
OIC
BOTH SAEM T AN "Nut", O RLY?
YA RLY
VISIBLE "/^ ^\"
VISIBLE "|^  |"
OIC
BOTH SAEM T AN "Plain", O RLY?
YA RLY
VISIBLE "/   \"
VISIBLE "|   |"
OIC
VISIBLE "\___/"
KTHXBYE

Run

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