সাধারণ ব্যক্তির মতো স্কিটলস খাওয়া


47

স্কিটলস রঙিন ক্যান্ডি যেখানে 5 স্বতন্ত্র স্বাদ থাকে; আঙুর, সবুজ আপেল, লেবু, কমলা এবং স্ট্রবেরি যথাক্রমে (পি) ইউপ্রেল, (ছ) রেন, (ই) ইওলো, (ও) রেঞ্জ এবং (আর) এড দ্বারা প্রতিনিধিত্ব করা হয়। আমি বিভিন্ন ধরণের রঙ বাছাই করে স্কিটলস খেতাম, তারপরে ক্রমানুসারে সেগুলি খাচ্ছিলাম। অফিসে কয়েকটি অদ্ভুত চেহারা পাওয়ার পরে, আমি এখন এগুলি সাধারণ ব্যক্তির মতো খাওয়ার ভান করি। আপনার কাজ এটি অনুকরণ করা:

আপনার কোড (সম্পূর্ণ প্রোগ্রাম বা ফাংশন) ইনপুট হিসাবে (কোনও যুক্তিসঙ্গত বিন্যাসে) স্কিটলসের একটি অ্যারে (10x10) পাবেন। এই অ্যারেটি অরসোর্টড স্কিটলসের গাদা উপস্থাপন করবে। আপনার কাজটি হ'ল আপনার স্বল্প প্রিয় থেকে পছন্দসই রঙ পর্যন্ত "খাওয়া"। আমার পছন্দের অর্ডারটি হল আঙ্গুর, সবুজ আপেল, লেবু, কমলা, স্ট্রবেরি, তবে যতক্ষণ না ধারাবাহিকভাবে প্রয়োগ করা হয় ততক্ষণ আপনি কোনও অর্ডার বেছে নিতে পারেন (দয়া করে আপনার জমা দেওয়ার ক্ষেত্রে আপনার পছন্দটি তালিকাভুক্ত করুন যাতে আমি এটির জন্য আপনাকে বিচার করতে পারি)। প্রতিটি টুকরো মিছরি খাওয়ার পরে আপনার কোড আউটপুট আসবে (একই ফর্ম্যাটে আপনি ইনপুট নেবেন) খালি টুকরোটির সাথে অবশিষ্ট গাদাটি স্থান দ্বারা প্রতিস্থাপিত হবে। আপনি কেবল আপনার প্রিয় অবধি অবধি পুনরাবৃত্তি করবেন। আপনি খেতে যেকোন স্কিটল বেছে নিতে পারেন (এলোমেলো বা নির্বিচারক হতে পারে)। চলার জায়গাগুলি অবশ্যই রাখতে হবে।

উদাহরণস্বরূপ, আপনার আউটপুট ক্রমটি এর মতো দেখতে পাওয়া যাবে (ব্রেভিটির জন্য 5x5 ব্যবহার করে এবং স্পেসগুলি দেখায় .)

start   1     2     3     4     5        n 
.org. .org. .org. .org. .or.. .or..    ..r..
prgrg .rgrg .rgrg .rgrg .rgrg .r.rg    .r.r.
gggpr gggpr ggg.r ggg.r ggg.r ggg.r    ....r
oyyor oyyor oyyor oyyor oyyor oyyor    ....r
.r.p. .r.p. .r.p. .r... .r... .r...    .r...

এটি , তাই বাইট জেতে সংক্ষিপ্ততম কোড

টিএল; ডিআর বিধি:

  • জমা দেওয়া পুরো প্রোগ্রাম বা ফাংশন হতে পারে
  • ইনপুট কোনও যুক্তিসঙ্গত পদ্ধতিতে (স্ট্রিং, তালিকা, ম্যাট্রিক্স, ইত্যাদি) কোনও যুক্তিসঙ্গত পদ্ধতিতে (এসটিডিআইএন, ফাংশন আর্গুমেন্ট ইত্যাদি) নেওয়া যেতে পারে। তবে সারিগুলির মধ্যে অবশ্যই কিছু বর্ণচিহ্ন থাকতে হবে
  • আউটপুট অবশ্যই কোনও যুক্তিসঙ্গত পদ্ধতি (এসটিডিআউট, ফাংশন রিটার্ন, ect।) দ্বারা ইনপুট হিসাবে একই বিন্যাসে উত্পাদিত করা আবশ্যক। মধ্যবর্তী আউটপুট সীমিত বা নাও হতে পারে
  • প্রথম আউটপুট প্রথম ইনপুট হতে হবে
  • ট্রেলিং স্পেসগুলি অবশ্যই সংরক্ষণ করতে হবে
  • যে কোনও রঙ অর্ডার ব্যবহার করা যেতে পারে (আপনার উত্তরের তালিকা)
  • বর্তমান রঙের কোনও স্কিটল খাওয়া যেতে পারে
  • শেষ আউটপুট কেবল আপনার পছন্দসই রঙ এবং স্পেস হবে
  • যদি সম্ভব হয় তবে আপনার জমাটি পরীক্ষা করতে একটি অনলাইন সংকলকটির একটি লিঙ্ক অন্তর্ভুক্ত করুন

