যাদু: জড়ো করা, মন্ত্রের জন্য অর্থ প্রদান


9

আরও এমটিজি-সদ্ব্যবহারের জন্য: যাদু: ক্ষমতা সহ একত্রিত লড়াই

চত্বর:

যাদুতে: জড়ো হওয়াতে, আপনি প্রয়োজনীয় পরিমাণে জমি ট্যাপ করে তাদের মান ব্যয় করে মন্ত্রটি ছুঁড়ে দেন। এই জমিগুলি পাঁচটি রঙের একটি তৈরি করতে পারে যা হ'ল:

  • সাদা (ডাব্লু)
  • নীল (ইউ)
  • কালো (খ)
  • লাল (আর)
  • সবুজ (ছ)

ব্যয়টি দুটি অংশ নিয়ে গঠিত: একটি সংখ্যা যা জেনেরিক মানা প্রয়োজনীয়তা, এবং রঙিন মানার প্রয়োজনীয়তার প্রতিনিধিত্ব করে এমন একটি চিহ্ন। নম্বরটি হ'ল জেনেরিক মানা ব্যয় এবং এটি মানার জন্য যে কোনও রঙের মান ব্যবহার (3)করতে পারে , উদাহরণস্বরূপ প্রদান করা যেতে পারে WGG। চিহ্নগুলি নির্দিষ্ট রঙের 1: 1 প্রয়োজন requirement যেমন WWUBR2 সাদা মানা, 1 নীল, 1 কালো এবং 1 লাল প্রয়োজন and জেনেরিক অংশটি সবসময় রঙিন অংশের আগে আসবে। অনুস্মারক হিসাবে, (0)একটি বৈধ ব্যয় এবং অবশ্যই পরিচালনা করা উচিত।

আপনার সম্পূর্ণ ব্যয়বহুল, বা সম্পূর্ণ রঙিন, বা উভয়ই এমন ব্যয় থাকতে পারে। উদাহরণস্বরূপ, নিম্নলিখিত কার্ডটির দাম 4BB এবং যা রঙিন মানা এবং 2 কালো মানার 4 এর সাথে প্রদান করা হয়:

উদাহরণ কার্ড

এই চ্যালেঞ্জের জমিগুলি প্রতিটি একটি করে মান উত্পাদন করবে। তবে আমরা এমন জমিগুলি বিবেচনা করব যা একাধিক রঙের উত্পাদন করতে পারে তবে কেবলমাত্র 1 মণ উত্পাদন করে। যেমন Gএকটি সবুজ মানা উত্পাদন করবে, WG1 সাদা বা 1 সবুজ উত্পাদন করতে পারে।

ইনপুট:

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

কার্ডের ব্যয় হয় হয় স্ট্রিং, বা রঙিন অংশের জন্য একটি সংখ্যা এবং একটি স্ট্রিংযুক্ত একটি টুপল। যদি জেনেরিক অংশ না থাকে তবে আপনি স্ট্রিং / টিপলকে 0 দিয়ে প্যাড করতে পারেন।

জমির তালিকাটি স্ট্রিংগুলির একটি তালিকা হবে যেখানে প্রতিটি এক প্রদত্ত জমি উত্পাদন করতে পারে। এই তালিকাটি খালি থাকতে পারে (আপনার কোনও জমি নেই)। আপনি এটি বিট-মাস্ক যুক্তি ব্যবহার করে অন্তর্দের তালিকা হিসাবে নিতে পারেন তবে আপনি যদি তা করেন তবে আপনার স্কিম পোস্ট করুন। অর্ডারটি যদি গুরুত্বপূর্ণ হয় তবে তা আপনার উপর নির্ভর করে, অন্যথায় এটি WUBRGক্রম হিসাবে ধরে নেওয়া হবে ।

#Example input formats
"4BB", ("WG","B","B") #
(4,"BB"), (7,3,3)     #Both should return falsy

আউটপুট:

একটি truthyমান যদি আপনি সফলভাবে খরচ আপনার জমি দেওয়া এবং পরিশোধ করতে পারেন falseyমান যদি তুমি না পারো।

নিয়মাবলী:

  • আপনি বৈধ ইনপুট গ্যারান্টিযুক্ত করা হবে
  • মানাকে সর্বদা "WUBRG" ক্রমে থাকতে হবে বলে ধরে নেওয়া হবে। আপনি যদি অন্য একটি আদেশ চান, আপনার উত্তরে তাই লিখুন।
  • রঙগুলি সর্বদা ব্যয় হিসাবে গোষ্ঠীযুক্ত করা হবে, যেমন "ডাব্লুডাব্লুউবিবিআরজি"
  • ইনপুট আপনার পছন্দমতো সমস্ত বড় হাতের অক্ষর বা সমস্ত ছোট হাতের অক্ষর ব্যবহার করবে।
  • আপনার রেগেজ 127[WUBRG]{127}এবং 254 টি জমি হ্যান্ডেল করতে সক্ষম হওয়া উচিত ।
  • স্ট্যান্ডার্ড লুফোলস নিষিদ্ধ
  • এই , প্রতি ভাষা জিতায় সংক্ষিপ্ত উত্তর

