Ich habe eine Aufgabe bekommen, ein Scrip für die Sitzplatzbuchung in einem Kino zu schreiben. Ich bin jetzt schon seit Stunden dran und hab schon stackoverflow durchforstet, aber derzeit weiß ich einfach nicht weiter.
Ich verlang hier natürlich keinesfalls komplette Lösung, sondern freue mich über jeden Denkansatz und Verbesserungen
Folgende Aufgabe:
Aufgabe 1: Programmieren Sie den Kinosaal und erzeugen Sie mittels einer Schleife ein leeres Kino (alle Sitze
sind auf O gesetzt)
Aufgabe 2: Programmieren Sie eine Prozedur die den gesamten Kinosaal in der Konsole ausgibt. Dabei soll hier
Zeilenweise und ohne Klammern ausgegeben werden.
Aufgabe 3: Programmieren Sie eine Funktion, die einen leeren Kinosaal übernimmt und für jeden Platz zufällig
entscheidet, ob dieser bereits belegt ist oder nicht. Als Rückgabewert geben Sie den geänderten Kinosaal
zurück.
Aufgabe 4: Für Reservierungen ist es wichtig zu erfassen, welche Sitze frei sind und welche nicht.
Programmieren Sie eine Funktion die den ersten freien Sitzplatz aus einem übergebenen Kinosaal ermittelt und
dessen Nummer zurückgibt. Also 101, 304, 730 usw.
Aufgabe 5: Wenn mehrere Personen zusammen ins Kino gehen, wollen diese nebeneinander Sitzen. Deswegen
müssen Sie eine Funktion programmieren, die neben einem Kinosaal auch die Anzahl benötigter Sitze
übergeben bekommt. Die Funktion soll dann den Kinosaal nach der ersten freien Kette von Sitzen mit der
richtigen Länge ermitteln und ausgeben. Wenn im Saal nicht genug Plätze frei sind, soll dies als Fehlermeldung
ausgegeben werden.
Am Ende muss die Ausgabe so aussehen:
Code: Alles auswählen
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
1 O X X O X O X X O X O O X O X X O O X X X X X X X O X X X X
2 X O O O O X O O X O O O O O O O O X X O O X X O O O X O X O
3 O X X O X O O X X O O O O X O O O O X O O O X X X O X X X O
4 O X O O O X O X O O X X X O X O X X X X O X X X O O X O X O
5 O O O X O O O X O X X O O O X X O O O X X O O X O X X O O O
6 X X O X X X X X O X O X X O O X O X X X O X O X O X X X O O
7 X X O O X O O O X X O O X O X O X X X X O X O O X X X X X X
Der erste freie Platz ist:
101
Geben Sie bitte eine Anzahl an Personen an: 4
Der erste freie Platz ist:
202
Process finished with exit code 0
Aufgabe 1-3 habe ich im Prinzip fertig (hier und da fehlen noch nebensächliche Dinge). Ich weiß jetzt leider überhaupt nicht, wie ich Aufgabe 4 und 5 lösen soll. Wie genau kann ich den Listen (in denen "X" und "O" enthalten ist) die Sitzplatznummer zuweisen oder errechnen lassen?
Mein Code sieht wie folgt aus:
Code: Alles auswählen
import random
print("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")
#7 Reihen mit jeweils 30 Sitzen erstellen. X und O zufällig gewählt
reihe = []
sitze = []
xo = ["X ", "O "]
for i in range(7):
reihe = []
for i in range (30):
reihe.append(random.choice(xo))
sitze.append(reihe) #Alles in die Liste "Sitze" einfügen, am Ende also 210 Werte
print ( "".join(map(str, reihe)))
Es ist nicht viel, was ich bisher habe, aber wie gesagt, ich will die Aufgabe selber lösen und brauche eigentlich nur Denkansätze. Ich freue mich über jede Antwort