4
@ মুকুলকুমার, ঠিক আছে, আপনি যেতে চাইলে সেগুলি আরও ভাল হতে চান
wnnmaw

2
আমরা কি স্কিটলগুলিকে একক 100-স্কিটল স্ট্রিং হিসাবে গ্রহণ করতে পারি, কোনও লাইন ব্রেক বা কিছু না?
গ্যাব্রিয়েল বেনামি

1
মধ্যবর্তী আউটপুটগুলি কি কোনও কিছুর দ্বারা পৃথক করা দরকার?
অকর্মা


8
আমি এই চ্যালেঞ্জটি প্রবেশ করার বিষয়টি বিবেচনা করেছি এবং তারপরে " দয়া করে আপনার জমা দেওয়ার ক্ষেত্রে আপনার পছন্দকে তালিকাবদ্ধ করুন যাতে এর জন্য আমি আপনাকে বিচার করতে পারি " read আমি মনে করি লোকেরা ইতিমধ্যে আমার পছন্দ সম্পর্কে বিচারক!
টবির স্পিড

উত্তর:


16

জেলি , 16 14  13 বাইট

Ṅ⁶ỤṪ$¦µQL>3µ¿

TryItOnline!

সর্বাধিক থেকে কমপক্ষে প্রিয়, তাদের ওসিডি সম্পর্কে গুরুতর যে কেউ তাদের জন্য বর্ণানুক্রমিক!

পাঠ্য হিসাবে ইনপুট এবং আউটপুট নেয় (অর্থাত সারিগুলি নতুন লাইনে সীমাবদ্ধ হয়)।

দিকটি উল্টিয়ে এবং একটি ভিন্ন পদ্ধতি ব্যবহার করে 3 বাইট সংরক্ষণ করা হয়েছে: বর্ণমালা থেকে অক্ষরগুলি সন্ধান করার চেয়ে গ্রেড আপ।

কিভাবে?

Ṅ⁶ỤṪ$¦µQL>3µ¿ - Main link: Skittle text
      µ    µ  - monadic chain separation
            ¿ - while
       Q      - unique items
        L     - length
         >3   - greater than 3 (until only new lines, spaces and 'g's remain)
Ṅ             -     print z and a line feed, yield z
    $         -     treat last two links as a monad
  Ụ           -         grade up (get indices of: new lines; spaces; gs; os; ps; rs; ys)
   Ṫ          -         tail (the last of those, so last y if there is one, else last r, ...)
 ⁶            -     space character
     ¦        -     apply at index (replace that index with a space)

8

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

চ্যালেঞ্জটিতে বর্ণিত হিসাবে স্বাদগুলি অর্ডার করা হয়: আঙ্গুর, সবুজ আপেল, লেবু, কমলা, স্ট্রবেরি।

ইন্টারমিডিয়েট আউটপুটগুলি নিউলাইন দ্বারা আলাদা করা হয়।

f=(s,n=3,r=s)=>(S=s.replace('oygp'[n],' '))!=s&&(r+=`
`+S)||n--?f(S,n,r):r

পরীক্ষা ক্ষেত্রে

এই পরীক্ষার কেসটি 5x5 উদাহরণ ব্যবহার করছে। অন্য কোনও গ্রিডের আকার প্রত্যাশা অনুযায়ী কাজ করা উচিত।


8

ব্যাশ, 48, 46 বাইট

হালনাগাদ:

  • প্রিন্টফে কাঁচা পরামিতি ব্যবহার করে দুটি বাইট সংরক্ষণ করা;

Golfed

sed -nz "p;:a;`printf "s/%s/ /p;ta;" p g y o`"

স্টিডিনে ইনপুট নেয়, স্টডআউট প্রিন্ট করে। বেগুনি, সবুজ, হলুদ এবং তার পরে কমলা খান।

একটি সমতুল্য সেড প্রোগ্রামটি হ'ল :

p;:a;s/p/ /p;ta;s/g/ /p;ta;s/y/ /p;ta;s/o/ /p;ta

নমুনা আউটপুট (সীমাবদ্ধকরণ কেবল স্পষ্টতার জন্য)

-----
 org 
prgrg
gggpr
oyyor
 r p 
-----
-----
 org 
 rgrg
gggpr
oyyor
 r p 
-----
-----
 org 
 rgrg
ggg r
oyyor
 r p 
-----
-----
 org 
 rgrg
ggg r
oyyor
 r   
-----
-----
 or  
 rgrg
ggg r
oyyor
 r   
