Generazione di numeri pseudo-casuali in Pokémon

da Pokémon Central Wiki, l'enciclopedia Pokémon in italiano.

Un generatore di numeri pseudo-casuali (in inglese, pseudo-random) è il tentativo, nell'elettronica e nell'informatica, di creare dei numeri casuali. I computer (e i dispositivi elettronici in genere) non sono stati progettati per essere casuali; pertanto, nei videogiochi e nelle altre forme software si utilizzano spesso degli algoritmi per simulare una casualità che può portare a determinati eventi, come possono essere gli incontri selvatici in Pokémon. Il grado di casualità apparente dipende dalla possibilità di predire il valore successivo in una serie di numeri generati dall'algoritmo pseudo-casuale.

Meccaniche

Innanzitutto il generatore deve avere un "seme", un numero iniziale dal quale partire. Questo numero è solitamente la data e l'orario in cui l'algoritmo di generazione viene chiamato dal software. I semi sono talvolta derivati dall'input umano (l'interazione dell'utente col software), dato che - per la stessa natura umana - è molto difficile riuscire a fare esattamente la stessa cosa più di una volta: il risultato sembra così essere casuale.

Questo seme viene passato poi attraverso un algoritmo molto complesso, e il risultato viene formattato a seconda delle esigenze del contesto. Il risultato di questa generazione diventa poi esso stesso il seme per un utilizzo successivo del generatore pseudo-casuale, rendendo ricorsivo l'algoritmo che ne sta alla base.

In Pokémon

Prendiamo come seme un numero esadecimale qualsiasi tra 0 e 0xFFFFFFFF, oppure il risultato di una precedente chiamata all'algoritmo. Il risultato sarà:

Questo algoritmo viene utilizzato per:

  • crittare i dati dei Pokémon nel file di salvataggio;
  • generare i valori di Personalità di un Pokémon selvaggio;
  • generare i Valori Individuali di un Pokémon selvaggio;
  • determinare la specie di un Pokémon selvaggio;
  • determinare il numero della Lotteria.

Generatore alternativo di numeri pseudo-random

Il gioco utilizza un algoritmo differente per riutilizzare un valore già generato in precedenza. Sebbene il concetto alla base dell'algoritmo sia lo stesso, l'equazione diventa:

Questo algoritmo viene utilizzato per:

Collegamenti esterni