একটি স্ট্র্যাটেগো যুদ্ধ মূল্যায়ন করুন


11

গেম স্ট্র্যাটেগোতে, যখন আপনি নিজের সাথে প্রতিপক্ষের টুকরো আক্রমণ করেন তখন মূল গেম মেকানিক হয়। এই চ্যালেঞ্জটিতে আপনার কাজ হ'ল এই লড়াইগুলির একটির অনুকরণ করে এবং কে বেঁচে আছে তা বলে।

চশমা

আপনি স্ট্র্যাপগো টুকরা উপস্থাপন করে স্ট্রিংয়ের একটি জুড়ি ইনপুট হিসাবে পাবেন। টুকরোগুলি এর মধ্যে একটি "S 1 2 3 4 5 6 7 8 9 10 B"( Sস্পাই এবং Bবোমা)। এই জুটির প্রথমটি হবেন আক্রমণকারী এবং দ্বিতীয়টি আক্রমণকারী।

যুদ্ধের ফলাফল নির্ধারণের জন্য এখানে বিধিগুলি রয়েছে:

  • উচ্চতর সংখ্যা beats নিম্ন সংখ্যা: ["4", "6"] -> ["6"]
  • উভয় একই, তবে উভয় ডাই হন: ["7", "7"] -> []
  • স্পাইস নীচে, নীচে এমনকি 1: ["S", "2"] -> ["2"]
  • যাইহোক, যদি গুপ্তচর আক্রমণ 10, তারপর গুপ্তচর ধিক্কার জানাই: ["S", "10"] -> ["S"]
  • কিন্তু স্বাভাবিক নিয়ম এখনও আবেদন করতে যদি 10এক আক্রমণ করছে: ["10", "S"] -> ["10"]
  • কিছু একটি বোমা হামলা, তাহলে বোমা ধিক্কার জানাই: ["5", "B"] -> ["B"]
  • তবে খনিজীবী (ক 3), একটি বোমা defuse পারেন: ["3", "B"] -> ["3"]
  • একটি বোমা কখনই আক্রমণকারী হতে পারে না।
  • একটি স্পটার (ক 1), সাধারণ প্রক্রিয়া ব্যবহার করে আক্রমণ করতে পারে তবে তারা অন্য খেলোয়াড়ের র‌্যাঙ্কটি "অনুমান" করার চেষ্টা করতে পারে, যা কোনও বুদ্ধিমান স্বরলিপি দিয়ে চিহ্নিত করা যেতে পারে।
  • তারা সঠিকভাবে অনুমান করেন, তবে অন্যান্য টুকরা ডাইস: ["1(5)", "5"] -> ["1"]
  • যদি তারা ভুল অনুমান, কিছুই ঘটবে: ["1(3)", "5"] -> ["1", "5"]
  • স্পটার্সচেকার্স বোমা স্পট করতে পারেন: ["1(B)", "B"] -> ["1"]

এটি , তাই বাইটের মধ্যে সংক্ষিপ্ততম কোড !

(আপনি উদাহরণগুলি সেখানে পরীক্ষার ক্ষেত্রে হিসাবে ব্যবহার করতে পারেন, কারণ আমি সেগুলিকে এক তালিকায় একসাথে রাখতে খুব অলস)।


আমরা যথাক্রমে এস এবং বি উপস্থাপন করতে 0 এবং 11 ব্যবহার করতে পারি?
ফাঁস নুন

@ লিক্যন নন, এটি তাদের র‌্যাঙ্ক করা খুব সহজ করে তুলেছে
মালটিসেন

1
আমি র‌্যাঙ্কগুলির বিপর্যয় সম্পর্কে জানতাম (1s সর্বাধিক সর্বাধিক ব্যবহৃত হত, কেবল গুপ্তচরদের আক্রমণ করে মারধর করা হত, 8s খনি ছিল এবং 9s সবচেয়ে খারাপ ছিল) তবে আমি কখনও স্পটার র্যাঙ্ক বা অনুমান-এবং-জয়ের নিয়মের কথা শুনিনি। তবে এটাই তো আমাকে বকবক করছে। প্রকৃত আগ্রহ এখানে: পতাকা কি?
msh210

1
@ এমএস 210 আমি "Victory!"তাদের জন্য আউটপুট রাখার কথা ভাবছিলাম , তবে জিনিসগুলি খুব বেশি জটিল করতে চাইনি
মালটিসেন

বোমা বাদ দিয়ে কোনও স্পাই কোনও যুদ্ধ (যদি আক্রমণকারী একজন) জিততে না পারে এবং সমস্ত প্রতিরক্ষা হারিয়ে ফেলেন? এবং স্ট্র্যাটেগো নিয়মের এটি কোন সেট? স্পটটার (স্কাউটস) 2গুলি হবে, এবং 1আমার স্ট্র্যাটেগো গেমটিতে কোনও এস ছিল না ... (বা তারা কেবল চ্যালেঞ্জের উদ্দেশ্যে সংশোধিত?)
mbomb007

উত্তর:


3

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

এই সমাধানটি #টাইপ সহ একটি ইনফিক্স ফাংশন আকারেString -> String -> String

