Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Klok:
- def __init__(self, uur: int, min: int):
- if not isinstance(uur, int) or not isinstance(min, int) or uur < 0 or uur > 24 or min < 0 or min > 60:
- raise AssertionError("ongeldig tijdstip")
- self.uur = uur
- self.min = min
- def verzetUren(self, u=1):
- self.uur += u
- if self.uur > 23:
- self.uur = self.uur % 24
- while self.uur < 0:
- self.uur += 24
- return self
- def verzetMinuten(self, m=1):
- self.min += m
- while self.min > 59:
- self.min -= 60
- self.verzetUren()
- while self.min < 0:
- self.min += 60
- self.verzetUren(-1)
- return self
- def lampen(self):
- uur_copy = self.uur
- min_copy = self.min
- if self.uur >= 12:
- self.uur -= 12
- kleur = "R"
- else:
- kleur = "G"
- lampjes = [0, 0, 0, 0, 0]
- #rij 1
- if self.uur >= 6:
- lampjes[0] = 1
- self.uur -= 6
- #rij 2
- while self.uur >= 2 and lampjes[1] < 2:
- lampjes[1] += 1
- self.uur -= 2
- #rij 3
- while (self.uur != 0 or self.min >= 30) and lampjes[2] < 3:
- lampjes[2] += 1
- self.verzetMinuten(-30)
- #rij 4
- while self.min >= 6 and lampjes[3] < 4:
- lampjes[3] += 1
- self.verzetMinuten(-6)
- # rij 5
- while self.min >= 1 and lampjes[4] < 5:
- lampjes[4] += 1
- self.verzetMinuten(-1)
- self.uur = uur_copy
- self.min = min_copy
- return (tuple(lampjes),kleur)
- def __repr__(self):
- return f"Klok({self.uur}, {self.min})"
- def __str__(self):
- lampen = list(self.lampen())
- kleur = lampen[1]
- lampen = list(lampen[0])
- totaal = str()
- for i,rij in enumerate(lampen):
- string_lijn = str()
- #spaties
- for j in range(4-i):
- string_lijn += " "
- #lampjes
- for j in range(i+1):
- if lampen[i] > 0:
- string_lijn += kleur + " "
- lampen[i] -= 1
- else:
- string_lijn += ". "
- string_lijn = string_lijn[:-1]
- totaal += string_lijn + "\n"
- totaal = totaal[:-1]
- return(totaal)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement