diff --git a/src/components/builders/maze-builder.tsx b/src/components/builders/maze-builder.tsx index d1062ee..47a2fad 100644 --- a/src/components/builders/maze-builder.tsx +++ b/src/components/builders/maze-builder.tsx @@ -23,13 +23,14 @@ export function MazeBuilder({ const [description, setDescription] = useState(initialDescription ?? ""); const [gridText, setGridText] = useState((initialDefinition?.grid ?? DEFAULT_MAZE_DEFINITION.grid).join("\n")); const [timeLimitSec, setTimeLimitSec] = useState(initialDefinition?.timeLimitSec ?? 0); + const [lives, setLives] = useState(initialDefinition?.lives ?? DEFAULT_MAZE_DEFINITION.lives); const [error, setError] = useState(null); const [saving, setSaving] = useState(false); async function handleSave() { setError(null); const grid = gridText.split("\n").map((row) => row.trimEnd()).filter((row) => row.length > 0); - const definition: MazeDefinition = { grid, timeLimitSec }; + const definition: MazeDefinition = { grid, timeLimitSec, lives }; const parsed = mazeDefinitionSchema.safeParse(definition); if (!parsed.success) { setError(parsed.error.issues[0]?.message ?? "Проверьте лабиринт — что-то заполнено неверно"); @@ -88,24 +89,39 @@ export function MazeBuilder({ className="w-full rounded-md border border-border bg-surface px-3 py-2 text-sm outline-none focus:border-accent" /> - +
+ + +
- Лабиринт — каждая строка ряд. # стена,{" "} + Лабиринт в стиле Pac-Man — каждая строка ряд. # стена,{" "} . пол, S старт (один),{" "} - E выход, * предмет. + E выход, * точка,{" "} + O усиливающая точка (пугает привидений),{" "} + G призрак (до 4). Нужно собрать все точки и дойти до выхода.