Изменения от Главреда ГитЖС | Changes of GitJS Glavred

This commit is contained in:
Главред | Glavred
2020-12-04 14:58:27 +03:00
parent 787a38ac38
commit e2f97932c7
5 changed files with 135 additions and 33 deletions

65
⨐.js Normal file
View File

@@ -0,0 +1,65 @@
фишкуМаджонгаМожноВыбрать = (индексы, индекс) =>
{
var позиция = позицияИндексаФишкиМаджонга(индекс);
// Проверяем заблокированность фишки одновременно с обеих сторон.
var слева = уФишкиМаджонгаЕстьСоседи(индексы, позиция, 0, -2);
var справа = уФишкиМаджонгаЕстьСоседи(индексы, позиция, 0, 2);
if (слева && справа)
{
return false;
}
// Проверяем заблокированность сверху.
for (var смещениеСтолбца = -1; смещениеСтолбца < 2; ++смещениеСтолбца)
{
if (уФишкиМаджонгаЕстьСоседи(индексы, позиция, 1, смещениеСтолбца))
{
return false;
}
}
return true;
};
// // // //
уФишкиМаджонгаЕстьСоседи = (индексы, позиция, смещениеСлоя, смещениеСтолбца) =>
{
for (var смещениеРяда = -1; смещениеРяда < 2; ++смещениеРяда)
{
var позицияСоседа = [
позиция[0] + смещениеСлоя,
позиция[1] + смещениеРяда,
позиция[2] + смещениеСтолбца,
];
var индексСоседа = индексПозицииФишкиМаджонга(позицияСоседа);
if (индексСоседа in индексы)
{
return true;
}
}
return false;
};
// // // //
позицияИндексаФишкиМаджонга = (индекс) =>
{
const x = Math.round(индекс / 1000000);
const y = Math.round((индекс - x * 1000000) / 1000);
const z = индекс - x * 1000000 - y * 1000;
return [x, y, z];
};
// // // //
индексПозицииФишкиМаджонга = (позиция) =>
{
return позиция[0] * 1000000 + позиция[1] * 1000 + позиция[2];
};