আমার পথে রঙ পড়ুন


16

রঙগুলি বর্ণনা করার জন্য বিভিন্ন সিস্টেমে বিভিন্ন উপায় রয়েছে, এমনকি তাদের সমস্তগুলি আরজিবিএ স্পেসে কথা বলছে। সিএসএসের সাথে পরিচিত একজন ফ্রন্ট-এন্ড বিকাশকারী পছন্দ করতে পারেন #RRGGBBAA। তবে অ্যান্ড্রয়েড বিকাশকারীরা পছন্দ করতে পারেন #AARRGGBB। এএএস ফাইল ফর্ম্যাটটি পরিচালনা করার সময়,#AABBGGRR প্রয়োজন হয়। এটা খুব বিভ্রান্তিকর। হতে পারে আমাদের এমন একটি প্রোগ্রামের প্রয়োজন যা বিভিন্ন রঙের ফর্ম্যাটগুলির মধ্যে রূপান্তর করতে পারে।

ইনপুট:

ইনপুটটিতে 3 টি অংশ রয়েছে:

  • রূপান্তরিত করার জন্য রঙ (উদাহরণস্বরূপ #1459AC0F), একটি স্ট্রিং তীক্ষ্ণ চিহ্ন দিয়ে শুরু হবে যার #পরে 8 টি হেক্স অঙ্ক রয়েছে।
  • প্রদত্ত বর্ণের বিন্যাস (উদাহরণস্বরূপ #RRGGBBAA), একটি স্ট্রিং যার #পরে শুরু হয় 8 টি বর্ণ যা 4 টি বিভিন্ন গ্রুপে পড়ে এবং প্রতিটি গ্রুপ RR/ GG/ BB/ এর মধ্যে একটি AA
  • রূপান্তর করতে ফর্ম্যাট।

আউটপুট:

  • রূপান্তরিত বিন্যাসে রঙ আউটপুট করুন

পরীক্ষার কেস:

Color, OriginalFormat, TargetFormat -> Result
#12345678, #RRGGBBAA, #AARRGGBB -> #78123456
#1A2B3C4D, #RRGGBBAA, #AABBGGRR -> #4D3C2B1A
#DEADBEEF, #AARRGGBB, #GGBBAARR -> #BEEFDEAD

ইনপুট / আউটপুট কেস সংবেদনশীল। আপনি যে কোনও গ্রহণযোগ্য উপায়ে ইনপুট / আউটপুট দিতে পারেন।

নিয়মাবলী:

এটি প্রতিটি ভাষার জয়ের কোড গল্ফ, সংক্ষিপ্ততম (বাইটে) কোড


AARRGGBBউদ্দেশ্যমূলকভাবে সেরা রঙ বিন্যাস। যদি কিছু 24 বিটের প্রত্যাশা করে RRGGBBএবং আপনি এর AARRGGBBপরিবর্তে 32 বিট দেন তবে এটি কেবল উপরের বাইটটিকে উপেক্ষা করতে পারে এবং এখনও কাজ করতে পারে।
12Me21

2
DEADBEEF রঙটি সামান্য সালমন-ওয়য় দেখাচ্ছে।
ম্যাজিক অক্টোপাস উরন

1
আমি এখন বছরের পর বছর ধরে ফ্রন্ট এন্ড ওয়েব হয়েছি এবং আমি আজ অবধি # আরআরজিবিবিএএ-র কথা কখনও শুনিনি, আরও ব্রাউজারগুলি এটি সমর্থন করে বলে আশা করি।
দাসবিস্টো

@ 12Me21 এবং পরের প্রশ্নটি হল কোনটি শেষের দিকে ভাল?
tsh

উত্তর:


10

এপিএল (ডায়ালগ ইউনিকোড) , 6 বাইট এসবিসিএস

পুরো প্রোগ্রাম। অরিজিনাল, তারপরে টার্গেট, তারপরে রঙের জন্য এসটিডিনে প্রম্পট দেয়। প্রিন্টগুলি ফলাফল STDOUT এ।

⍞[⍞⍋⍞]

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

   আসল জন্য প্রম্পট

⍞⍋ টার্গেটের জন্য প্রম্পট করুন এবং সূচকগুলি মূলতে সূচিত করুন যা মূলকে টার্গেটে পরিণত করবে into

⍞[] রঙের জন্য প্রম্পট করুন এবং রঙ পুনরায় অর্ডার করতে উপরের প্রাপ্ত সূচকগুলি ব্যবহার করুন


8

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

1 টি বাইট সংরক্ষিত হয়েছে @tsh এর জন্য ধন্যবাদ

লাগে 3 স্বতন্ত্র প্যারামিটার হিসেবে ইনপুট: (Color, From, To)

(C,F,T)=>T.replace(/\w/g,(x,i)=>C[F.search(x)-~i%2])

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


(C,F,T)=>T.replace(/\w/g,(x,i)=>C[F.search(x)-~i%2])একটি বাইট সংরক্ষণ করুন
tsh

ভাল লাগল ^^
আর্নল্ড

5

স্ট্যাক্স , 8 বাইট

ç▼☺↔kàÅJ

এটি চালান এবং এটি ডিবাগ করুন

এই প্রোগ্রামটি এই বিন্যাসে ইনপুট নেয়।

"{Color}" "{OriginalFormat}" "{TargetFormat}"

এখানে একই প্রোগ্রামটির মন্তব্যবিহীন আনপ্যাকড সংস্করণ রয়েছে।

u       drop duplicated characters from target format
{       for each character remaining in target format, map using block...
  [     duplicate original format at second position in stack
  |I    get all indices of target character in original format
  xs@   retrieve characters from those indices from the color string
m       perform map
        output implicitly when complete

এটি চালান



4

রেটিনা 0.8.2 , 33 বাইট

(.)(?<=(..).{7}\1\1.*)\1
$2
.*#
#

এটি অনলাইন চেষ্টা করুন! লিঙ্কে পরীক্ষার কেস অন্তর্ভুক্ত রয়েছে। ব্যাখ্যা:

(.)(?<=(..).{7}\1\1.*)\1
$2

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

.*#
#

রঙ এবং উত্স ফর্ম্যাট মুছুন।


3

হাস্কেল , 108 104 100 94 87 বাইট

(s,(r@(x,y):z))!c|x==c=(s++[y],z)|(p,q)<-(s,z)!c=(p,r:q)
c%i=fst.(foldl(!)("",zip i c))

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


পুরাতন রুপ

ব্যবহারের জন্য আরও একটি ছোট উপায় খুঁজে পেয়ে 6 বাইট সংক্ষিপ্ত করার জন্য লাইকোনিকে ধন্যবাদ lookup!

f(Just x)=x
p('#':z)=p z
p(x:y:z)=[x,y]:p z
p e=[]
c!i=('#':).(f.(`lookup`zip(p i)(p c))=<<).p

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

ব্যাখ্যা:

  • দ্য pফাংশন "পার্স" নেতৃস্থানীয় উপেক্ষা দ্বারা একটি স্ট্রিং#2 অক্ষরের এবং ফিরে আসা গোষ্ঠীগুলি (তালিকাগুলি) ।
  • (!)অপারেটর ইনপুট হিসাবে রঙ এবং ইনপুট বিন্যাস নেয় এবং একটি ফাংশন যে আউটপুট ফরম্যাট প্যারামিটার হিসেবে নেয় এবং রূপান্তরিত রঙ ফেরৎ ফেরৎ। দেখা গেল যে পয়েন্টফ্রি সংস্করণটি ছোট ছিল তবে আমি আরও পঠনযোগ্য সংস্করণ দিয়ে শুরু করেছি:

f c i o='#':concat[x#zip(p<$>[i,c])|x<-p o]

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


3

পার্ল 5 -p , 33 32 27 বাইট

ক্রমে ইনপুট দিন: লক্ষ্য, মূল, সংখ্যা

#!/usr/bin/perl -p
s%.%$2x/(..)+$&(.){10}/g%eg

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

ইনপুটটির প্রতিটি অক্ষরের জন্য একই অক্ষরটিকে সামনে সমান সংখ্যক স্থান সন্ধান করুন এবং সেখান থেকে আরও 10 টি অক্ষর এগিয়ে যান এবং সেই অক্ষরটিকে প্রতিস্থাপন হিসাবে নিয়ে যান take আপনি যদি এই পদক্ষেপগুলি কিছুই না করে প্রতিস্থাপন করতে পারেন তবে।

    +--even-+----10---+   
    |       |         |
#AARRGGBB #RRGGBBAA #12345678
    |    >-will get removed-<
    v
    2

2

05 এ বি 1 ই , 10 বাইট

2FI2ô™J}I‡

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


2F     }   # Loop twice...
  I        # First 2 inputs.
   2ô™     # Title case in pairs of 2.
      J    # Rejoin together.
        I  # Last input (The color).
         ‡ # Transliterate, put color in pattern from a into pattern from b.

এটি কাজ করে কারণ আমি থেকে ইনপুটটি পরিবর্তন করেছি:

AARRGGBB

প্রতি:

AaRrGgBb

সুতরাং প্রতিটি মান স্বতন্ত্রভাবে ম্যাপ করা হয়, তারপরে আমি ট্রান্সলিটারেট ব্যবহার করতে পারি।

যুক্তিগুলি বিপরীত হয়।


2

জাভা 10, 179 105 102 বাইট

(a,b,c)->{var r="#";for(int i=1,t;i<9;)r+=a.substring(t=b.indexOf(c.substring(i,i+=2)),t+2);return r;}

হুপ্প্পিং -77 বাইটস @ অলিভিয়ারগ্রোগোয়ারকে ধন্যবাদ ।

ব্যাখ্যা:

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

(a,b,c)->{            // Method with String as three parameters and return-type
  var r="#";          //  Result-String, starting at "#"
  for(int i=1,t;i<9;  //  Loop `i` from 1 to 9 (exclusive)
    r+=               //   Append the result with:
       a.substring(   //    A substring from the first input,
        t=b.indexOf(  //    where an index is determined in the second input
           c.substring(i,i+=2)),t+2);
                      //    based on a substring of the third input
    return r;}        //  Return the result-String

1
105 বাইটস উত্স বিন্যাসে লক্ষ্য উপাদানটি আবিষ্কার করে লক্ষ্য থেকে স্ট্রিং তৈরি করে।
অলিভিয়ার গ্রাগোয়ার

পছন্দ করুন অনেক অনেক ধন্যবাদ, এখনই -74 বাইট!
কেভিন ক্রুইজসেন

জাভা 10 এ স্যুইচ করে 102 বাইট , যা এখন টিআইওতে সমর্থিত।
অলিভিয়ার গ্রাগোয়ার


1

সিজেম, 14 বাইট

{'#\1f>2f/~er}

অনলাইনে চেষ্টা করে দেখুন!

বিপরীতে ক্রমে ইনপুট একটি অ্যারে।

{
 `#\      e# Push '#'+[input array] on to stack
  1f>     e# Remove the '#' symbol from each input string
  2f/     e# Split each input string into an array of substrings of length 2.
  ~       e# Dump the substring-arrays from the container array onto the stack
  er      e# Perform a string replace operation
}     

0

পাইথন 2, 62 বাইট

lambda c,s,e:[c[s.index(e[i]):][:2]for i in range(1,len(e),2)]

0

স্মাইলব্যাসিক, 144 বাইট

DEF R C,I,O
C[0]="&H
A=R+G+B
RGBREAD VAL(C)OUT VAR(I[1]),VAR(I[3]),VAR(I[5]),VAR(I[7])?"#";RGB(VAR(O[1]),VAR(O[3]),VAR(O[5]),VAR(O[7]))END




0

সি (ঝনঝন) , 89 বাইট

char *a,b[10],*i,*o;f(x,y){*b=*a;for(x=1;x<8;b[x++]=a[y=index(i,o[x])-i],b[x++]=a[y+1]);}

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

ইনপুট মান নেয় a, বিন্যাসে ইন iএবং আউট ফরমেটে ইন o। মানটি ফেরত দেয়b

অপ্রাপ্তবয়স্ক প্রতারণা: ফলাফল সংরক্ষণ করে b বাইটগুলি সংরক্ষণ করার জন্য মুদ্রণের পরিবর্তে সংরক্ষণ করে। প্রশ্ন এটিকে অস্বীকার করে না।

সি (ঝনঝন) , 100 বাইট

char *a,b[10],*i,*o;f(x,y){*b=*a;for(x=1;x<8;b[x]=a[y=index(i,o[x])-i],b[x+1]=a[y+1],x+=2);puts(b);}

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

সি (জিসিসি) , 181 বাইট

char *a,*i,*o;c[4],x,y,z;g(x){x=x==82?0:x==71?1:x==66?2:3;}f(){a++;for(;z<2;z++){i=(z?o:i)+1;for(y=0;y<7;z?printf("%s%2X","#"+!!y,c[g(i[y])]):sscanf(a+y,"%2X",&c[g(i[y])]),y+=2);}}

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

বিন্যাসের ভিত্তিতে অ্যারেতে একটি RGBAমান তৈরি c[]করে i, তারপরে oবিন্যাসে প্রিন্ট করে


এর char*a,b[10],*i,*o;f(x)পরিবর্তে char *a,b[10],*i,*o;f(x,y)এবং x+=2)bcopy(a+(long)index(i,o[x])-i,b+x,2);পরিবর্তে পরামর্শ দিনb[x++]=a[y=index(i,o[x])-i],b[x++]=a[y+1]);
সিলিংক্যাট

0

ক্লোজার 1.8, 156 বাইট

(fn[c o t](reduce #(str %(val %2))""(sort-by key(reduce-kv #(let[s(clojure.string/index-of t(nth o %2))](assoc %(if(contains? % s)(inc s)s)%3)){}(vec c)))))

Ungolfed

  (fn [c o t]
    (reduce
     #(str % (val %2))
     ""
     (sort-by key
              (reduce-kv
               #(let [s (clojure.string/index-of t (nth o %2))]
                  (assoc %
                         (if (contains? % s) (inc s) s)
                         %3))
               {}
               (vec c)))))

অনলাইনে এটি চেষ্টা করুন ক্লোজার 1.8 সমর্থন নেই। খুব অদ্ভুত!


0

পার্ল 6 , 55 51 46 বাইট

{[~] %(@^b Z=>@^a){@^c}}o*.map(*.comb(/\w?./))

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

ইনপুট হিসাবে একটি (রঙ, মূল, লক্ষ্য) তালিকায় নেয়। প্রতিটি ইনপুট স্ট্রিংকে উপাদানগুলিতে বিভক্ত করে, রঙের মানগুলিতে একটি হ্যাশ ম্যাপিং উত্স কী তৈরি করে, টার্গেট কী ক্রমে রঙের মান দেখায়, তারপরে ফলাফলটি ফর্ম্যাট করে।

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