দুটি স্ট্রিং আর্গুমেন্টের মাধ্যমে ইনপুট গ্রহণ করা হয়। স্পটার ইনপুটটির ফর্ম্যাটটি 1 xযেখানে xঅনুমান O আউটপুট একটি স্ট্রিং হিসাবে দেওয়া হয়। যেখানে উভয় ইউনিট বেঁচে থাকে, প্রত্যাবর্তিত স্ট্রিংয়ে উভয়ই একটি স্থান দ্বারা পৃথক থাকে।

আমার আসল সমাধানটি দুর্ভাগ্যক্রমে বাগড হয়েছিল এবং ফিক্সটির জন্য আমাকে কয়েক বাইট খরচ হয়েছিল।

('1':' ':x)#y|x==y="1"|1>0="1 "++y
"S"#"10"="S"
"3"#"B"="3"
_#"B"="B"
x#y|x==y=[]
t@"10"#_=t
_#t@"10"=t
"S"#x=x
x#"S"=x
x#y=max x y

1

পাইথন, 180 153 বাইট

def f(a,d,g=0):T=([[d]],[[a]]);return([[a]+[d]*(g!=d)]*(g!=0)+[[]]*(a==d)+T[d=="10"]*(a=="S")+T[1]*(d=="S")+T[a=="3"]*(d=="B")+T[int(a,36)>int(d,36)])[0]

ফাংশনটি আক্রমণকারী, ডিফেন্ডার এবং বিকল্পভাবে স্পটারের অনুমান (যদি আক্রমণকারী স্পটকার হয়) আর্গুমেন্ট হিসাবে গ্রহণ করে। এটি লাইভ টুকরোগুলি বিশিষ্ট থাকা একটি অ্যারে প্রদান করে।

Ungolfed

def f(a,d,g=0):
 if g: return [a] if g==d else [a,d]
 if a==d: return []
 if a=="S": return [a] if d=="10" else [d]
 if d=="S": return[a]
 if d=="B": return [a] if a=="3" else [d]
 return [a] if int(a)>int(d) else [d]

ডেমো

https://repl.it/C6Oz/2


([a,d],[a])[g==d]->[a,d][:(g!=d)+1]
লিকি নুন

@ লিকি নুন - ধন্যবাদ, এবং [এ] + [ডি] * (জি == ডি) এখনও কম।
চক মরিস

1

জাভাস্ক্রিপ্ট ES6, 98 86 বাইট

(a,b,g)=>a==1?b==g?a:[a,b]:b=="B"?a==3?a:b:a=="S"?b==10?a:b:b=="S"?a:a==b?[]:+a>+b?a:b

3 টি আরগ গ্রহণ করে (আক্রমণকারী, ডিফেন্ডার, স্পটার অনুমান)।

উদাহরণ রান:

f("4","6")     -> "6"
f("7","7")     -> []
f("S","2")     -> "2"
f("S","10")    -> "S"
f("10","S")    -> "10"
f("5","B")     -> "B"
f("3","B")     -> "3"
f("1","5","5") -> "1"
f("1","5","3") -> ["1","5"]
f("1","B","B") -> "1"

1
আপনার যদি অ্যারেটি ফেরত দেওয়ার দরকার না হয় তবে আপনি কয়েকটি বাইট সংরক্ষণ করতে পারেন।
চার্লস

আপনার কোডটি আমার জন্য সঠিকভাবে কাজ করছে না যখন কোনও স্পটোর অনুমান করে না। f("1","10") -> ["1","10"]বরং "10"
ankh-morpork

0

জাভাস্ক্রিপ্ট, 179 166 160 বাইট

f=(a,c,b,n="")=>{if(c)if(c==b)return[a];else return[a,b];if(a==b)return[];a+b=="3B"&&(b=n);a=b=="B"?n:a;b=b=="S"?n:b;a+b=="S10"&&(a=n,b="S");return[+a>+b?a:b]}

এই ফাংশনটিতে 3 টি আর্গুমেন্ট লাগে - প্রথমটি হ'ল আক্রমণকারী, দ্বিতীয়টি স্পটারগুলির জন্য ব্যবহৃত হয় (তাদের অনুমান) এবং তৃতীয়টি ডিফেন্ডার।

তরোয়াল আইকন ক্লিপার্টস.কম থেকে আসে


0

টিএসকিউএল, 162 124 বাইট

Golfed:

DECLARE @1 varchar(2)='1',@ varchar(2)='3',@s varchar(2)='4'

PRINT IIF(@s>'',IIF(@=@s,@1,@1+','+@),IIF(@1=@,'',IIF(@1+@
IN('S10','3B')or'S'=@,@1,IIF(@='B'or'S'=@1,@,IIF(@1/1<@,@1,@)))))

Ungolfed:

DECLARE 
  @1 varchar(2)='1', -- first piece
  @  varchar(2)='3',  -- second piece
  @s varchar(2)='4'  -- spotter(only fill this value for spotters)

PRINT
  IIF(@s>'',
    IIF(@=@s,@1,@1+','+@),
      IIF(@1=@,'',
        IIF(@1+@ IN('S10','3B')or'S'=@,@1,
          IIF(@='B'or'S'=@1,@,
            IIF(@1/1<@,@1,@)))))

বেহালা

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