-----
-----
 or  
 r rg
ggg r
oyyor
 r   
-----
-----
 or  
 r r 
ggg r
oyyor
 r   
-----
-----
 or  
 r r 
 gg r
oyyor
 r   
-----
-----
 or  
 r r 
  g r
oyyor
 r   
-----
-----
 or  
 r r 
    r
oyyor
 r   
-----
-----
 or  
 r r 
    r
o yor
 r   
-----
-----
 or  
 r r 
    r
o  or
 r   
-----
-----
  r  
 r r 
    r
o  or
 r   
-----
-----
  r  
 r r 
    r
   or
 r   
-----
-----
  r  
 r r 
    r
    r
 r   
-----

এটি অনলাইন চেষ্টা করুন!


7

পাইথন 2, 60 57 56 বাইট

def f(s):print s;q=max(s);q>'g'and f(s.replace(q,' ',1))

repl.it

বিপরীত বর্ণানুক্রমিক ক্রমে খেয়ে থাকা পুনরাবৃত্তি ফাংশন, সবুজ শাক শেষ রেখে দেয়।

ইনপুট sহ'ল একটি 'g'(যেমন একটি নতুন রেখা বা কমা) এর চেয়ে কম অরডিনাল সহ একটি সারি ডিলিমিটারযুক্ত একটি স্ট্রিং ।

ফাংশনটি তার ইনপুট প্রিন্ট করে এবং তারপরে পুনরাবৃত্তি করে যে যদি ইনপুটটিতে কোনও 'g' এর চেয়ে বড় কিছু থাকে, কোনও স্থান দ্বারা প্রতিস্থাপিত সর্বাধিক অক্ষরের প্রথম উপস্থিতি দিয়ে ইনপুটটি পাস করে।

( আমার জেলি উত্তর প্রায় একটি বন্দর ।)


6

পার্ল, 53 46 + 2 = 48 বাইট

সাথে চালাও -0n

-10 বাইটস @ দাদাকে ধন্যবাদ

সম্পাদনা: এটিকে নির্দেশ করার জন্য @ দাদাকেও ধন্যবাদ, আমি প্রথম আউটপুট হিসাবে ইনপুটটি মুদ্রণ করতে ভুলে গিয়েছি। এটা ঠিক করা হয়েছে।

say;eval sprintf"say while s/%s/./;"x4,p,o,g,r

এই উত্তরের সাথে কিছুটা কৌতুক জড়িত, তাই আমি কী ঘটছে তা ভেঙে দেব।

প্রথমত, পার্ল মাল্টি-লাইন প্যারামিটারগুলি পাস করা পছন্দ করে না। পরিবর্তনশীল $/হ'ল ইনপুট রেকর্ড বিভাজক এবং যখনই কোনও ইনপুট এতে সঞ্চিত অক্ষরের মুখোমুখি হয়, দোভাষী সেই ইনপুটটি সমাপ্ত করে একটি নতুন ইনপুট শুরু করে। ডিফল্ট সামগ্রীটি নিউলাইন চরিত্র \n, যার অর্থ একটি বহু-লাইন স্ট্রিং পাস করা সম্ভব নয়। এটি করতে, আমাদের অবশ্যই $/এর সামগ্রীগুলি থেকে আনসেট করতে হবে set যে যেখানে আছে -0পতাকা আসে: সেটিং -0সংরক্ষণ করবে nullপরিবর্তনশীল মধ্যে $/, অনুবাদক অন্তর্নিহিত পরিবর্তনশীল মধ্যে সবকিছু পড়া করতে সক্ষম হবেন $_একবারে।

পরের কৌশলটি হ'ল evalবিবৃতি। ঠিক ঠিক আমরা কি evalকরিতেছি? আমরা বিবৃতিটির evalফলাফলটি ইঙ্গিত করছি sprintfযা নিম্নরূপে ভেঙে গেছে:

প্রথম জিনিসটি যা sprintfপাস হয় তা "say while s/%s/./;"4 বার পুনরাবৃত্তি হয়, তাই:

say while s/%s/./;say while s/%s/./;say while s/%s/./;say while s/%s/./;

তারপরে, sprintfচারটি খালি শব্দ অক্ষর পাস p,o,g,rকরা sprintfহয়েছে, যা প্রতিটি বিবৃতি প্রতিস্থাপন করে বিবৃতিতে বিভক্ত হয় %s। তারপরে আমরা যা পাই তা হ'ল নিম্নলিখিত স্ট্রিংটি যা evalফাংশনে প্রেরণ করা হয় :

say while s/p/./;say while s/o/./;say while s/g/./;say while s/r/./;

