feat: initial commit with M1-M4 implementation
This commit is contained in:
17
docs/reviews/2026-05-08-physics-dynamics.md
Normal file
17
docs/reviews/2026-05-08-physics-dynamics.md
Normal file
@@ -0,0 +1,17 @@
|
||||
## Code review
|
||||
|
||||
Объект: Physics & Puck Dynamics (M2)
|
||||
Проверял: bugs, conventions, history, comments, tests.
|
||||
|
||||
Найдено и исправлено:
|
||||
1. **bug** — Boundary Jitter.
|
||||
`internal/game/world.go`
|
||||
Проблема: Отсутствие коррекции позиции при отскоке могло привести к застреванию шайбы в стене.
|
||||
Решение: Добавлен clamping позиции к границам при обнаружении коллизии.
|
||||
|
||||
2. **convention** — Float Precision in Tests.
|
||||
`internal/game/world_test.go`
|
||||
Проблема: Использование прямого сравнения `!=` для float64.
|
||||
Решение: Переход на сравнение с использованием epsilon (`math.Abs`).
|
||||
|
||||
Итог: Критические баги устранены, тесты проходят.
|
||||
9
docs/reviews/2026-05-09-ai-fixes.md
Normal file
9
docs/reviews/2026-05-09-ai-fixes.md
Normal file
@@ -0,0 +1,9 @@
|
||||
## Code review
|
||||
|
||||
Объект: Fixes for Striker AI and magic numbers
|
||||
Проверял: bugs, conventions, history, comments, tests.
|
||||
|
||||
Проблем уровня ≥75 не нашёл. Все замечания предыдущего ревью исправлены:
|
||||
- Логика Striker AI теперь корректно направляет игрока к шайбе в зоне противника.
|
||||
- Магические числа 640/360 заменены на константы WorldCenterX/Y.
|
||||
- Тесты в TestWorld_StrikerAI обновлены и проходят.
|
||||
19
docs/reviews/2026-05-09-ai-tests.md
Normal file
19
docs/reviews/2026-05-09-ai-tests.md
Normal file
@@ -0,0 +1,19 @@
|
||||
## Code review
|
||||
|
||||
Объект: uncommitted changes (AI tests and Striker fix)
|
||||
Найдено: 3 (после фильтра).
|
||||
|
||||
1. **bug** — Striker AI logic is inverted (Regression).
|
||||
`internal/game/world.go:134-136`
|
||||
Доказательство: `if isOwnZone { return puckPos }`
|
||||
Почему: Нападающий начинает преследовать шайбу только в своей половине поля, а в чужой остается статичным. Это противоположно логике футбола.
|
||||
|
||||
2. **test** — Tests verify incorrect behavior.
|
||||
`internal/game/world_test.go:88-112`
|
||||
Доказательство: `TestWorld_StrikerAI` проверяет преследование шайбы в своей зоне.
|
||||
Почему: Тест является «зеркалом» бага: он проходит, потому что подтверждает неправильное поведение.
|
||||
|
||||
3. **convention** — Use of magic numbers for field dimensions.
|
||||
`internal/game/world.go:133, 138, 141`
|
||||
Доказательство: `puckPos.X < 640`
|
||||
Почему: Значения 640 и 360 (центр поля) повторяются многократно. Следует вынести их в именованные константы (например, `WorldCenterX`).
|
||||
Reference in New Issue
Block a user