2013-02-28 4 views
0

newbie ici.Appliquer un multiplicateur à un nombre aléatoire

OK si longue histoire courte, je l'ai fait une var qui affichera un nombre aléatoire entre 70 et 155:

T_dmg = random.randrange(70,155) 

Et voici mon "multiplicateur":

def crit(cr): 
    return cr * 2 

Crit signifie critique mais je ne suis pas sûr de savoir comment utiliser la déclaration "retour". J'ai donc ajouté cette fonction à la ligne avant le numéro est ajouté jusqu'à:

if Toni > 0: 
     crit(T_dmg) 
     Xoni = Xoni - T_dmg 

Le problème est que la sortie est jamais multipliée parce que d'une certaine manière, la fonction « Crit » ne semble pas appliquer. Xoni est un var qui a une valeur de 7000. Si cela n'a pas de sens, j'utilise HP à partir de concepts de jeux. J'espère que l'un d'entre vous peut faire la lumière.

Merci!

Edit: Code Chance:

def critchance(): 
    random.randrange(1,10) 
    if critchance() == "3" 
    crit() 
+0

Que signifie «cr»? – xxmbabanexx

+0

Je n'ai aucune idée, je pensais juste que je devrais remplir la parenthèse ... – c0ldpr0xy

+0

Peut-être 'T_dmg = crit (T_dmg)'? –

Répondre

1

La fonction retourne une valeur - il ne change pas la variable d'entrée. Vous devez toujours affecter T_dmg à la sortie de la fonction.

T_dmg = crit(T_dmg) 

Sinon T_dmg restera le même, vous donnant les résultats « étranges ».

Votre fonction critchance est également désactivée - elle est infiniment récursive. Nous devons réparer cela. En outre, vous semblez appeler la fonction crit sans arguments. Vous devriez probablement passer T_dmg en tant que paramètre à cette fonction.

def critchance(cr): 
    if random.randrange(1, 10) == 3: 
     return crit(cr) 
    return cr 

Ensuite, pour l'appeler, faites ceci.

T_dmg = critchance(T_dmg) 
+0

Je vois mais j'ai oublié de vous dire que je prévois d'ajouter une "chance" pour cela. 10% de chances qu'il soit multiplié par 2x. J'ai déjà défini la fonction "chance" mais d'abord je n'arrive pas à fixer le multiplicateur. – c0ldpr0xy

+0

@ user2113324 Pourriez-vous expliquer cela dans votre question initiale? Et quel est le code de la fonction "chance"? – Volatility

+0

def critchance(): random.randrange (1,10) si critchance() == "3" crit() – c0ldpr0xy

Questions connexes