lundi 12 octobre 2020

How do I make random.randint refresh while program is running?

I'm making a small program that shoots out math problems and requires an answer to pass. It works fine, but all the randint values I generate stay static for as long as the progran is running. I figured if I change:

Tehtävä = random.choice(Laskut)

Into a function it should refresh with the loop. Problem is I can't for the life of me figure out how to do that. Would it even work for what I'm trying? The randint values are determined in a seperate list. Heres the rest of the code:

Peli = 1
while Peli != 2:
    pulma = 1
    refresh = 1
    Tehtävä = random.choice(Laskut)
    while pulma == 1:
        ratkaisu = float(input(Tehtävä.problem + "\n:"))
        if ratkaisu == Tehtävä.answer:
            pulma += 1
            refresh += 1
            print("oikein")
        elif ratkaisu == "loppu":
            pulma += 1
            refresh += 1
            Peli += 1
        else:
            print("väärin")

Here are the values I used:

import random

class Algebra:
    def __init__(self, problem, answer):
        self.problem = problem
        self.answer = answer

#Muuttujat

#erotus ja summa
a = random.randint(1,99)
b = random.randint(1,99)
c = random.randint(1,99)
d = random.randint(1,99)

#jako ja kerto

e = random.randint(1,10)
f = e*random.randint(1,10)
g = random.randint(1,10)

#Kysymykset

Kysymys_M = [str(a) + "+" + str(b) + "-x=" + str(c),
             str(a) + "-" + str(b) + "-x=" + str(a),
             str(a) + "-" + str(b) + "-" + str(c) + "-x=" + str(d),
             str(e) + "*x=" + str(f),
             str(f) + ":x=" + str(e),
             "x:" + str(e) + "=" + str(g)]

#Vastaukset

Vastaus_M = [a+b-c,
             -b,
             a-b-c-d,
             f/e,
             f/e,
             e*g]

Laskut = [
    Algebra(Kysymys_M[0], Vastaus_M[0]),
    Algebra(Kysymys_M[1], Vastaus_M[1]),
    Algebra(Kysymys_M[2], Vastaus_M[2]),
    Algebra(Kysymys_M[3], Vastaus_M[3]),
    Algebra(Kysymys_M[4], Vastaus_M[4]),
    Algebra(Kysymys_M[5], Vastaus_M[5]),]

(If I have packed too much information please let me know.)




Aucun commentaire:

Enregistrer un commentaire