Сцена Маджонга | Mahjong scene
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

59 lines
1.4KB

  1. // // // //
  2. уФишкиЕстьСоседи = (индексы, позиция, смещениеСлоя, смещениеСтолбца) =>
  3. {
  4. for (var смещениеРяда = -1; смещениеРяда < 2; ++смещениеРяда)
  5. {
  6. var позицияСоседа = [
  7. позиция[0] + смещениеСлоя,
  8. позиция[1] + смещениеРяда,
  9. позиция[2] + смещениеСтолбца,
  10. ];
  11. var индексСоседа = индексПозицииФишки(позицияСоседа);
  12. if (индексСоседа in индексы)
  13. {
  14. return true;
  15. }
  16. }
  17. return false;
  18. };
  19. // // // //
  20. позицияИндексаФишки = (индекс) =>
  21. {
  22. const x = индекс / 1000000;
  23. const y = (индекс - x * 1000000) / 1000;
  24. const z = индекс - x * 1000000 - y * 1000;
  25. return [x, y, z];
  26. };
  27. // // // //
  28. индексПозицииФишки = (позиция) =>
  29. {
  30. return позиция[0] * 1000000 + позиция[1] * 1000 + позиция[2];
  31. };
  32. // // // //
  33. номерФишки = (фишки, id) =>
  34. {
  35. for (var номер in фишки)
  36. {
  37. var фишка = фишки[номер];
  38. if (фишка.id == id)
  39. {
  40. return номер;
  41. }
  42. }
  43. return null;
  44. };