লুকানো শক্তি ক্যালকুলেটর


15

আমি পোকেমনকে সবসময় ভালোবাসি যে কারণগুলির মধ্যে একটি হ'ল এতো সরল-দর্শনীয় গেমের জন্য, এতে জটিলতার অনেক স্তর রয়েছে। আসুন হিডিং পাওয়ার পদক্ষেপটি বিবেচনা করি। গেমটিতে, লুকানো পাওয়ারের ধরণ এবং শক্তি (কমপক্ষে Gene ম প্রজন্মের পূর্বে) প্রতিটি পোকেমন এটি ব্যবহার করে তার জন্য আলাদা! বেশ সুন্দর, তাই না? এখন, আপনি কি অবাক হবেন যদি আমি আপনাকে বলেছিলাম যে হিডেন পাওয়ারের ধরণ এবং শক্তি এলোমেলোভাবে উত্পন্ন হয় না?

সমস্ত পোকেমন গেমগুলিতে, সমস্ত পোকেমন (কেবল আপনার পার্টিতে নয়, সমস্ত পোকেমন) এর ছয়টি অভ্যন্তরীণ-সঞ্চিত পূর্ণসংখ্যা রয়েছে (একটি এইচপি স্টেটের জন্য একটি, আক্রমণ স্ট্যাটের জন্য একটি, প্রতিরক্ষা স্ট্যাটের জন্য একটি, বিশেষ আক্রমণাত্মক স্ট্যাটের জন্য একটি, একটি বিশেষ প্রতিরক্ষা স্ট্যাটাসের জন্য একটি এবং গতির স্থিতির জন্য একটি) তাদের স্বতন্ত্র মান বা আইভিএস বলে। এই মানগুলি 0 থেকে 31 এর মধ্যে থাকে এবং এগুলি পোকেমন সামগ্রিক পরিসংখ্যানকে প্রভাবিত করে এমন কয়েকটি কারণের মধ্যে মূলত একটি। তবুও, তারা হিডেন পাওয়ারের ধরণ এবং শক্তি নির্ধারণ করে!

জেনারেশন III থেকে V তে (প্রজন্মগুলি যাদের অ্যালগোরিদম আমরা বাস্তবায়ন করব), হাইড পাওয়ারের ধরণটি নিম্নলিখিত সূত্র দ্বারা নির্ধারিত হয় (মেঝে বন্ধনীগুলি নোট করুন, এর অর্থ আপনাকে ফলাফলটি সরিয়ে নেওয়া উচিত):

যেখানে a, b, c, d, e এবং f হ'ল এইচপি, আক্রমণ, প্রতিরক্ষা, গতি, স্পের সর্বনিম্ন উল্লেখযোগ্য বিট। আক্রমণ, এবং স্প। প্রতিরক্ষা IVs যথাক্রমে। (সর্বনিম্ন তাৎপর্যপূর্ণ বিটটি আইভি মড 2)) তবে এখানে উত্পাদিত সংখ্যাটি এই চার্টটি ব্যবহার করে প্রকৃত ধরণে রূপান্তর করা যেতে পারে:

0 Fighting
1 Flying
2 Poison
3 Ground
4 Rock
5 Bug
6 Ghost
7 Steel
8 Fire
9 Water
10 Grass
11 Electric
12 Psychic
13 Ice
14 Dragon
15 Dark

পাওয়ারের জন্য, অনুরূপ সূত্র ব্যবহার করা হয়:

এখানে, তবে, ইউ, ভি, ডাব্লু, এক্স, ওয়াই এবং জেড এইচপি, আক্রমণ, প্রতিরক্ষা, গতি, স্পের দ্বিতীয় সর্বনিম্ন উল্লেখযোগ্য বিটের প্রতিনিধিত্ব করে। আক্রমণ এবং স্প। প্রতিরক্ষা IVs (আবার সেই ক্রমে)। (দ্বিতীয় সর্বনিম্ন তাৎপর্যপূর্ণ বিট আরও জটিল তবে কমপক্ষে তাত্পর্যপূর্ণ বিট I এটি করার জন্য, আপনার সম্ভবত এটি ব্যবহার করা উচিত))


