-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_objektorientierung_train.py
More file actions
96 lines (73 loc) · 3.06 KB
/
Copy pathtest_objektorientierung_train.py
File metadata and controls
96 lines (73 loc) · 3.06 KB
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
# Aufgabe 4: Modelliere einen Zug
# a. Jetzt wirst du Zugobjekte bauen! Erstelle die Klasse Train, die mit den Eigenschaften
# route und position initialisiert wird! Bei route handelt es sich um eine Liste mit den
# Haltebahnhöfen des Zuges. position steht für den Index des Bahnhofs aus der Liste, an dem
# sich der Zug gerade befindet bzw. von dem er zuletzt abgefahren ist (wo genau sich der Zug
# auf der Strecke zwischen zwei Bahnhöfen befindet, interessiert uns hier nicht). Mit der
# Methode show_station() soll der Name dieses Bahnhofs ausgegeben werden.
class Train():
def __init__(self, route, position):
self.route = route
self.position = position
def show_station(self):
print(self.route[self.position])
orientexpress = Train(["Paris", "Budapest", "Bukarest", "Istanbul"], 0)
orientexpress.show_station()
# b. Bisher sitzt ein Zug der Klasse Train noch in seinem Startbahnhof fest. Ergänze nun
# zwei Methoden move() und move_back(), mit denen man einen Zug auf seiner Route zur nächsten
# bzw. zur vorherigen Station bewegen kann, sofern es diese Station auf der Route gibt.
# Der Zug darf seine Route nicht verlassen!
class Train():
def __init__(self, route, position):
self.route = route
self.position = position
def show_station(self):
print(self.route[self.position])
def move(self):
if self.position < len(self.route) - 1:
self.position += 1
else:
print("Endstation! Alle aussteigen!")
def move_back(self):
if self.position > 0:
self.position -= 1
else:
print("Anfangsstation! Alle aussteigen!")
orientexpress = Train(["Paris", "Budapest", "Bukarest", "Istanbul"], 0)
orientexpress.show_station()
orientexpress.move()
orientexpress.show_station()
orientexpress.move()
orientexpress.show_station()
orientexpress.move()
orientexpress.show_station()
orientexpress.move()
orientexpress.move_back()
orientexpress.show_station()
# c. Die Route soll nachträglich bearbeitet werden können, indem man mit einer Methode bypass_station() einen
# anzugebenden Haltebahnhof von der Route entfernt. Der Zug soll dann sicherheitshalber an den Start der Route
# versetzt werden, sofern er sich nicht schon dort befindet.
# Tipp: Erinnere dich an die Methoden für Listen! :-)
class Train():
def __init__(self, route, position):
self.route = route
self.position = position
def show_station(self):
print(self.route[self.position])
def move(self):
if self.position < len(self.route) - 1:
self.position += 1
else:
print("Endstation! Alle aussteigen!")
def move_back(self):
if self.position > 0:
self.position -= 1
else:
print("Anfangsstation! Alle aussteigen!")
def bypass_station(self, station):
self.route.remove(station)
self.position = 0
orientexpress = Train(["Paris", "Budapest", "Bukarest", "Istanbul"], 0)
orientexpress.bypass_station("Budapest")
orientexpress.move()
orientexpress.show_station()