Événements du jeu
Les événements du jeu sont des traductions du nombre aléatoire généré en un résultat compréhensible spécifique au jeu. Il peut s'agir de l'issue d'un lancer de dés, de l'ordre des cartes dans un jeu ou même de l'emplacement de chaque bombe dans une partie de mines.
Dans notre version des dés, nous couvrons une plage de résultats possibles de 00,00 à 100,00, ce qui représente 10 001 résultats possibles. La traduction de l'événement de jeu est effectuée en multipliant le nombre aléatoire par le nombre de résultats possibles, puis en divisant par 100 pour que le résultat s'inscrive dans la plage de dés indiquée.
// Game event translation
const roll = (float * 10001) / 100;
Dans Limbo, nous utilisons un processus en deux étapes. Tout d'abord, nous multiplions le nombre aléatoire par le multiplicateur maximum possible et la marge de la maison. Ensuite, afin de générer un événement de jeu avec une distribution des probabilités, nous divisons le multiplicateur maximum possible par le résultat de la première étape pour créer l'événement de jeu sous la forme d'un point de crash.
// Game event translation with houseEdge of 0.99 (1%)
const floatPoint = 1e8 / (float * 1e8) * houseEdge;
// Crash point rounded down to required denominator
const crashPoint = Math.floor(floatPoint * 100) / 100;
// Consolidate all crash points below 1
const result = Math.max(crashPoint, 1);
Pour Plinko, le résultat généré est basé sur le chemin de la bille tombante. L'événement de jeu détermine la direction de la bille à chaque niveau de la chute. Les joueurs peuvent choisir entre 8 et 16 épingles, ce qui détermine le nombre d'événements de jeu requis pour générer un chemin complet du haut vers le bas. Étant donné qu'il n'y a que deux directions possibles (gauche ou droite), la traduction est effectuée en multipliant chaque nombre aléatoire par 2, ce qui correspond à l'indice suivant :
// Index of 0 to 1 : left to right
const DIRECTIONS = [ left, right ];
// Game event translation
const direction = DIRECTIONS[Math.floor(float * 2)];
Notre Roulette est dérivée de la version européenne du jeu où la roue comporte 37 poches différentes, numérotées de 0 à 36. L'événement de jeu est calculé en multipliant le nombre aléatoire par 37, puis en le traduisant en poche correspondante à l'aide de l'indice suivant :
// Index of 0 to 36
const POCKETS = [
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
30, 31, 32, 33, 34, 35, 36
];
// Game event translation
const pocket = POCKETS[Math.floor(float * 37)];
Les jeux de Keno traditionnels nécessitent la sélection de 10 événements de jeu sous la forme de numéros gagnants sur un tableau. Pour ce faire, nous multiplions chaque nombre aléatoire par le nombre de cases uniques possibles. Une fois qu'un numéro a été tiré, il ne peut plus être choisi, ce qui modifie la taille de la piscine des résultats possibles. Cela est fait en soustrayant la taille des résultats maximum possibles par 1 pour chaque itération du résultat de l'événement de jeu généré à l'aide du nombre aléatoire correspondant, en utilisant l'indice suivant :
// Index of 0 to 39 : 1 to 40
const SQUARES = [
1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40
];
// The fisher-yates shuffle implementation is utilised to prevent duplicate possible hits being generated.
const hit = SQUARES[Math.floor(float * 40)];
Un jeu de mines est généré avec 24 événements de jeu distincts, sous forme de mines sur le plateau. Chaque nombre flottant est multiplié par le nombre de cases uniques encore disponibles sur le plateau. Cela se fait en soustrayant 1 au nombre de cases restantes à chaque itération du résultat de l’événement de jeu généré, en utilisant le flottant correspondant. L’emplacement de la mine est tracé en utilisant une position de grille de gauche à droite, de haut en bas. L’implémentation du mélange Fisher-Yates est utilisée pour empêcher la génération de frappes en double. Entre 1 et 24 résultats d’événements de jeu sont utilisés, en fonction des paramètres choisis.

