Das lernst du heute
- Zwei Türen gegenseitig sperren
- Vorrang festlegen
- Sicherer Grundzustand
Zwei Türen, ein Vorraum: Die eine führt in die Werkstatt, die andere nach draußen in den Staubsturm. Stehen beide gleichzeitig offen, weht der Sturm bis an die Werkbank. Eine Verriegelung sorgt dafür, dass immer nur eine Tür offen sein kann.
Erst fragen, dann öffnen
Eine Tür darf nur öffnen, wenn die andere zu ist. Dafür liest der Chip den Zustand der anderen Tür, nicht den Wunsch:
lbn zuA TUER HASH("Aussentuer") Open Average
seqz zuA zuA # 1 = Aussentuer ist zu
and innen wunschI zuA # innen nur, wenn aussen zu
seqz macht aus „offen = 0“ ein „zu = 1“. Fehlt die Außentür, ist ihr Wert NaN, seqz liefert 0, und die Innentür bleibt zu. Unbekannt zählt hier als offen, und das ist die sichere Seite.
Vorrang festlegen
Was, wenn beide Wünsche im selben Takt kommen? Ohne Regel lesen beide Türen „die andere ist zu“ und öffnen gleichzeitig. Darum bekommt eine Tür Vorrang:
seqz tmp wunschI
and aussen wunschA tmp # aussen nur, wenn innen nichts will
and aussen aussen zuI
Hier gewinnt die Innentür. Wer drinnen steht, soll nicht vor einer geschlossenen Tür warten.
Sperren gegen Handbetrieb
Spieler können eine Tür auch von Hand öffnen. Lock verhindert das. Schreib Lock = 1 auf jede Tür, die gerade nicht offen sein darf:
seqz tmp innen
sbn TUER HASH("Innentuer") Lock tmp
Sicherer Grundzustand
Ohne Wunsch, nach dem Neustart und bei jedem fehlenden Wert gilt: beide Türen zu und gesperrt. Bau jede Regel so, dass ein fehlender oder unbekannter Wert genau dorthin führt.
Lies immer den Zustand der anderen Tür, nie nur den Wunsch dazu. Beim Wechsel von innen nach außen schließt die Innentür in einem Takt, und erst im nächsten Takt meldet sie „zu“. Erst dann darf die Außentür öffnen.
Eine Tür braucht im Spiel einen Moment, bis sie wirklich zu ist. Wer ganz sicher gehen will, gibt die andere Tür erst nach ein paar Takten frei. Die Einschaltverzögerung aus Tag 80 erledigt das.
Übung
Aufgabe
Zwei Hebel „Innen“ und „Aussen“ (StructureLogicSwitch, Wert Open) sind die Wünsche. Die Türen heißen „Innentuer“ und „Aussentuer“ (StructureCompositeDoor).
- Eine Tür öffnet nur, wenn ihr Hebel an ist und die andere Tür zu ist (Zustand lesen).
- Wollen beide gleichzeitig, hat innen Vorrang.
- Jede Tür, die nicht offen ist, bekommt
Lock= 1. - Fehlt eine Tür oder ein Hebel, öffnet nichts Unsicheres.
Hinweise
Hinweis 1
Wünsche: lbn … Open Average, dann sgtz – fehlender Hebel heißt „will nicht“.
Hinweis 2
Türzustand: lbn … Open Average, dann seqz – NaN ergibt 0, also „nicht zu“.
Hinweis 3
Innen: and innen wunschI zuA. Außen: Wunsch UND nicht wunschI UND zuI.
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