Salah satu alasan saya selalu menyukai Pokemon adalah karena untuk gim yang tampak sederhana, ia memiliki begitu banyak lapisan kerumitan. Mari kita perhatikan langkah Hidden Power. Dalam gim, jenis dan kekuatan (setidaknya sebelum Generasi VI) dari Hidden Power berbeda untuk setiap Pokemon yang menggunakannya! Itu keren, bukan? Sekarang, apakah Anda akan terkejut jika saya memberi tahu Anda bahwa jenis dan kekuatan Kekuatan Tersembunyi tidak dihasilkan secara acak?
Di semua gim Pokemon, semua Pokemon (bukan hanya yang ada di pesta Anda, ALL POKEMON) memiliki enam bilangan bulat yang disimpan secara internal (satu untuk stat HP, satu untuk stat serangan, satu untuk stat pertahanan, satu untuk stat serangan khusus, satu untuk stat pertahanan khusus dan satu untuk stat kecepatan) yang disebut nilai individualnya, atau infus. Nilai-nilai ini berkisar antara 0 dan 31, dan mereka pada dasarnya adalah salah satu dari beberapa faktor yang memengaruhi statistik Pokemon secara keseluruhan. NAMUN, mereka juga menentukan jenis dan kekuatan Kekuatan Tersembunyi!
Dalam Generasi III ke V (generasi yang algoritmanya akan kami implementasikan), tipe Kekuatan Tersembunyi ditentukan oleh rumus berikut (perhatikan kurung lantai, yang berarti Anda perlu membulatkan hasilnya):
di mana a, b, c, d, e dan f adalah bit paling tidak signifikan dari HP, Attack, Defense, Speed, Sp. Serang, dan Sp. Pertahanan IV masing-masing. (Bit paling tidak signifikan adalah IV mod 2.) Jumlah yang dihasilkan di sini kemudian dapat dikonversi ke tipe aktual menggunakan grafik ini:
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
Untuk tenaga, formula yang sama digunakan:
Namun, di sini, u, v, w, x, y, dan z mewakili bit kedua paling tidak signifikan dari HP, Attack, Defense, Speed, Sp. Attack dan Sp. IV pertahanan (dalam urutan itu lagi). (Bit paling signifikan kedua lebih rumit daripada bit signifikan. Jika IV mod 4 adalah 2 atau 3, maka bitnya adalah 1, jika tidak maka adalah 0. Jika bahasa Anda memiliki semacam built-in atau setidaknya cara yang lebih pintar. untuk melakukan ini, Anda mungkin harus menggunakannya.)
Jadi, seperti yang mungkin sudah Anda ketahui, tantangan di sini adalah menulis sebuah program yang mengambil enam bilangan bulat yang dipisahkan oleh spasi melalui STDIN yang mewakili HP, Attack, Defense, Speed, Sp. Attack dan Sp. Pertahanan IV dari Pokemon (dalam urutan itu) dan menampilkan jenis dan kekuatan Pokemon Hidden Power.
Input sampel:
30 31 31 31 30 31
Output sampel:
Grass 70
Input sampel:
16 18 25 13 30 22
Output sampel:
Poison 61
Ini kode-golf, jadi kode terpendek menang. Semoga berhasil!
(Dan sebelum orang bertanya, saya menggunakan algoritma Generation V di sini karena Generasi VI menghilangkan pengacakan daya dan membuatnya selalu 60. Saya tidak hanya berpikir ini sangat timpang, saya pikir itu membuat tantangan BANYAK KURANG MENARIK. Jadi untuk tujuan tantangan, kami menjalankan game Gen V.)