উদাহরণ:

"0", ("")                => 1
"1BB", ("WG","B","B")    => 1
"BB", ("WG","B","B")     => 1
"WB", ("WG","B","B")     => 1
"1UB", ("W","U","B")     => 1
"1BB", ("WB","WB","WG")  => 1
"1", ("WG","B","B")      => 1
"1BB", ("WGR","WB","WB") => 1
"WUBRG", ("W","U","B","R","G")  => 1
"1WWUBB", ("W","WG","U","B","B","R")  => 1
"10BB", ("WGR","WB","WB","B","B","B","B","B","B","B","B","B") => 1

"R", ("")                => 0
"4", ("WG","B","B")      => 0
"1BB", ("WG","WB")       => 0
"1UB", ("WG","W","UB")   => 0
"1UBR", ("W","WG","UBR") => 0
"WUBRG", ("WUBRG")       => 0
"1WWUBB", ("W","WG","U","B","B")  => 0
"10UU", ("WGR","WB","WB","B","B","B","B","B","B","B","B","B") => 0

এমটিজি চ্যালেঞ্জ রয়েছে বলে আমি আনন্দিত। +1
নিককো খ্রেসনা

এছাড়াও উল্লেখ করা ভাল যে ব্যয়টির সর্বদা প্রথম অবস্থানে জেনেরিক মান প্রয়োজন (সংখ্যা) থাকবে, তারপরে রঙিন মান প্রয়োজনীয়তা অনুসরণ করবে (ডাব্লু / ইউ / বি / আর / জি)
নিককো খ্রেসনা

@ নিককো খ্রেসনা এটি পরিষ্কার করা হয়েছে, ধন্যবাদ।
ভেস্কাহ


@ এমগিনা বন্দুকের ছেলে আমি অনুমান করি যে এটি আপনার নিজের জমিগুলি কেবল মানা পুল দেওয়ার তুলনায় পার্স করার দরকার আছে সেই অর্থে এটি আলাদা।
ভেস্কাহ

উত্তর:


3

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

হিসাবে ইনপুট নেয় (cost)(lands):

  • গুলিটিBGRUWক্রমযুক্ত অক্ষরের একটি তালিকা, জেনেরিক অংশের সাথে উপসর্গ করা হয়, এমনকি যখন তা0
  • একটিএনগুলি স্ট্রিংগুলির একটি তালিকা।
a=>g=([c,...r],n=0,s=e='')=>[...n+s].sort()+e==a|(c&&[e,e,...c].some((c,i)=>g(r,n+!i,s+c)))

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

মন্তব্য

a =>                        // main function taking the array a[] describing the cost
  g = (                     // g = recursive function taking:
    [c, ...r],              //   c = next land string; r[] = remaining land strings
    n = 0,                  //   n = generic mana, initialized to 0
    s = e = ''              //   s = generated cost string, initialized to e = empty string
  ) =>                      //
    [...n + s].sort() + e   // prepend n to s, split, sort and force coercion to a string
    == a | (                // if this is matching a[], the test is successful
      c &&                  // if c is defined:
      [                     //   try the following recursive calls:
        e,                  //     - increment n and append nothing to s
        e,                  //     - do nothing
        ...c                //     - leave n unchanged and append a character to s
      ].some((c, i) =>      //   for each c at position i in the above array:
        g(r, n + !i, s + c) //     process the recursive call
      )                     //   end of some()
    )                       // end of the recursive part


2

রেটিনা , 60 বাইট

