Clippy sperrt im Kern Hash-Tabellen, Uhr, Dateien, Threads und
Umgebung über aufgelöste Pfade, auch bei Aliasen und gruppierten
Importen. Der Textwächter kennt globalen veränderlichen Zustand und
Prozesse, prüft sich selbst, und ein neuer Test hält die Abhängigkeiten
des Kerns leer.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Die neuen Tests in golden.rs vergleichen gegen einmal aufgezeichnete
Werte statt gegen eine zweite Berechnung im selben Build. So fällt
über Builds hinweg auf, wenn sich Regeln oder Formate unbeabsichtigt
ändern: der Startzustand der Welt, das Ende einer festen Befehlsfolge
und die Prüfsumme der Aufzeichnung. Die Fehlermeldung nennt die
Versionskonstante, die dann erhöht werden muss.
Der neue Test in world.rs deckt ab, dass überlange Namen auf beiden
Beitrittswegen gekürzt gespeichert werden: beim ersten Beitritt und
bei der Rückkehr.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Der Vergleich der Prüfsummen allein konnte nicht fehlschlagen, weil die
Startzahl selbst in die Prüfsumme eingeht. Jetzt vergleicht der Test
auch die Karten beider Welten.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Fünf Tests prüfen über tausende Takte mit vier Spielern, dass gleiche
Befehle dieselbe Welt ergeben: im direkten Vergleich, nach einem
Snapshot mitten in der Sitzung, beim Wiederholen einer Aufzeichnung
und nach dem Weg über die Kodierung.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Eine Aufzeichnung hält den Startzustand und die Befehle jedes Takts
fest. Wiederholen ergibt exakt dieselbe Welt; verify meldet, wenn das
Ende von der aufgezeichneten Prüfsumme abweicht.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Der Snapshot enthält den vollständigen Zustand der Welt hinter einem
Kopf mit Format und Version. Er dient als Speicherstand und als
Grundlage der Prüfsumme. Das Konzept ist entsprechend korrigiert: Der
Speicherstand ist der vollständige Zustand, nicht Startzahl plus
Änderungen.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
World::step wendet die Befehle eines Takts der Reihe nach an: Spieler
treten bei und verlassen die Welt, drei Schläge brechen weichen Fels
und bringen einen Stein. Abgelehnte Befehle ändern nichts.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Ein Spieler hat eine dauerhafte Kennung, einen Namen, eine
Werkzeugstufe und ein Inventar. Befehle (Beitreten, Verlassen, Graben)
sind der einzige Weg, die Welt zu ändern, und lassen sich kodieren.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
24 Plätze mit je bis zu 99 Gegenständen. Hinzufügen füllt zuerst
vorhandene Stapel und meldet, was nicht passt; Entfernen nimmt alles
oder nichts.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Baut aus einer Startzahl eine 64 × 64 Felder große Karte mit Rand aus
Grundgestein, Lichtung am Startpunkt, Felsblock daneben, weichem Fels
innen und hartem Fels außen. Die Regeln sind für 300 Startzahlen geprüft.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Gelände mit Grabregeln, Kacheln mit Schaden und eine rechteckige Karte,
die sich kodieren lässt und unmögliche Eingaben ablehnt.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
FNV-1a für Zustandsprüfsummen und SplitMix64 als einzige Zufallsquelle
des Kerns. Beide sind gegen veröffentlichte Referenzwerte geprüft.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Writer und Reader für Befehle, Snapshots und Aufzeichnungen. Beschädigte
Eingaben führen zu einem Fehler statt zu einem Absturz.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Workspace, leeres Crate grovewright-core und ein Wächter-Test, der den
Quelltext des Kerns auf Verstöße gegen die Gleichschritt-Regeln prüft.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>