প্রতিটি whileলুপ এক্সপ্রেশনকে মূল্যায়ন করে s/[color]/./, যা $_কোনও সময়ের সাথে অন্তর্নিহিত ভেরিয়েবলের যে কোনও রঙের রঙের প্রথম উদাহরণটিকে প্রতিস্থাপন করে । যদি প্রতিস্থাপন করা হয় তবে তা ফিরে আসে 1, অন্যথায় এটি কিছুই দেয় না। যেহেতু s///পার্শ্ব-প্রতিক্রিয়া রয়েছে, তাই এটি মূল ভেরিয়েবলটি সংশোধন করে $_, যার বিষয়বস্তুগুলি পরে প্রিন্ট করা হয় say। এই লুপটির চারটি সংস্করণ সম্পাদনা করা হয়, বেগুনি, কমলা, শাক সবুজ এবং তার পরে রেডগুলি প্রতিস্থাপন করে কেবল ইয়ালো ছেড়ে।

yইয়ালোগুলি যে কারণে বাকি আছে তা হ'ল কারণ একটি খালি শব্দ হতে পারে না, কারণ এটি আসলে একটি ফাংশন এবং yসেই অক্ষরের কোনও পরিবর্তে একটি ত্রুটি ছুঁড়ে ফেলবে। আমি এর চারপাশে উদ্ধৃতি (+2 বাইট) রেখে বা একটি বড় বড় ওয়াই ব্যবহার করে এবং রেজেক্স কেস-সংবেদনশীল (+1 বাইট) তৈরি করে এই পরিবর্তন করতে পারতাম, তবে , প্রতিটি বাইট গণনা করা হয়েছিল, তাই আমি স্থির করেছিলাম যে আমি আসলে পছন্দ করি সর্বাধিক লেবু স্কিটলস।

টি এল; ডিআর: Grape, Orange, Green Apple, Strawberry, Lemon


-0পতাকাটি আপনাকে প্রায় 10 টি বাইট সংরক্ষণ করতে হবে
দাদা

এছাড়াও, আমি আশঙ্কা করছি আপনি এই নিয়মটি মিস করেছেনFirst output shall be the first input
দাদা

1
দুটি বাইট সংরক্ষণের জন্য আপনার নিজের ব্যক্তিগত পছন্দকে ত্যাগ করার জন্য আপনার পক্ষে ভাল
wnnmaw

4

পার্ল, 30 31 33 + 2 = 32 33 35 বাইট

for$x(g,o,p,r){say;s/$x/ /&&redo}

-n0(2 বাইট পেনাল্টি) দিয়ে চালান ।

স্পষ্টতই, আমি স্কিটলসকে বর্ণানুক্রমিক ক্রমে খেতে পছন্দ করি কারণ প্রোগ্রামটি সেভাবে খাটো হয়ে যায়। প্রোগ্রামটির আসলে খুব বেশি ব্যাখ্যার প্রয়োজন নেই: -n0ইনপুট সুস্পষ্টভাবে পড়ে ( -nযার অর্থ "অন্তর্নিহিত পড়ুন ইনপুট", -0যার অর্থ "নিউলাইনগুলিতে ইনপুট ভাঙবেন না"); for$x(g..r)সঙ্গে একটি লুপ রান $xথেকে প্রতিটি অক্ষর থেকে সেট gকরতে rপালাক্রমে; say;কোনও রূপান্তর পরে, বর্তমান ইনপুট মুদ্রণ; সম্ভব হলে একটি জায়গার সাথে একটি বিশেষ s/$x/ /অনুলিপি $x(বিশেষত প্রথমটি) প্রতিস্থাপন করে ; এবং &&redoপ্রতিস্থাপনটি সফল হলে ব্র্যাকের অভ্যন্তরে কোডটি পুনরুক্ত করে (লুপের কাউন্টারকে অগ্রসর না করে)।

এই প্রোগ্রামটির দৈর্ঘ্য পরিবর্তন না করে সহজেই স্কিটলের আরও স্বাদে সাধারণীকরণ করা যেতে পারে এবং যে কোনও আকারের গাদা দিয়ে কাজ করবে।

এখানে একটি আইডিয়োন লিঙ্ক রয়েছে যেখানে আপনি এটি পরীক্ষা করতে পারেন। (আইডিয়ন আপনাকে কমান্ড-লাইন বিকল্পগুলি নির্দিষ্ট করার অনুমতি দেয় না, তাই আমাকে সেট করার শুরুতে কয়েকটি লাইন যোগ করতে হয়েছিল -n0এবং এটি -M5.010আপনি নিখরচায় পাবেন।)


1
আমি নিশ্চিত নই যে আপনাকে স্কিটলসের একই গাদা কয়েকবার মুদ্রণ করার অনুমতি দেওয়া হয়েছে .. (আসলে আমি মনে করি আপনি পারবেন না) সম্ভবত স্যুইচ করতে চান say;for$x(g..r){say while s/$x/ /}?
দাদা

