Spawn more overlords!

Aufgabe 1

Im Spiel CraftStar kann man Einheiten bauen, wobei jede Einheit eine gewisse Menge an Platz verbraucht. Maximal können 200 Einheiten gebaut werden. Die Einheiten sollen in einem Array gespeichert werden. Nun sollst du als Praktikant bei Schneesturm GmbH dieses Verhalten implementieren. Mit einer Funktion push soll eine Einheit am Ende des Arrays von Einheiten eingefügt werden und durch eine Funktion pop entfernt werden. Gebe am Ende jeder push/pop Operation die Anzahl an gebauten Einheiten. Manche Einheiten nehmen mehr als einen Platz oder spawnen zu zweit. Richte dich dabei an die folgende Tabelle:

Einheit Platz
Drone 1
Zergling* 1
Baneling 1
Queen 2
Roach 2
Hydralisk 2
Mutalisk 2
Corruptor 2
Infestor 2
Broodlord 2
Swarmhost 3
Viper 3
Ultralisk 6

*Zerglings spawnen zu zweit

Bonus für die 1.:
  • Man fängt nur mit 14 Platz an und davon sind 12 bereits mit Dronen belegt.
  • Es gibt eine letzte Einheit namens “Overlord”. Diese erweitert die Platzanzahl um 8. Es können beliebig viele gebaut werden.
  • Die Anzahl an Overlords ist irrelevant. Das 200-Einheiten-Limit wird nicht überschritten.

Aufgabe 2

Nun wollen wir die Einheiten nach Namen gruppieren. Genauer gesagt sollen alle Einheiten gleichen Namens in einem eigenen Array gespeichert werden. Entwickele geschickte Funktionen, um die Anzahl aller Einheiten zu prüfen.

Beispiel:

[['Drone' , 'Drone'] , ['zergling' , 'zergling'], ... ,['Ultralisk']]

Aufgabe 3

Vergleichen Sie Ihre Implementierungen der push und pop Methoden aus Aufgabe 1 und 2. Dafür können Sie die time Methode aus dem time Modul (duh) nutzen, welches die Zeit in Sekunden seit 01.01.1970 um 00:00:00 Uhr (UTC) zurückgibt: https://docs.python.org/3/library/time.html#time.time

Hier ein Beispiel:

# time Methode aus dem time Modul importieren
from time import time

def coole_methode():
    ...

def main():
    # Timestamp speichern...
    zeit_in_sekunden_seit_1970 = time()

    # Methode ausführen...
    coole_methode()

    # Zeitdifferenz bilden
    zeit_für_coole_methode = time() - zeit_in_sekunden_seit_1970

    # Zeitdifferenz ausgeben
    print(zeit_für_coole_methode)

if __name__ == "__main__":
    main()