\d+
*
~["^("|'|]")*\n"1,L$`(?<=(^|.*¶)+).*
(?($#1)^|([_$&]))

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

\d+
*

জেনেরিক মানকে অ্যানারিতে রূপান্তর করুন। এটি বারবার _গুলি ব্যবহার করে ।

1,L`.*

প্রথমটির পরে সমস্ত লাইনের সাথে মিল রাখুন, অর্থাৎ জমির তালিকা। (এটি সাধারণত ইনপুটটির একেবারে শেষের দিকে আবার মিলবে তবে লুকবাইন্ড এটি আটকায়))

(?<=(^|.*¶)+)

1-ইনডেক্সড লাইন নম্বরটি ক্যাপচার করুন $#1

$
(?($#1)^|([_$&]))

প্রতিটি জমিটিকে একটি রেইজেক্সের সাথে প্রতিস্থাপন করুন যা সেই জমির সাথে মেলে এমন খরচ বা জেনেরিক ব্যয়গুলি ক্যাপচার করে তবে কেবল একবার।

|'|

|এর সাথে ফলাফলযুক্ত রেজিজেসগুলিতে যোগদান করুন ।

["^("]")*\n"

ইন রেজেক্সটি মোড়ানো ^(এবং )*\n(আমি এখানে একটি to োকানোর মতো মনে করতে পারি না )।

~

বর্তমান মান অনুসারে সেই রেজেক্সের মিলগুলির সংখ্যা গণনা করুন।

উদাহরণ: 1BB¶WB¶WB¶WGউত্পাদিত রেজেক্সের ক্ষেত্রে:

^((?(2)^|([_WB]))|(?(3)^|([_WB]))|(?(4)^|([_WG])))*\n

যা _BB¶WB¶WB¶WGপ্রয়োজন অনুসারে মেলে।


WUBRG, WUBRGফিরতে হবে true?
নিককো খ্রেসনা

@ নিককোখ্রেসনা না, প্রতিটি জমি কেবল একবার ব্যবহার করা যেতে পারে; অর্থ প্রদানের জন্য আপনার কমপক্ষে 5 টি জমি দরকার WUBRG
নীল

ওহ এটি 5 রঙের জমি বোঝায়..আপনি খারাপ বলুন
নিককো খ্রেসনা

1

জেলি , 21 বাইট

Œpµ®œ-)Ạ
L<⁴Ṫ©L+Ḣ¤ȯçṆ

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

আউটপুট

ইনপুট ফর্ম্যাট হ'ল জিলির পক্ষে এটি কী শক্ত করে তোলে। কারণ এবং অ্যারে সংশোধন করে, আমরা ব্যবহার করতে হবে ©এবং ®ছাড়াও। 3 পৃথক ইনপুট সহ এটি 18 বাইট হবে । (যদিও আমি নিশ্চিত যে 14 বা তার বেশি বাইট সমাধান জেলি মাস্টারমাইন্ডগুলির মধ্যে একটি পোস্ট করার জন্য অপেক্ষা করছে))


1

পাইথ , 25 বাইট

&glQ+hAElH}k.-LHusM*GHQ]k

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

পাইথের যদি জেলি'র মতো "অ্যারেটির কার্টেসিয়ান প্রোডাক্ট" ফাংশন থাকে Œpতবে এটি আমার জেলি দ্রবণটিকে সহজেই হারাতে পারে। বর্তমানে এটি দ্বারা সম্পন্ন করা হয় usM*GHQ]k


1

পার্ল 6 , 56 46 বাইট

{(1 x*~*).comb.Bagany [X] $(1 X~$_)>>.comb}

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

কার্ড ফাংশন। (@lands)($generic_cost, $colored_costs)জেনেরিক ব্যয়ের জন্য একটি সুস্পষ্ট 0 হিসাবে ইনপুট নেয় । মূল ধারণাটি হ'ল 1জেনেরিক মানকে উপস্থাপন করে একটি নতুন প্রতীক প্রবর্তন করা এবং জমি থেকে প্রয়োজনীয় মানা পাওয়া সম্ভব কিনা তা পরীক্ষা করতে পার্ল 6 ব্যাগ (মাল্টিসেট) ব্যবহার করা।

ব্যাখ্যা

{ ... }  # Anonymous block returning WhateverCode
  # Preprocess cost
  1 x*    # '1' for generic mana repeated times generic cost
      ~*  # Concat with colored costs
 (      ).comb  # Split into characters
              .Bag  # Convert to a Bag (multiset)
                             # Preprocess lands
                             1 X~$_   # Prepend '1' to each land
                           $(      )  # Itemize to make 1-element lists work
                                    >>.comb  # Split each into chars
                       [X]  # Cartesian product, yields all possible ways
                            # to select colors from lands
                  # Finally check if the cost Bag is a subset of any possible
                  # color selection (which are implicitly converted to Bags)
                  any

1

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

x#[]=[]
x#(s:t)|x`elem`s=t|0<1=s:x#t
(e,[])?s=length s>=e
(e,x:y)?s|x#s==s=0>1|0<1=(e,y)?(x#s)

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

আমরা এই সত্যের উপর নির্ভর করি যে সমস্ত রঙ একই মূল্যে ব্যয় এবং জমির তালিকায় দেওয়া হবে। প্রথমে আমরা প্রয়োজনীয় রঙিন মানা জমিগুলিতে ট্যাপ করি এবং এরপরে পরীক্ষা করে নিই যে বর্ণহীন মূল্য দিতে আমাদের এখনও পর্যাপ্ত জমি রয়েছে।

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