সুতরাং, আপনি সম্ভবত ইতিমধ্যে বুঝতে পেরেছেন, এখানে চ্যালেঞ্জটি হ'ল এইচপি, আক্রমণ, প্রতিরক্ষা, গতি, এসপি প্রতিনিধিত্বকারী STDIN এর মাধ্যমে স্পেস দ্বারা পৃথক পৃথক ছটি পূর্ণসংখ্যার একটি প্রোগ্রাম লিখতে। আক্রমণ এবং স্প। একটি পোকেমন প্রতিরক্ষা IVs (সেই ক্রমে) এবং সেই পোকেমন লুকানো শক্তির ধরণ এবং শক্তি আউটপুট দেয়।

নমুনা ইনপুট:

30 31 31 31 30 31

নমুনা আউটপুট:

Grass 70

নমুনা ইনপুট:

16 18 25 13 30 22

নমুনা আউটপুট:

Poison 61

এটি কোড-গল্ফ, তাই সংক্ষিপ্ততম কোড জয়ী। শুভকামনা!

(এবং লোকেরা জিজ্ঞাসার আগে, আমি এখানে জেনারেশন ভি অ্যালগরিদম ব্যবহার করেছি কারণ জেনারেশন ষষ্ঠ শক্তি র্যান্ডমাইজেশন থেকে মুক্তি পেয়ে সর্বদা 60০ করে তোলে only চ্যালেঞ্জের উদ্দেশ্যে, আমরা একটি জেনারেল ভি গেমটি চালাচ্ছি))


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

কিছু অতিরিক্ত পরীক্ষার নমুনা চমৎকার হবে :)।
ব্ল্যাকহোল

হ্যাঁ, আমার খারাপ। সংশোধন করা হয়েছে।
একটি স্প্যাগেটো

3
আমি মিসিংনো সম্পর্কে একটি চ্যালেঞ্জ দেখতে চাই।
mbomb007

এটি পরবর্তী ঘটতে পারে;)
একটি স্প্যাগেটো

উত্তর:


3

পাইথ, 110 বাইট