আহ ঠিক. আমার আসলে ছিল for$x(p,o,g,r)যা ছিল না। say whileকেবলমাত্র একটি বাইট দীর্ঘ, এবং এমন কিছু যা আমি বিকল্প হিসাবে বিবেচনা করেছি, তাই আমি কেবল এটিতে পরিবর্তন করতে পারি।

এবং আপনাকে একটি দিয়ে শুরু করতে হবে say;কারণ নিয়মগুলি বলেFirst output shall be the first input
দাদা

ওহ, সেই ক্ষেত্রে আমি সেই for$x(g,o,p,r)সংস্করণে ফিরে যাব যা প্রথমে ইনপুটটি অনুলিপি করে। (যদি রঙগুলি অনুপস্থিত থাকে তবে এটি অনুসন্ধানে কিছুটা অতিরিক্ত সময় লাগে, তবে আপনি স্কিটলসের প্যাকেটে কোনও রঙ অনুপস্থিত আশা করবেন না)) রেকর্ডটির জন্য, say;প্রথম সংস্করণটি হবে 37 বাইট।

যদিও দাদার মূল মন্তব্যটি এখনও দাঁড়িয়ে আছে - কোডটি যেহেতু দাঁড়িয়ে আছে তা একইভাবে কনফিগারেশনটি একসাথে দু'বার মুদ্রণ করবে (একবার শাকের শেষে এবং দ্বিতীয়বার কমলার শুরুতে উদাহরণস্বরূপ)।
DLosc

4

সি #, 134 148 বাইট

ক্রম: G -> O -> Y -> P -> R

I=>{var v=new string(I)+";\n";int i,j=0,c;for(;j<4;){c="goyp"[j++];for(i=0;i<I.Length;i++)if(I[i]==c){ I[i]='.';v+=new string(I)+";\n";}}return v;};

@ পোকের উত্তর থেকে কিছু অনুরূপ জিনিস ব্যবহার করেছেন, বর্তমানে কিছুটা দীর্ঘ হলেও যদিও আমাকে অক্ষরের অ্যারেটিকে স্ট্রিংয়ে রূপান্তর করতে হবে; (


হা! আপনি 3 অক্ষরে পরাজিত !!!
মুকুল কুমার

4

জাভা 7, 139 135 130 151 138 135 বাইট

void t(char[]s){int i,j=-1;for(;++j<5;)for(i=-1;++i<109;)if(j>3|s[i]=="yogp!".charAt(j)){System.out.println(s);if(j>3)return;s[i]=32;}}

ক্রমে স্কিটলস খায়: হলুদ, কমলা, সবুজ, বেগুনি, লাল

আমার ধারণা এটি 2 মুদ্রণ বিবরণীর চেয়ে ভাল


1
অবশ্যই আপনি পারেন, আপনার ফাংশনটির নাম দেওয়া হয়েছে স্কিট: P -3 এখনই!
ইয়ডল

1
@ ইউদল উফ! হাহাহাহা
পোজ

1
আমরা যদি সর্বদা একটি 10x10 গ্রিড পেয়ে থাকি তবে আমি দৈর্ঘ্যটি হার্ডকোডের পরিবর্তে ব্যবহার করতে পারতামs.length
পোকে

1
আমাদের যে কোনও খাওয়ার আগে শুরুতে একবার এটি মুদ্রণ করার দরকার নেই: s
Yodle

1
@ ইয়ুডল সে কারণেই আমি খাচ্ছি "!" স্কিটলস প্রথম;) ... অপেক্ষা করুন আমি মনে করি আমি সেই কৌশলটি ভেঙে
পোকে

4

সি 145 - 5 - 18 - 1 = 121 বাইট

#define l(a)for(a=0;a<10;a++)
i,j,k,b='a';F(char a[][11]){while(b++<'x')l(i)l(j)if(a[i][j]==b){a[i][j]=32;l(k)puts(a[k]);puts("");}}  

অসম্পূর্ণ + সুন্দর

#include<stdio.h>
#include<windows.h>
i,j,k;
F(char a[][11])
{
    char b='a';
    while(b++<'x')
        for(i=0;i<10;i++)
            for(j=0;j<10;j++)
                if(a[i][j]==b)
                {
                    system("cls");
                    a[i][j]=32;
                    for(k=0;k<10;k++)
                        puts(a[k]);
                    puts("");
                    Sleep(35);
                }
}
main()
{
    char a[][11]={
            "gggggggggg",
            "goooooooog",
            "goppppppog",
            "goprrrrpog",
            "gopryyrpog",
            "gopryyrpog",
            "goprrrrpog",
            "gopppppppg",
            "goooooooog",
            "gggggggggg"
    };
    for(i=0;a[i][j];)
        puts(a[i++]);
    F(a);
}  

