59 lines
1.4 KiB
JavaScript
59 lines
1.4 KiB
JavaScript
|
|
|
|
// // // //
|
|
|
|
|
|
уФишкиЕстьСоседи = (индексы, позиция, смещениеСлоя, смещениеСтолбца) =>
|
|
{
|
|
for (var смещениеРяда = -1; смещениеРяда < 2; ++смещениеРяда)
|
|
{
|
|
var позицияСоседа = [
|
|
позиция[0] + смещениеСлоя,
|
|
позиция[1] + смещениеРяда,
|
|
позиция[2] + смещениеСтолбца,
|
|
];
|
|
var индексСоседа = индексПозицииФишки(позицияСоседа);
|
|
if (индексСоседа in индексы)
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
};
|
|
|
|
// // // //
|
|
|
|
|
|
позицияИндексаФишки = (индекс) =>
|
|
{
|
|
const x = индекс / 1000000;
|
|
const y = (индекс - x * 1000000) / 1000;
|
|
const z = индекс - x * 1000000 - y * 1000;
|
|
return [x, y, z];
|
|
};
|
|
|
|
// // // //
|
|
|
|
|
|
индексПозицииФишки = (позиция) =>
|
|
{
|
|
return позиция[0] * 1000000 + позиция[1] * 1000 + позиция[2];
|
|
};
|
|
|
|
|
|
// // // //
|
|
|
|
|
|
номерФишки = (фишки, id) =>
|
|
{
|
|
for (var номер in фишки)
|
|
{
|
|
var фишка = фишки[номер];
|
|
if (фишка.id == id)
|
|
{
|
|
return номер;
|
|
}
|
|
}
|
|
|
|
return null;
|
|
}; |