Một trong những lý do tôi luôn yêu thích Pokemon là vì một trò chơi có vẻ đơn giản như vậy, nó có quá nhiều lớp phức tạp. Hãy xem xét việc di chuyển Sức mạnh tiềm ẩn. Trong trò chơi, loại và sức mạnh (ít nhất là trước Thế hệ VI) của Sức mạnh tiềm ẩn là khác nhau đối với mỗi Pokemon sử dụng nó! Điều đó thật tuyệt phải không? Bây giờ, bạn có ngạc nhiên không nếu tôi nói với bạn rằng loại và sức mạnh của Sức mạnh tiềm ẩn không được tạo ngẫu nhiên?
Trong tất cả các trò chơi Pokemon, tất cả các Pokemon (không chỉ một người trong nhóm của bạn, TẤT CẢ POKEMON) đều có sáu số nguyên được lưu trữ bên trong (một cho chỉ số HP, một cho chỉ số tấn công, một cho chỉ số phòng thủ, một cho chỉ số tấn công đặc biệt, một cho chỉ số phòng thủ đặc biệt và một cho chỉ số tốc độ) được gọi là giá trị riêng của chúng , hoặc IV. Các giá trị này nằm trong khoảng từ 0 đến 31 và về cơ bản chúng là một trong một vài yếu tố ảnh hưởng đến chỉ số chung của Pokemon. TUY NHIÊN, họ cũng xác định loại và sức mạnh của Sức mạnh tiềm ẩn!
Trong Thế hệ III đến V (các thế hệ sẽ thực hiện thuật toán), loại Sức mạnh tiềm ẩn được xác định theo công thức sau (lưu ý dấu ngoặc sàn, có nghĩa là bạn cần làm tròn kết quả):
trong đó a, b, c, d, e và f là các bit có trọng số thấp nhất của HP, Tấn công, Phòng thủ, Tốc độ, Sp. Tấn công và Sp. IV phòng thủ tương ứng. (Ít nhất là bit đáng kể là IV mod 2.) Số được tạo ở đây sau đó có thể được chuyển đổi thành loại thực tế bằng biểu đồ này:
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
Đối với quyền lực, một công thức tương tự được sử dụng:
Tuy nhiên, ở đây, u, v, w, x, y và z đại diện cho bit đáng kể thứ hai của HP, Tấn công, Phòng thủ, Tốc độ, Sp. Tấn công và Sp. IV phòng thủ (theo thứ tự đó một lần nữa). (Bit có ý nghĩa thứ hai ít phức tạp hơn thì bit đáng kể nhất. Nếu IV mod 4 là 2 hoặc 3, thì bit là 1, nếu không là 0. Nếu ngôn ngữ của bạn có một số loại tích hợp hoặc ít nhất là một cách thông minh hơn để làm điều này, có lẽ bạn nên sử dụng nó.)
Vì vậy, như bạn có thể đã tìm ra, thử thách ở đây là viết một chương trình gồm sáu số nguyên cách nhau bởi các khoảng trắng thông qua STDIN đại diện cho HP, Tấn công, Phòng thủ, Tốc độ, Sp. Tấn công và Sp. Bảo vệ IV của Pokemon (theo thứ tự đó) và xuất ra loại và sức mạnh của Sức mạnh tiềm ẩn của Pokemon đó.
Đầu vào mẫu:
30 31 31 31 30 31
Đầu ra mẫu:
Grass 70
Đầu vào mẫu:
16 18 25 13 30 22
Đầu ra mẫu:
Poison 61
Đây là mã golf, vì vậy mã ngắn nhất sẽ thắng. Chúc may mắn!
(Và trước khi mọi người hỏi, tôi đã sử dụng thuật toán Thế hệ V ở đây vì Thế hệ VI đã loại bỏ ngẫu nhiên hóa năng lượng và luôn luôn là 60. Tôi không chỉ nghĩ rằng điều này là vô cùng khập khiễng, tôi nghĩ rằng nó còn thách thức RẤT NHIỀU LÃI SUẤT. với mục đích thử thách, chúng tôi đang chạy một trò chơi Gen V.)