এখানে a[][11]11 দৈর্ঘ্যের এন-স্ট্রিং গ্রহণের অর্থ হ'ল যেখানে সমাপ্তির জন্য 1 চর প্রয়োজন, প্রযুক্তিগতভাবে কেবল 10 টি দৃশ্যমান অক্ষর।

ক্রম: বর্ণানুক্রমিকভাবে
এই ফাংশন 'g'প্রদত্ত ইনপুটটিতে পরীক্ষা করে এবং এটি 1/1 মুছে ফেলা হয় তারপরে পরিবর্তনশীল হোল্ডিং বৃদ্ধি করে 'g'যতক্ষণ না এটি পরবর্তী ম্যাচ (সম্ভবত চিঠি 'o') সন্ধান করে এবং তারপরে মিলিত অক্ষরগুলি মুছে ফেলে।
খারাপ দিকটি হ'ল এই ফাংশনটি খুব বেশি যত্নশীল o সুতরাং, যদি আপনার স্কিটটেলগুলি 26বর্ণ বর্ণের অ্যাজে থেকে কোড বর্ণিত বিভিন্ন বর্ণের হয় তবে এই ফাংশনটি সেই ইনপুটটিও পরিচালনা করবে ...


এখন 3 এর চেয়ে অনেক বেশি: পি
যোডল

@ ইয়ডল হ্যাঁ..ম্যাক্রোকে ধন্যবাদ আপনি যার সাথে সংজ্ঞা দিতে পারেন #define। এটি 19 বাইট কেটেছিল
মুকুল কুমার

3

অক্টাভা, 49 বাইট

বর্ণানুক্রমিকভাবে স্কিটলস খায়, উচ্চতম আসকি-কোডটি প্রথমে।

A=input("");do [~,p]=max(A(:));A(p)=32 until A<33

3

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

সম্পাদনাগুলি:

  • বিয়োগ 1 বাইট, সঙ্গে টেমপ্লেট আক্ষরিক ব্যবহার করে এর

জাভাস্ক্রিপ্টে একটি পুনরাবৃত্ত সংস্করণ।

Golfed

s=>{r=s;for(c of`pogy`)while(s!=(s=s.replace(c,' ')))r+=`
`+s;return r}

ইনপুট এবং আউটপুট হ'ল মাল্টলাইন স্ট্রিং, "বেগুনি => কমলা => সবুজ => হলুদ" ক্রমে বড়ি খায়।

পরীক্ষা

S=s=>{r=s;for(c of`pogy`)while(s!=(s=s.replace(c,' ')))r+=`
`+s;return r}

console.log(
S(` org 
prgrg
gggpr
oyyor
 r p `)
);


2

পাইথন 3 - 141 99 75 বাইট

s=input();[exec("print(s);s=s.replace(c,' ',1);"*s.count(c))for c in'orgy']

প্রোগ্রাম এই আদেশে স্কিটলস খায় - Orange Red Green Yellow Purple

সম্পাদনা করুন - Flp.Tkc কে ধন্যবাদ যারা 24 বাইট হ্রাস করতে সাহায্য করেছিল!

ইনপুট - 
ygro goppr rppog rppog orgy

আউটপুট - 
ygro goppr rppog rppog orgy
ygr goppr rppog rppog orgy
ygr g পিপিআর আরপিপোগ আরপিপোগ বেলেল্লাপনা
ygr g পি পি আর পি আর পি জি আরপিপোগ বেলেল্লাপনা
ygr g পিআরপি আরপিপি জি আরপিপি জি বেলেল্লাপনা
ygr g পি পি আর পি আর পি জি আরপি জি জি আরজি
yg g পিআরপি আরপিপি জি আরপিপি জি আরজি
yg g pp rpp g rpp g rgy
yg g pp pp g rpp g rgy
yg g pp pp g pp g rgy
yg g pp pp g pp g gy
yg pp pp g pp g gy
y pp pp g pp g gy
y pp pp pp g gy
y pp pp pp gy
y পিপি পিপি পি
        পিপি পিপি পিপি ওয়াই
        পিপি পিপি পিপি  

আমি বিশ্বাস করি এটি আরও সাধারণভাবে দেখায় এটি আরও গল্ফ করা যেতে পারে।


2
দেখে মনে হচ্ছে এটি একসাথে এক রঙের সবগুলি খাচ্ছে তবে এটি একবারে কেবল একটি করে খাওয়া উচিত
wnnmaw

1
এছাড়াও, আপনি নীড় তালিকা হিসাবে ইনপুট নিচ্ছেন, তবে স্ট্রিং উত্পাদন করছেন, দয়া করে আপনার কোডটি এমনভাবে পরিবর্তন করুন যে ইনপুট এবং আউটপুট উভয়ই একই ফর্ম্যাট
wnnmaw

@nnmaw পরিবর্তন হয়েছে। আমি আশা করি এখনই ঠিক আছে :)
গুরুপদ মামাদপুর

