Advertisement
Guest User

Untitled

a guest
Mar 26th, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.42 KB | None | 0 0
  1. class Klok:
  2. def __init__(self, uur: int, min: int):
  3. if not isinstance(uur, int) or not isinstance(min, int) or uur < 0 or uur > 24 or min < 0 or min > 60:
  4. raise AssertionError("ongeldig tijdstip")
  5. self.uur = uur
  6. self.min = min
  7.  
  8. def verzetUren(self, u=1):
  9. self.uur += u
  10. if self.uur > 23:
  11. self.uur = self.uur % 24
  12. while self.uur < 0:
  13. self.uur += 24
  14. return self
  15.  
  16. def verzetMinuten(self, m=1):
  17. self.min += m
  18. while self.min > 59:
  19. self.min -= 60
  20. self.verzetUren()
  21. while self.min < 0:
  22. self.min += 60
  23. self.verzetUren(-1)
  24. return self
  25.  
  26. def lampen(self):
  27. uur_copy = self.uur
  28. min_copy = self.min
  29. if self.uur >= 12:
  30. self.uur -= 12
  31. kleur = "R"
  32. else:
  33. kleur = "G"
  34. lampjes = [0, 0, 0, 0, 0]
  35. #rij 1
  36. if self.uur >= 6:
  37. lampjes[0] = 1
  38. self.uur -= 6
  39. #rij 2
  40. while self.uur >= 2 and lampjes[1] < 2:
  41. lampjes[1] += 1
  42. self.uur -= 2
  43. #rij 3
  44. while (self.uur != 0 or self.min >= 30) and lampjes[2] < 3:
  45. lampjes[2] += 1
  46. self.verzetMinuten(-30)
  47. #rij 4
  48. while self.min >= 6 and lampjes[3] < 4:
  49. lampjes[3] += 1
  50. self.verzetMinuten(-6)
  51. # rij 5
  52. while self.min >= 1 and lampjes[4] < 5:
  53. lampjes[4] += 1
  54. self.verzetMinuten(-1)
  55. self.uur = uur_copy
  56. self.min = min_copy
  57. return (tuple(lampjes),kleur)
  58.  
  59. def __repr__(self):
  60. return f"Klok({self.uur}, {self.min})"
  61.  
  62. def __str__(self):
  63. lampen = list(self.lampen())
  64. kleur = lampen[1]
  65. lampen = list(lampen[0])
  66. totaal = str()
  67. for i,rij in enumerate(lampen):
  68. string_lijn = str()
  69. #spaties
  70. for j in range(4-i):
  71. string_lijn += " "
  72. #lampjes
  73. for j in range(i+1):
  74. if lampen[i] > 0:
  75. string_lijn += kleur + " "
  76. lampen[i] -= 1
  77. else:
  78. string_lijn += ". "
  79. string_lijn = string_lijn[:-1]
  80. totaal += string_lijn + "\n"
  81. totaal = totaal[:-1]
  82. return(totaal)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement