2017-09-04 1 views
0

J'utilise Python3. J'essaie d'évaluer les «vérifications de compétence» pour mon jeu, et je veux créer une fonction, qui peut être évaluée pour tous les jets de compétence standard.Python3 Python 3 comment utiliser le résultat de randint pour évaluer un tableau et tirer le bon choix

Je suis seulement au niveau le plus élémentaire pour l'instant, donc, je suis juste essayer de créer la fonction elle-même, puis plus tard, je veux utiliser ma base de données, mais pour l'instant:

  1. Mon jeu utilise le succès "seuils", qui,
  2. quand je roule des dés (c'était un jeu de stylo-n-papier, mais, la manipulation des dés prend une éternité), prend les résultats -
  3. le compare à un gamme de nombres, et vous dit à quel point vous avez échoué/réussi.

écoulement désiré:

  1. 1-100 est roulé.
  2. [ignoré pour cette question]: si un 96+ est lancé, relancez et ajoutez les résultats.
  3. List/Array/Dictionary/Whatever (plus tard DataBase) est cochée et le type de succès approprié est généré.

Ce que je ne sais pas sont:

  1. Comment puis-je construire cette liste? Devrait-il s'agir d'un dictionnaire, d'une liste ou d'un tuple?
  2. Que faire une fois que j'ai généré un nombre aléatoire? Que dois-je faire avec ce nombre pour évaluer ma liste de seuils?

et leurs gammes Seuils:

Total Failure: 1-25, 
Partial Failure: 26-49, 
Partial Success: 50-74, 
Success: 75-100, 
Significant Success: 101-149, 
Astounding Success: 150-199, 
Epic Success: 200-249, 
Legendary: 250+ 
+0

Pouvez-vous ajouter un exemple étape par étape? – stjernaluiht

+0

Donc le pas-par-étape (et merci ehacinorn) est comme suit: - instanciation fonction - fonction contient les types de succès dans un format if/elif - variable d'installation appelée skill_check, qui est un entier aléatoire entre 1 et 100. - skill_result appelle la fonction et introduit les résultats de l'entier aléatoire. - une déclaration d'impression avec un format, me dit à la fois le nombre et le type de succès. –

Répondre

0

je ne voudrais pas utiliser une structure de données, mais une fonction.

def type_of_success(n): 
    # input: integer random number rolled 
    # output: string 

    if not isinstance(n, int) or n < 1: 
     raise Exception('Not a valid number') 

    if n < 26: 
     return 'Total Failure' 
    elif n < 51: 
     return 'Partial Failure' 
    # etc 
+0

C'était incroyable - merci! –

+0

C'est ce que j'ai utilisé pour obtenir les résultats que je voulais. 'skill_check = random.randint (1,101)' 'skill_result = type_de_success (skill_check)' 'print (f '{skill_check} \ n {skill_result}')' –