-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpathfinder.test.js
More file actions
91 lines (78 loc) · 3.24 KB
/
pathfinder.test.js
File metadata and controls
91 lines (78 loc) · 3.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
/**
* pathfinder.test.js — тестовый файл с объявлением функций поиска пути
*
* Функции:
* 1. initPathfinder(grid) — инициализация карты
* 2. updateGrid(newGrid) — обновление карты
* 3. findPath4(start, goal) — поиск пути по 4 направлениям
* 4. findPath8(start, goal) — поиск пути по 8 направлениям
* 5. setPathForSpawner(spawnerId, start, goal, useDiagonal=false) — сохранить путь
* 6. getPathForSpawner(spawnerId) — получить путь
* 7. isPathAvailable(start, goal, useDiagonal=false) — проверка пути
* 8. getDebugOverlay(spawnerId) — маска пути для Dev Mode
* 9. recalcAllPaths() — пересчитать все пути
* 10. addSpawner(spawnerId, start, goal, useDiagonal=false) — добавить спавн
* 11. removeSpawner(spawnerId) — удалить спавн
* 12. applyEffectToPosition(x, y, effect) — применение эффекта (заглушка)
*/
// Переменные состояния (заглушки)
let grid = [];
let spawners = new Map();
let pathsCache = new Map();
/** 1. Инициализация карты */
export function initPathfinder(newGrid) {
console.log('initPathfinder called', newGrid);
grid = newGrid;
spawners.clear();
pathsCache.clear();
}
/** 2. Обновление карты */
export function updateGrid(newGrid) {
console.log('updateGrid called', newGrid);
grid = newGrid;
}
/** 3. Поиск пути 4 направления */
export function findPath4(start, goal) {
console.log('findPath4 called', start, goal);
return null;
}
/** 4. Поиск пути 8 направлений */
export function findPath8(start, goal) {
console.log('findPath8 called', start, goal);
return null;
}
/** 5. Сохранить путь для спавна */
export function setPathForSpawner(spawnerId, start, goal, useDiagonal = false) {
console.log('setPathForSpawner called', spawnerId, start, goal, useDiagonal);
}
/** 6. Получить путь для спавна */
export function getPathForSpawner(spawnerId) {
console.log('getPathForSpawner called', spawnerId);
return null;
}
/** 7. Проверка доступности пути */
export function isPathAvailable(start, goal, useDiagonal = false) {
console.log('isPathAvailable called', start, goal, useDiagonal);
return false;
}
/** 8. Получить маску пути для Dev Mode */
export function getDebugOverlay(spawnerId) {
console.log('getDebugOverlay called', spawnerId);
return [];
}
/** 9. Пересчитать все пути */
export function recalcAllPaths() {
console.log('recalcAllPaths called');
}
/** 10. Добавить спавн */
export function addSpawner(spawnerId, start, goal, useDiagonal = false) {
console.log('addSpawner called', spawnerId, start, goal, useDiagonal);
}
/** 11. Удалить спавн */
export function removeSpawner(spawnerId) {
console.log('removeSpawner called', spawnerId);
}
/** 12. Применение эффекта (заглушка) */
export function applyEffectToPosition(x, y, effect) {
console.log('applyEffectToPosition called', x, y, effect);
}