Добавить первую волну мира Physics
This commit is contained in:
@@ -683,6 +683,78 @@ LevelID="foundations.foundation-final", WorldID="foundations"
|
||||
corpse bridge, pressure, toggle-controlled ferry, timed AND-door и collectible;
|
||||
каждая смерть и реальная опора на moving platform наблюдаются ботом.
|
||||
|
||||
## Уровень 31 — `Weight Class`
|
||||
|
||||
**Статус:** доказан production-input ботом, 3/3 последовательных прохождения;
|
||||
после них restart возвращает сдвинутый объект и Door в исходное состояние.
|
||||
**Ожидаемые и доказанные смерти:** `0`.
|
||||
|
||||
```text
|
||||
LevelID="physics.mass-basics", WorldID="physics"
|
||||
→ игрок толкает COUNTERWEIGHT mass=3 с x=650 на pressure x=940..1190
|
||||
→ requiredMass=3 открывает mass-door без присутствия игрока на плите
|
||||
→ input отпускается, Door остаётся открытой только массой объекта
|
||||
→ игрок перепрыгивает противовес, забирает cache x=1580
|
||||
→ проходит Door x=1370 и достигает goal без смертей
|
||||
→ restart возвращает object x=650,y=780, закрытую Door и чистый input/cache
|
||||
```
|
||||
|
||||
**Контракт:** это первый production-уровень Physics и отдельное обучение
|
||||
`weighted-object`; pressure resolver не различает player/corpse/object по типу.
|
||||
|
||||
## Уровень 32 — `Stack Order`
|
||||
|
||||
**Статус:** доказан production-input ботом, 3/3 последовательных прохождения.
|
||||
**Ожидаемые и доказанные смерти:** `0`.
|
||||
|
||||
```text
|
||||
LevelID="physics.stack-order", WorldID="physics"
|
||||
→ BOX x=650,y=800 поддерживает ROCK x=700,y=720
|
||||
→ ROCK поддерживает ICE_BLOCK x=760,y=640; solver сохраняет обе опоры
|
||||
→ игрок отдельными jump edge поднимается на нижний и верхний объекты
|
||||
→ со стопки прыгает на gallery x=1030,y=600 и забирает cache x=900,y=555
|
||||
→ по верхней галерее достигает goal x=2260,y=490 без смертей
|
||||
```
|
||||
|
||||
**Контракт:** vertical object/object contact выбирает первую пересечённую опору
|
||||
снизу, не телепортирует восходящие или не пересекающиеся объекты и не меняет
|
||||
существующую player physics.
|
||||
|
||||
## Уровень 33 — `Launch Window`
|
||||
|
||||
**Статус:** доказан production-input ботом, 3/3 последовательных прохождения.
|
||||
**Ожидаемые и доказанные смерти:** `1`; saw launch сохраняет одно тело.
|
||||
|
||||
```text
|
||||
LevelID="physics.launch-window", WorldID="physics"
|
||||
→ первый доброволец входит в saw x=600 и получает impulse (700,-420)
|
||||
→ следующий начинает прыжок до saw и отдельным edge очищает доставленное тело
|
||||
→ у нижней фазы садится на lift x=1350,y≈790
|
||||
→ snapshot подтверждает реальную moving-platform support
|
||||
→ едет до y≤430 и прыгает на gallery x=1750,y=500
|
||||
→ забирает cache x=2050 и достигает верхнего goal с deaths=1, corpses=1
|
||||
```
|
||||
|
||||
**Контракт:** уровень сочетает уже обученный saw-launch с вертикальной движущейся
|
||||
опорой; бот наблюдает смерть, доставленное тело, посадку и верхнюю фазу отдельно.
|
||||
|
||||
## Уровень 34 — `Press Cycle`
|
||||
|
||||
**Статус:** доказан production-input ботом, 3/3 последовательных прохождения.
|
||||
**Ожидаемые и доказанные смерти:** `1`; crushed body сохраняется на pressure.
|
||||
|
||||
```text
|
||||
LevelID="physics.crusher-rhythm", WorldID="physics"
|
||||
→ первый доброволец погибает в CRUSHER x=680..850
|
||||
→ crushed body становится низкой retained mass на pressure x=650..880
|
||||
→ следующий наблюдает active и inactive фазы полного 4.5 s цикла
|
||||
→ одним новым jump edge пересекает resting press без второй смерти
|
||||
→ забирает cache x=1320 и достигает goal с deaths=1, corpses=1
|
||||
```
|
||||
|
||||
**Контракт:** pressure фиксирует результат жертвы, а timing остаётся обязательным:
|
||||
каждый шаг fail-fast отклоняет вторую смерть и не перезапускает цикл.
|
||||
|
||||
## Проверки, следующие из графов
|
||||
|
||||
1. Сохранять полный integrated device-regression: intended route принятых уровней по три раза и отдельный recovery route уровня 8.
|
||||
|
||||
Reference in New Issue
Block a user