8 votes

Quelle est la distribution de probabilité des jets de CthulhuTech ?

J'ai récemment appris l'existence de CthulhuTech, qui possède un système unique de pool de dés :

CthulhuTech utilise un système de jeu propriétaire connu sous le nom de "Framewerk" qui se concentre sur un système de pool de dés. Une caractéristique inhabituelle est la sélection des nombres à partir des jets de d10 - un joueur peut choisir un seul numéro le plus élevé, tous les numéros semblables ou des suites de numéros consécutifs. et de les utiliser pour générer le résultat. Le résultat est ensuite ajouté à une "base" constituée d'un score d'attribut associé acheté par le joueur lors de la création du personnage. La somme de la base et du résultat est ensuite comparée aux nombres cibles ou aux résultats des jets de l'adversaire pour déterminer le succès ou l'échec.

Ainsi, par exemple, un rouleau de 1,2,3,4,5,5,10 le joueur peut choisir soit 1,2,3,4 , 5,5 o 10 à ajouter à leur score de base pour un jet de dé, avant de le comparer au nombre cible.

En tant que futur concepteur de jeux, j'aimerais comprendre quelle sorte de courbe de probabilité cela crée pour un ensemble donné de tailles de dés, disons de 1 à 10 dés. Cela me permettra, je l'espère, de voir si je veux incorporer un système de pool de dés similaire dans un jeu que je planifie.

7voto

Strelok Points 18453

Le résultat de l'existence de plusieurs façons de choisir des numéros dans la réserve de dés est assez chaotique.

Le site créateur de anydice a tweeté este fonction de dés quelconque pour les jets de dés de CthulhuTech.

Le graphique de ces résultats semble suivre un schéma assez régulier, même si certaines valeurs sont beaucoup moins probables. Par exemple, avec un pool de 5d10, un résultat de 25 est 0,29% probable, mais 24 et 27 sont respectivement 4,47% et 5,85% probables.

graph of two CthulhuTech dice rolls in 'at least' and 'graph' mode. 5d10 hits 10 at least 75% of the time, and 6d10 hits 10 at least 87.5% of the time.

On ne voit pas bien quel est l'avantage d'un tel système de pool de dés.

La fonction anydice time out pour les nombres supérieurs à 1 000. 7d10 donc une gamme complète de graphiques n'est pas possible actuellement.

6voto

HighDiceRoller Points 1548

Tous les pools jusqu'à 10 dés

Chance of rolling at least a given result.

(Techniquement, les résultats vont jusqu'à 100, mais les chances supérieures à 60 sont si faibles qu'elles sont pratiquement invisibles. Je les ai donc omises pour donner plus de place à la partie réellement visible du graphique).

Formulaire tabulaire (Google Sheets).

Notes sur l'algorithme

Avec le bon algorithme, une réserve de 10 dés peut être calculée en moins de 100 millisecondes, même dans un navigateur web. Voici un carnet de notes interactif.

De nombreux systèmes de notation pour le jeu de dés peuvent être formulés comme suit :

  • Commencez par un état initial. Dans ce cas, l'état est le score obtenu jusqu'à présent et la longueur de la manche en cours, qui sont tous deux nuls avant que les dés ne soient pris en compte.
  • Pour chaque nombre sur le dé, voir combien de dés ont obtenu ce nombre et mettre à jour l'état. Dans ce cas, soit nous terminons la manche en cours, soit nous incrémentons la longueur de la manche. Ensuite, nous notons la manche en cours (si elle est de longueur 3 au moins) et l'ensemble correspondant en cours.
  • Une fois que tous les nombres ont été pris en compte, on obtient le score correspondant à l'état final.

Il s'avère que, tant que le nombre d'états possibles n'est pas grand, il est possible de déterminer la distribution de probabilité du score final beaucoup plus rapidement qu'en énumérant tous les rouleaux possibles. Les clés de l'algorithme sont :

  • Maintenir un nombre restreint d'États. Dans ce cas, la longueur de l'exécution est au maximum de 10 et le score atteint 10 fois le nombre de dés, ce qui n'est pas si mal.
  • N'itérez pas "horizontalement" sur un dé à la fois. Au lieu de cela, itérez "verticalement" sur un nombre à la fois. Dans un pool de dés, vous vous souciez généralement beaucoup du nombre de dés qui ont obtenu un nombre particulier, et vous avez généralement Ne le fais pas. se soucier (ou même savoir) dans quel ordre les dés ont été jetés.
  • Au lieu de déterminer dont les dés ont obtenu un nombre particulier, déterminez seulement combien de les dés ont donné ce nombre. Ceci peut être calculé et mis en cache selon Le triangle de Pascal .
  • Cache les distributions de probabilité intermédiaires sur les états, indexées par le nombre de numéros sur les dés qui ont été traités et le nombre de dés restants.

Pour 10 dés, au lieu de considérer les 10 milliards de lancers possibles individuellement, l'algorithme évalue next_state() 9809 fois seulement, soit un facteur d'environ un million. Même si chaque état prend plus de temps à traiter, c'est toujours une énorme accélération.

Le code source peut être trouvé ici .

AlleGamers.com

AlleGamers est une communauté de gamers qui cherche à élargir la connaissance des jeux vidéo.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X