Das lernst du heute
- Vorräte vor dem Start prüfen
- Fehlende Teile melden
- Sperre
Halb fertig ist schlimmer als gar nicht angefangen: 30 Eisenrahmen bestellt, nach 18 ist das Eisen alle, und die Drehbank hängt mit einem angefangenen Auftrag. Besser ist, vorher zu prüfen, ob der Vorrat reicht.
Vorrat zählen
Die Barren liegen in einem Spind „Eisenlager“. Ein Spind (StructureStorageLocker) hat 30 Fächer. lbns liest ein Fach aller gleichnamigen Spinde – der Fachindex darf ein Register sein. Eine Schleife zählt alle Fächer zusammen:
zaehlen:
lbns tmp SPIND HASH("Eisenlager") i Quantity Sum
add vorrat vorrat tmp
add i i 1
blt i FAECHER zaehlen
Hier ist Sum richtig: Stückzahlen addieren sich. Stehen zwei Spinde mit dem Namen da, zählt Sum beide mit. Ein leeres Fach liefert 0. Die 30 Durchläufe kosten 120 Befehle – das passt knapp in einen Takt.
Bedarf des Auftrags
Die Stückzahl kommt von einem Drehknopf „Auftrag“. Ein Eisenrahmen braucht laut Rezeptdaten 4 Eisen. Der Bedarf ist also Stückzahl mal 4, die Fehlmenge der Bedarf minus Vorrat – aber nie negativ:
sub fehlt bedarf vorrat
max fehlt fehlt 0
Sperren
Fehlt etwas, setzt der Chip Lock an der Drehbank. Dann lässt sie sich auch von Hand nicht bedienen, bis der Vorrat reicht. Ein Spieler sieht die Lampe „Fehlt“ und die Fehlmenge und weiß, was er holen muss.
Der Start per Taste funktioniert nur ohne Sperre. bnez tmp start springt vorher zurück, wenn gesperrt ist.
Fehlt der Drehknopf, wird der Bedarf NaN, und max mit NaN bleibt NaN. Ein NaN in fehlt wäre gefährlich: sgtz liefert dafür 0, und die Sperre ginge auf. Deshalb macht der Chip aus NaN ausdrücklich −1, und die Sperre prüft „ungleich 0“ statt „größer 0“.
Fehlt der Spind, zählt Sum einfach 0 Barren. Dann fehlt der ganze Bedarf, und die Drehbank bleibt gesperrt – genau richtig.
Übung
Aufgabe
Zähle die Barren in allen 30 Fächern der Spinde „Eisenlager“. Der Drehknopf „Auftrag“ gibt die Stückzahl an, jedes Stück braucht 4 Eisen. Zeige die Fehlmenge (nie negativ, bei fehlendem Knopf −1) auf „Fehlmenge“. Ist sie ungleich 0, sperrt der Chip die Drehbank „Drehbank“ (Lock 1) und die Lampe „Fehlt“ leuchtet. Nur ohne Sperre startet ein Druck auf „Start“ die Drehbank mit Activate 1.
Hinweise
Hinweis 1
Zählschleife: lbns tmp SPIND HASH("Eisenlager") i Quantity Sum, add, add i i 1, blt.
Hinweis 2
Fehlmenge: sub, max … 0, dann NaN mit snan und select zu −1 machen.
Hinweis 3
Sperre mit sne tmp fehlt 0; Start erst nach bnez tmp start.
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