-
Notifications
You must be signed in to change notification settings - Fork 0
/
Question2_J2023.py
97 lines (64 loc) · 2.75 KB
/
Question2_J2023.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
class Vehicle:
# DECLARE ID : STRING
# DECLARE MaxSpeed : INTEGER
# DECLARE CurrentSpeed : INTEGER
# DECLARE IncreaseAmount : INTEGER
# DECLARE HorizontalPosition : INTEGER
def __init__(self, ID, MaxSpeed, IncreaseAmount):
self.__ID = ID
self.__MaxSpeed = MaxSpeed
self.__IncreaseAmount = IncreaseAmount
self.__CurrentSpeed = 0
self.__HorizontalPosition = 0
def GetCurrentSpeed(self):
return self.__CurrentSpeed
def GetIncreaseAmount(self):
return self.__IncreaseAmount
def GetMaxSpeed(self):
return self.__MaxSpeed
def GetHorizontalPosition(self):
return self.__HorizontalPosition
def SetCurrentSpeed(self, CurrentSpeed):
self.__CurrentSpeed = CurrentSpeed
def SetHorizontalPosition(self, HorizontalPosition):
self.__HorizontalPosition = HorizontalPosition
def IncreaseSpeed(self):
if self.__CurrentSpeed + self.__IncreaseAmount < self.__MaxSpeed:
self.__CurrentSpeed += self.__IncreaseAmount
self.__HorizontalPosition += self.__CurrentSpeed
class Helicopter(Vehicle):
# DECLARE VerticalPosition : INTEGER
# DECLARE VerticalChange : INTEGER
# DECLARE MaxHeight : INTEGER
def __init__(self, ID, MaxSpeed, IncreaseAmount, VerticalChange, MaxHeight):
super().__init__(ID, MaxSpeed, IncreaseAmount)
self.__VerticalChange = VerticalChange
self.__MaxHeight = MaxHeight
self.__VerticalPosition = 0
def GetVerticalPosition(self):
return self.__VerticalPosition
def IncreaseSpeed(self):
if self.__VerticalPosition + self.__VerticalChange < self.__MaxHeight:
self.__VerticalPosition += self.__VerticalChange
else:
self.__VerticalChange = self.__MaxHeight
if super().GetCurrentSpeed() + super().GetIncreaseAmount() < super().GetMaxSpeed():
super().SetCurrentSpeed(super().GetCurrentSpeed() + super().GetIncreaseAmount())
else:
super().SetCurrentSpeed(super().GetMaxSpeed())
super().SetHorizontalPosition(super().GetHorizontalPosition() + super().GetCurrentSpeed())
def Output(MyVehicle):
print(f"Your Horizontal Position: {MyVehicle.GetHorizontalPosition()}")
print(f"Your Speed: {MyVehicle.GetCurrentSpeed()}")
if str(type(MyVehicle)) == "<class '__main__.Helicopter'>":
print(f"Your Vertical Position: {MyVehicle.GetVerticalPosition()}")
def main():
NewCar = Vehicle("Tiger", 100, 20)
NewHelicopter = Helicopter("Lion", 350, 40, 3, 100)
NewCar.IncreaseSpeed()
NewCar.IncreaseSpeed()
Output(NewCar)
NewHelicopter.IncreaseSpeed()
NewHelicopter.IncreaseSpeed()
Output(NewHelicopter)
main()