mirror of
https://github.com/DeaDvey/mathgenerator.git
synced 2025-11-28 06:25:23 +01:00
49 lines
1.3 KiB
Python
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())
|