J+dGA.b/*iN2CY63Cm_+0jd2_Q"("r@cs@LJjC"!�W��Zm�����A�zB0i��ȏ\"���?wC�ǀ�-#ך
?ЫܦO@�J/m���#"26)G3+30H

এটিতে ছাপার অক্ষর রয়েছে। সুতরাং এখানে একটি হ্যাক্সডাম্প:

00000000: 4a 2b 64 47 41 2e 62 2f 2a 69 4e 32 43 59 36 33  J+dGA.b/*iN2CY63
00000010: 43 6d 5f 2b 30 6a 64 32 5f 51 22 0f 28 22 72 40  Cm_+0jd2_Q".("r@
00000020: 63 73 40 4c 4a 6a 43 22 10 21 de 57 ad c8 5a 1c  cs@LJjC".!.W..Z.
00000030: 10 6d e0 d6 12 f6 80 bc 41 85 7a 42 30 69 ae 80  .m......A.zB0i..
00000040: c8 8f 5c 22 a0 84 ab 3f 77 43 01 ca c7 80 d0 1d  ..\"...?wC......
00000050: 2d 23 d7 9a 0a 3f d0 ab dc a6 4f 40 b9 4a 2f 6d  -#...?....O@.J/m
00000060: d2 ca c6 23 22 32 36 29 47 33 2b 33 30 48        ...#"26)G3+30H

আপনি ফাইলটিও ডাউনলোড করতে পারেন pokemon.pyth এটি চালাতে পারেনpython3 pyth.py pokemon.pyth

ইনপুট 30, 31, 31, 31, 30, 31 মুদ্রণ

Grass
70

ব্যাখ্যা:

J+dGA.b/*iN2CY63Cm_+0jd2_Q".("
J+dG                            store the string " abc...xyz" in J
                 m      _Q      map each number d in reverse(input list) to:
                     jd2          convert d to base 2
                   +0             add a zero (list must have >= 2 items)
                  _               reverse the list
                C               zip
                          ".("  string with the ascii values 15 and 40
     .b                         map each N of ^^ and Y of ^ to:
         iN2                       convert N from base 2 to base 10
        *   CY                     multiply with the ascii value of Y
       /      63                   and divide by 63
    A                           G, H = ^

r@cs@LJjC"longstring"26)G3+30H
        C"longstring"           interpret the string as bytes and convert 
                                from base 256 to base 10
       j             26         convert to base 26
   s@LJ                         lookup their value in J and create a string
                                this gives "fighting flying ... dark"
  c                    )        split by spaces
 @                      G       take the Gth element
r                        3      make the first letter upper-case and print
                          +30H  print 30 + H

3
আমি এটি অদ্ভুত বলে মনে করি যে পাইথনের ফাইল এক্সটেনশনের চেয়ে পাইথ ফাইলগুলির জন্য আপনার ফাইলের এক্সটেনশনটি ভার্জোজ: ^)
ফ্রাইআমএইজিগম্যান

5

রুবি, 210

a=$*.map.with_index{|a,i|[a.to_i%2<<i,a.to_i[1]<<i]}.transpose.map{|a|a.inject &:+}
$><<"#{%w(Fighting
Flying
Poison
Ground
Rock
Bug
Ghost
Steel
Fire
Water
Grass
Electric
Psychic
Ice
Dragon
Dark)[a[0]*15/63]} #{a[1]*40/63+30}"

প্রথম বার গল্ফিং, সুতরাং আমি অনুমান করি এটি বেশ সুস্পষ্ট সমাধান।


3

সিজেম, 140 115 বাইট

q~]W%_1f&2bF*63/"GMÿD>BÙl½}YÛöí6P¶;óKs¯¿/·dǯã®Å[YÑÌÞ%HJ9¹G4Àv"256b25b'af+'j/=(euooSo2f/1f&2b40*63/30+

নোট করুন যে কোডটিতে অপ্রিন্টযোগ্য অক্ষর রয়েছে।

সিজেএম ইন্টারপ্রেটার: ক্রোম | অনলাইনে এটি ব্যবহার করে দেখুন ফায়ারফক্স


বাহ, দ্রুত ছিল। সুন্দর কাজ!
একটি স্প্যাগেটো

2

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

কিন্ডা দীর্ঘ, কমপক্ষে আপাতত। ধরণের তালিকা এবং জটিল গণিতগুলি একই পরিমাণে স্থান গ্রহণ করে। আমি উভয় / উভয়ই ছোট করার উপায়গুলি খুঁজছি looking

x=>([a,b,c,d,e,f]=x.split` `,`Fighting
Flying
Poison
Ground
Rock
Bug
Ghost
Steel
Fire
Water
Grass
Electric
Psychic
Ice
Dragon
Dark`.split`
`[(a%2+b%2*2+c%2*4+d%2*8+e%2*16+f%2*32)*5/21|0]+' '+((a/2%2+(b&2)+(c&2)*2+(d&2)*4+(e&2)*8+(f&2)*16)*40/63+30|0))

যথারীতি পরামর্শগুলি স্বাগত!


1

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

f=(...l)=>(q=(b,m)=>~~(l.reduce((p,c,x)=>p+(!!(c&b)<<x),0)*m/63),'Fighting0Flying0Poison0Ground0Rock0Bug0Ghost0Steel0Fire0Water0Grass0Electric0Psychic0Ice0Dragon0Dark'.split(0)[q(1,15)]+' '+(q(2,40)+30))

উদাহরণ রান:

f(30,31,31,31,30,31)
> "Grass 70"

f(16,18,25,13,30,22)
> "Poison 61"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.