63 lines
1.7 KiB
Python
63 lines
1.7 KiB
Python
from random import randint
|
|
|
|
|
|
class multiplicationGame:
|
|
def __init__(self, min, max, tries):
|
|
self.min = min
|
|
self.max = max
|
|
self.tries = tries
|
|
self.updateProblem()
|
|
|
|
def generateNewMultiplicationProblem(self) -> (int, int):
|
|
number = lambda: randint(self.min, self.max)
|
|
self.currentProblem = (number(), number())
|
|
|
|
def updateProblem(self):
|
|
self.generateNewMultiplicationProblem()
|
|
self.currentTries = self.tries
|
|
|
|
def userWantsNewQuestion(self) -> bool:
|
|
while True:
|
|
answer = input(
|
|
'Er det ønskelig med flere spørsmål? Skriv 1 for ja og 0 for nei: ')
|
|
if answer in ['1', '0']:
|
|
return bool(int(answer))
|
|
else:
|
|
print('Skriv 1 for ja og 0 for nei')
|
|
|
|
def checkIfUserWantsNewQuestion(self):
|
|
if not self.userWantsNewQuestion():
|
|
exit(0)
|
|
|
|
def wrongAnswer(self):
|
|
self.currentTries -= 1
|
|
if self.currentTries == 0:
|
|
print(
|
|
'Dessverre klarte du ikke dette regnestykket, men vent så får du et nytt et:)'
|
|
)
|
|
self.checkIfUserWantsNewQuestion()
|
|
self.updateProblem()
|
|
else:
|
|
print(f'Dessverre ikke riktig. Du har {self.currentTries} forsøk igjen.')
|
|
|
|
def correctAnswer(self):
|
|
print('Gratulerer, det er helt riktig!')
|
|
self.checkIfUserWantsNewQuestion()
|
|
self.updateProblem()
|
|
|
|
def update(self):
|
|
answer = int(input(f'Hva blir {self.currentProblem[0]} * {self.currentProblem[1]}? '))
|
|
if answer == self.currentProblem[0] * self.currentProblem[1]:
|
|
self.correctAnswer()
|
|
else:
|
|
self.wrongAnswer()
|
|
|
|
def loop(self):
|
|
while True:
|
|
self.update()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
game = multiplicationGame(min=0, max=10, tries=3)
|
|
game.loop()
|