1
আমি সেখানে ইতিমধ্যই থাকা একটি সংক্ষিপ্ত সমাধান জানেন, কিন্তু এই অ্যালগরিদম আপনি গলফ এটি আরো ভালো কিছু করার জন্য যা করতে পারেন সঙ্গে স্থিত এই
ফ্লিপট্যাক

3
আমি পছন্দ করি আপনি কীভাবে নির্দিষ্টভাবে অর্ডারিংটি বেছে নিয়েছিলেন orgy
নিক হার্টলি

2

ভিম 57 55 বাইট

আমার লাইন ডিলিমিটারটি সরিয়ে দুটি বাইট সংরক্ষণ করা। দুর্ভাগ্যক্রমে এটি পড়া এবং নির্ভুলতার জন্য পরীক্ষা করা আরও শক্ত করে তোলে :(।

:set ws!
yGP/o
qqnr G9kyGGp@qq@q/y
@q/p
@q/g
@qdG

Unprintables:

:set ws!
yGP^O/o
^Oqq^Hnr G9kyGGp@qq@q/y
^O@q/p
^O@q/g
^O@qdG

TryItOnline

অর্পগুলিতে অর্ডার খায়, সবগুলি শেষের দিকে রেখে :)


1

গণিত, 67 বাইট

Most[#/.(i=0;#:>"."/;i++≤0&/@Characters@"ryop")&~FixedPointList~#]&

লাল খায়, পরে ইয়েলো, কমলা, তারপর বেগুনি।


ছেলে আমি আনন্দিত
এটির

1

জাভা 7, 125 বাইট

বেগুনি, হলুদ, সবুজ, লাল, কমলা। আমি উপভোগ করছি যে আমি এই সমাধানটিতে আমার অর্ডারটি বেছে নেব। : ডি

Golfed

String s(String p){String r=p;for(String c:"pygr".split(""))for(;p.contains(c);r+="\n\n"+p)p=p.replaceFirst(c," ");return r;}

Ungolfed

String s(String p) {
    String r=p;
    for (String c : "pygo".split("")) {
        for (; p.contains(c); r += "\n\n" + p) {
            p = p.replaceFirst(c, " ");
        }
    }
    return r;
}

এখানে চেষ্টা করুন!

@ পোকের দ্বারা অন্য জাভা উত্তরের একটি পৃথক পদ্ধতি। আমরা মূল স্ট্রিংয়ের একটি অনুলিপি তৈরি করে শুরু করি। প্রতিটি রঙের মধ্য দিয়ে চিহ্নিত করে আমরা প্রতিবার কোনও জায়গার সন্ধান পেলে এটি প্রতিস্থাপন করি, তারপরে কমলা বাদে সমস্ত কিছু খাওয়ার পরে ফিরে এসে আউটপুট স্ট্রিংয়ে নতুন লেআউট যুক্ত করি app

নোট

পদক্ষেপগুলির মধ্যে পৃথকীকরণটি একটি ডাবল নিউলাইন দিয়ে সম্পন্ন করা হয় \n\n, তবে ইনপুট গ্রিডটি যদি শেষের দিকে একটি পিছনের নিউলাইন দিয়ে নেওয়া যায় তবে এটি কেবল সংক্ষিপ্ত করা যেতে পারে \n


1

হাস্কেল, 60 বাইট

f x|(a,b:c)<-span(<maximum x)x,b>'g'=(:)<*>f$a++' ':c|1<2=[]

ইনপুট একটি একক স্ট্রিং যেখানে সারিগুলি পৃথক করা হয় ,। রিটার্ন মান হ'ল সমস্ত মধ্যবর্তী পদক্ষেপ সহ স্ট্রিংগুলির একটি তালিকা। অর্ডার বর্ণানুক্রমিকভাবে, বৃহত্তম বৃহত্তম, তাই সবুজ অবশেষ। ব্যবহারের উদাহরণ:

*Main> mapM_ putStrLn $ f " org ,prgrg,gggpr,oyyor, r p "
 org ,prgrg,gggpr,o yor, r p 
 org ,prgrg,gggpr,o  or, r p 
 o g ,prgrg,gggpr,o  or, r p 
 o g ,p grg,gggpr,o  or, r p 
 o g ,p g g,gggpr,o  or, r p 
 o g ,p g g,gggp ,o  or, r p 
 o g ,p g g,gggp ,o  o , r p 
 o g ,p g g,gggp ,o  o ,   p 
 o g ,  g g,gggp ,o  o ,   p 
 o g ,  g g,ggg  ,o  o ,   p 
 o g ,  g g,ggg  ,o  o ,     
   g ,  g g,ggg  ,o  o ,     
   g ,  g g,ggg  ,   o ,     
   g ,  g g,ggg  ,     ,     

সাধারণ পুনরাবৃত্তি। রিটার্ন মানটির জন্য ইনপুট তালিকাটি সংরক্ষণ করুন, gএকটি স্থানের সাথে বৃহত্তর বৃহত্তম উপাদানটি প্রতিস্থাপন করুন এবং ফাংশনটিকে আবার কল করুন। বেস কেস হয় যখন অপসারণের জন্য কোনও উপাদান অবশিষ্ট থাকে না।


1

এমএটিএল, 24 বাইট

`tDX:t2#X>wx32w(10etun2>

এটি অনলাইন চেষ্টা করুন! আমি আমার স্কিটলগুলি বিপরীত বর্ণানুক্রমিক ক্রমে খাওয়া পছন্দ করি: সবুজ আমার প্রিয় রঙ। ব্যাখ্যা:

                           % Take input implicitly.
`                          % Start do ... while loop
 tD                        % Duplicate skittle pile (nom!), but give away for display
   X:                      % Put skittles in long row (like normal people do)
     t2#X>                 % Get least favourite skittle name and number in the row
          wx               % Discard the skittle name
            32w            % Put an eaten skittle on the stack (ASCII 32)
               (           % Put the eaten skittle back in the row of skittles.
                10e        % Shape the row back into a 10x10 array
                   tun     % Check the number of unique skittles
                      2>   % Loop while this number >2 (eaten skittles + favourite skittles)
                           % Implicit end of do... while loop. 
                           % Display last iteration implicitly, since it's still on the stack.

0

কিউব্যাসিক, 125 বাইট

সৃজনশীল নিয়মের গালাগালি!

DATA 71,89,82,79
?INPUT$(109)
DO
READ s
FOR r=1TO 10
FOR c=1TO 10
IF s=SCREEN(r,c)THEN SLEEP 1:LOCATE r,c:?" "
NEXT
NEXT
LOOP

এই জমাটি ধরে নিয়েছে যে অনেক কিছুই ঠিক আছে:

  • ইনপুট এবং আউটপুট বড় হাতের অক্ষর (GORPY )
  • ইনপুটটি 109 ধারাবাহিক কী-চাপ হিসাবে নেওয়া হয়, যা শেষটি প্রবেশ না করা পর্যন্ত পর্দার প্রতিধ্বনি হয় না। সর্বশেষটি ব্যতীত প্রতিটি সারির শেষে, ব্যবহারকারীকে একটি ক্যারেজ রিটার্ন প্রবেশ করতে হবে।
  • স্কিটলস পাইল একাধিকবার মুদ্রণের পরিবর্তে প্রোগ্রামটি প্রতিটি পদক্ষেপের আগে 1 সেকেন্ড বিরতি দিয়ে স্ক্রিনে প্রদর্শন করে। (কিউব্যাসিকের আউটপুট স্ক্রোলব্যাক নেই, তাই একাধিকবার পাইল মুদ্রণ করলে কেবল আপনাকে শেষ ২/২ টি ধাপ দেবে Also এছাড়াও, আপনার স্কিটলসের গাদা সেগুলি খাওয়ার সাথে কীভাবে বিকশিত হয় তারও এই পদ্ধতিটি আরও ভাল চিত্রিত dep
  • প্রোগ্রামটি একটি ত্রুটি দিয়ে শেষ হয়।

আমার কাছে একটি 130-বাইট সংস্করণ রয়েছে যা ছোট হাতের ব্যবহার করে এবং ত্রুটি করে না।

এখানে কিউবি 64 তে একটি নমুনা চলছে , এটি 5x5 গ্রিডে 109পরিবর্তিত হয়েছে 29:

স্কিটলস খাওয়া

ব্যাখ্যা

DATA 71,89,82,79এর ASCII কোড সঞ্চয় করে G, Y, R, এবং O

?INPUT$(109) ব্যবহারকারীর কাছ থেকে 109 টি কীপ্রেস পান এবং সেগুলি মুদ্রণ করে।

তারপরে আমরা একটি অসীম DO ... LOOPনির্মাণে প্রবেশ করি । প্রতিবারের মাধ্যমে আমরা READবর্তমান স্কিটলকে ASCII কোড এ প্রবেশ করি s। তারপর 1 থেকে 10 সারি এবং কলাম উপর আমরা লুপ SCREEN(r,c)সারিতে পর্দায় চরিত্রের হওয়া ASCII কোড পায় r, কলাম c। এটি যদি বর্তমান স্কিটল সমান হয় তবে sআমরা SLEEPএক সেকেন্ডের জন্য এবং তারপরে একটি স্থান মুদ্রণ করি r,c

মূল লুপটি চারবার চলে, সবুজ, হলুদ, লাল এবং কমলা স্কিটলস সরিয়ে। পঞ্চম পুনরাবৃত্তিতে, READত্রুটিগুলি কারণ আমরা ডেটা বাইরে।

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