3 votes

Fonctions AnyDice et jets de dés ultérieurs

Je viens de découvrir AnyDice et j'essaie de l'utiliser pour modéliser un problème simple et j'échoue lamentablement. Cela signifie généralement qu'il y a un concept de base que je ne comprends pas.

Tout d'abord, le problème. Je voudrais juste examiner un simple mécanisme de jeu de type "hits-and-saves" (coups et sauvetages). Ma super-arme a un ROF de 5. Je lance donc 5 d6, et je touche sur un 5 ou un 6. Leur super-armure protège sur 6. A quel point est-il difficile de les tuer ? Je lance 5 d6, j'obtiens x touches, ils lancent x d6 et obtiennent y blessures. A quoi ressemble la probabilité de blessure pour des armes avec des ROF différents, et des armures avec des sauvegardes différentes ?

Je sais comment faire le jet de toucher :

function: hitme NN:n
{
   result: [count {5, 6} in NN d6]
}

output [hitme 5]

Mais ce que je ne comprends pas, c'est comment concaténer cela avec le prochain jet de dé. Je me serais attendu, dans un programme de lancer de dés, à une structure de données représentant les résultats de la probabilité d'un lancer, qui serait alors une entrée pour la simulation du prochain lancer.

En d'autres termes, je m'attends à pouvoir faire quelque chose comme ce pseudo-code :

function rollme(dice) : return outcome-probability 
function saveme(outcome-probability, dice) : return final outcome-probability

Il est clair que je ne m'attendais pas à ce que cela fonctionne. Je vois "dice", que je comprends comme étant la forme du dé et non les résultats obtenus, "sequence" et "number". Est-ce que "result :" est hum... le résultat... et comment puis-je le passer à la fonction save-roll que j'imagine devoir écrire ensuite, et avoir les probabilités combinées correctement ?

2voto

Miniman Points 139877

Pour introduire le résultat d'une fonction dans une autre fonction, il suffit d'appeler la seconde fonction avec la première fonction comme paramètre.

Par exemple, votre programme complet AnyDice pourrait ressembler à ceci :

function: hitme NN:n {
  result: [count {5, 6} in NN d6]
}

function: woundme HH:n {
result: [count {1, 2, 3, 4, 5} in HH d6]
}

output [woundme [hitme 5]]

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