Pikachu
Pokébip Pokédex Espace Membre
Inscription

Mes shasses en cours
de X260

                   



Si vous trouvez un contenu choquant, vous pouvez contacter la modération via le formulaire de contact en PRECISANT le pseudo de l'auteur du blog et le lien vers le blog !

» Retour au blog

D'où vient la fameuse chance sur 8192 ou 4096 qu'un Pokémon rencontré soit shiny ?

1/8192 ou 1/4096 : Pourquoi et Comment ?

Ca fait très longtemps que je n'ai rien écrit ici... Ou que l'inspiration me manquait, ou que je n'avais pas de temps. Quoi qu'il en soit, cela fait quasiment 3 ans que je n'ai pas écrit un seul article ou message sur Pokébip. Je sais pertinemment que personne ne verra ce message, car plus personne ne me connaît ici et parce que ce sujet a déjà été expliqué des milliers de fois. Je l'écrit quand-même pour moi, pour garder une petite trace de ce que je fais de mes vacances, etc. Voyons ceci comme un exercice de synthèse ! Je vais toutefois prendre garde à ne pas enfoncé trop de portes ouvertes. A bon entendeur...
Notez que cet article ne traitera que des chances 1/8192 et 1/4096, c'est à dire des chances de rencontrer un Pokémon brillant à partir de la 3ème génération. En ce qui concerne la 2ème génération, le système est bien différent et semble être devenu obsolète. Je n'en parlerai donc pas ici.

1/8192 : d'où est-ce que cela vient ?

Oui, la dernière fois que j'ai cherché des shiny, la chance venait de passer de 1/8192 à 1/4096. C'est peut-être même un argument qui m'a fait arrêter la shasse. Peu importe...
Si vous cherchez un peu sur Internet la manière dont sont générés les Pokémon, vous trouverez de nombreuses explications de ce style : au lancement du jeu, une graîne (seed en Anglais) est calculé en fonction de plusieurs paramètres (l'heure, par exemple). En théorie, cette seed dépend de tellement de paramètres qu'elle en devient aléatoire. Une fois cette seed déterminée, le jeu effectue en boucle la même opération en reprenant à chaque fois le résultat précédent comme nouvelle graîne. Cette opération est de la forme resultat = a * graîne + b, où les valeurs de a et de b dépendent des jeux1. Chaque résultat correspond à une frame. Vous l'avez compris, donc, ces frames défilent2 en arrière-plan dans le jeu, dès lors où vous avez lancé votre jeu.
Au moment précis où vous rencontrez un Pokémon (dans les hautes herbes, dans l'eau, etc.), le jeu sélectionne la frame actuelle (pas le magazine, hein !) et en tire le PID du Pokémon qui apparaît. Le PID d'un Pokémon, c'est un peu son code génétique : ça détermine ses IVs, sa nature3 et... Son caractère shiny ! Le PID est codé sur 32 bits, autrement dit, c'est un nombre composé de 32 chiffres qui sont soit 0, soit 1.
Comment, à partir du PID, le caractère shiny est-il déterminé ?
Le PID est tout d'abord coupé en deux (donc, en deux suites de 16 chiffres, toujours 0 ou 1), que je vais appeler PID_h et PID_l. Par ailleurs, deux autres valeurs du jeu sont utilisés : il s'agit de l'ID du joueur (ID) et de son ID secret (SID) ; ces deux autres valeurs sont elles aussi codées sur 16 bits. On dispose donc de quatre valeurs codés sur 16 bits : PID_h ; PID_l ; ID et SID.
Pour savoir si le Pokémon qui apparaît est shiny, le jeu fait l'opération suivante :
A = PID_h xor PID_l xor ID xor SID
Et si A < 8, alors le Pokémon est shiny.

C'est bien beau tout ça, mais on trouve ça partout sur Internet, et je vois toujours pas comment on trouve 1/8192. Et puis d'ailleurs, c'est quoi "xor" ?

C'est exactement pour cela que je choisi d'écrire cet article.
Commençons tout d'abord par une petite explication de la fonction xor. Xor est la fonction OU EXCLUSIF. Elle fonctionne ainsi :

J'ai en fait la flemme de terminer ça.
Article ajouté le Mardi 09 Août 2016 à 12h17 | |

Commentaires

Chargement...