МЕХаника МАджонга
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.

53 lines
1.8KB

  1. const ЗАДЕРЖКА = 100;
  2. // // // //
  3. СоздатьИндексыФишекМаджонга = мир =>
  4. {
  5. мир.индексыФишекМаджонга = {};
  6. for (var н in мир.фишкиМаджонга)
  7. {
  8. var позиция = мир.фишкиМаджонга[н]["📍"];
  9. var индекс = индексПозицииФишкиМаджонга(позиция);
  10. мир.индексыФишекМаджонга[индекс] = н;
  11. };
  12. };
  13. // // // //
  14. ВыбратьФишкуМаджонга = мир =>
  15. {
  16. var номер = мир.фишкаМаджонгаДляВыбора;
  17. // Отсекаем выбор одной и той же фишки.
  18. if (
  19. мир.выбраннаяФишкаМаджонга &&
  20. мир.выбраннаяФишкаМаджонга == номер
  21. ) {
  22. return;
  23. }
  24. // Проверяем доступность с точки зрения правил Маджонга.
  25. var позиция = мир.фишкиМаджонга[номер]["📍"];
  26. var индекс = индексПозицииФишкиМаджонга(позиция);
  27. if (!фишкуМаджонгаМожноВыбрать(мир.индексыФишекМаджонга, индекс))
  28. {
  29. return;
  30. }
  31. мир.выбраннаяФишкаМаджонга = номер;
  32. мир.выбранныеФишкиМаджонга.push(номер);
  33. мир.уведомить("изменили выбранные фишки маджонга");
  34. };
  35. // // // //
  36. ПодготовитьМеханикуМаджонга = мир =>
  37. {
  38. мир.выбранныеФишкиМаджонга = [];
  39. мир.задержкаУбиранияФишекМаджонга = ЗАДЕРЖКА;
  40. };