Das lernst du heute
- Quantity und MaxQuantity
- Summe über viele Schränke
- Freie Plätze berechnen
Im Erzlager stehen sechs Spinde voller Eisenerz. Wie viel ist noch da? Und wann musst du einen neuen Spind bauen? Statt jeden Spind aufzumachen, lässt du den Chip zählen.
Quantity und MaxQuantity
Jedes Fach meldet zwei Mengen:
| LogicSlotType | Bedeutung |
|---|---|
Quantity | wie viele Stück im Fach liegen |
MaxQuantity | wie viele höchstens auf diesen Stapel passen |
Ein Stapel Eisenerz mit 37 von 50 Stück liefert Quantity 37 und MaxQuantity 50. Was sich nicht stapeln lässt, etwa ein Werkzeug, zählt als 1 von 1.
ls menge spind 0 Quantity # Stueck in Fach 0
ls platz spind 0 MaxQuantity # passt hoechstens auf den Stapel
sub frei platz menge # noch frei auf diesem Stapel
Ein leeres Fach meldet Quantity 0 und auch MaxQuantity 0. Freien Platz auf einem Stapel kannst du also nur dort ausrechnen, wo schon etwas liegt. Leere Fächer zählst du stattdessen über Occupied.
Über viele Spinde: lbs mit Sum
lbs liest ein Fach von allen Geräten eines Typs. Mengen addieren sich wirklich, deshalb ist hier Sum richtig und nicht Average:
lbs summe SPIND 0 Quantity Sum # Fach 0 aller Spinde zusammen
Ein Spind hat aber mehr als ein Fach. Die Fachnummer darf in einem Register stehen, damit läuft eine Schleife über alle Fächer:
move summe 0
move i 0
fach:
lbs wert SPIND i Quantity Sum
add summe summe wert
add i i 1
blt i FAECHER fach
Der kleine Spind (StructureLockerSmall) hat 4 Fächer, der normale Spind (StructureStorageLocker) 30. Eine Schleife über 30 Fächer kostet gut 120 Befehle, also fast einen ganzen Takt. Im Lager kommt es auf eine halbe Sekunde nicht an.
Freie Fächer
Occupied ist 1 für ein belegtes Fach. Summiert über alle Spinde ergibt das die Zahl der belegten Fächer. Die Zahl der Spinde liefert Count:
lb spinde SPIND PrefabHash Count
mul frei spinde FAECHER
sub frei frei belegt
Count braucht einen LogicType, den das Gerät lesen kann, sonst meldet der Chip IncorrectLogicType. PrefabHash kann jedes Gerät lesen, damit liegst du immer richtig.
Zähl mit Count nur, wenn alle Spinde dieses Typs zum Lager gehören. Count achtet nicht auf Namen. In Woche 14 schauen wir uns das genauer an.
Schaubild
Übung
Aufgabe
Im Lager stehen kleine Spinde (StructureLockerSmall, je 4 Fächer) im Datennetz. Zähle über alle Spinde:
- die Gesamtzahl der Stücke in allen Fächern → LED-Anzeige „Bestand“
- die Zahl der freien Fächer → LED-Anzeige „Frei“
Baut jemand einen Spind ab, werden beide Zahlen einfach kleiner – ohne Fehler.
Hinweise
Hinweis 1
Setz summe, belegt und i am Anfang jedes Durchlaufs auf 0.
Hinweis 2
In der Schleife zweimal lbs … Sum: einmal Quantity, einmal Occupied.
Hinweis 3
Freie Fächer = Spinde × FAECHER − belegte Fächer. Die Spinde zählt lb spinde SPIND PrefabHash Count.
Quiz
4 Fragen. Ab 60 % ist das Quiz bestanden – die Auswertung macht der Server.
Tag abschließen
- Übung im Simulator bestanden
- Quiz mit mindestens 60 % bestanden
Ohne Konto wird der Fortschritt nur in diesem Browser gespeichert.
Fehler in dieser Lektion melden
Zum Melden bitte anmelden. Anmelden