Files
mathgenerator/mathGenerator/generator.py
2020-10-13 12:42:38 -04:00

49 lines
1.3 KiB
Python

import random
# || Generator class
class Generator:
def __init__(self, title, id, generalProb, generalSol, func):
self.title = title
self.id = id
self.generalProb = generalProb
self.generalSol = generalSol
self.func = func
def __str__(self):
return str(self.id) + " " + self.title + " " + self.generalProb + " " + self.generalSol
def __call__(self):
return self.func()
# || Functions
def addition(maxSum = 99, maxAddend = 50):
a = random.randint(0, maxAddend)
b = random.randint(0, min((maxSum-a), maxAddend)) #The highest value of b will be no higher than the maxsum minus the first number and no higher than the maxAddend as well
c = a+b
problem = str(a) + "+" + str(b) + "="
solution = str(c)
return problem, solution
def subtraction(maxMinuend = 99, maxDiff = 99):
a = random.randint(0, maxMinuend)
b = random.randint(max(0, (a-maxDiff)), a)
c = a-b
problem = str(a) + "-" + str(b) + "="
solution = str(c)
return problem, solution
# || Class Instances
#Format is:
#g<id> = Generator("<Title>", <id>, <generalized problem>, <generalized solution>, <function name>)
g2 = Generator("Addition", 2, "a+b=", "c", addition)
g3 = Generator("Subtraction", 3, "a-b=", "c", subtraction)
# || Testing Zone
print(g2)
print(g2())
print(g3())