const ЗАДЕРЖКА = 100; // // // // УведомитьОРезультатеЕслиКонец = мир => { if (мир.количествоХодовВМаджонге != 0) { return; } var фишкиОстались = Object.keys(мир.индексыФишекМаджонга).length > 0; if (фишкиОстались) { мир.уведомить("поражение в маджонге"); } else { мир.уведомить("победа в маджонге"); } }; // // // // ПодсчитатьКоличествоХодовВМаджонге = мир => { var номера = мир.доступныеДляВыбораНомераФишекМаджонга; var фишки = мир.фишкиМаджонга; var ходов = 0; for (var н0 in номера) { н0 = Number(н0); // Исключаем уже просмотренные номера. for (var н1 = н0 + 1; н1 < номера.length; ++н1) { var номер0 = номера[н0]; var номер1 = номера[н1]; var группа0 = фишки[номер0]["🚩"]; var группа1 = фишки[номер1]["🚩"]; if (группа0 == группа1) { ++ходов; } } } мир.количествоХодовВМаджонге = ходов; мир.уведомить("изменили количество ходов в маджонге"); }; // // // // СобратьДоступныеДляВыбораНомераФишекМаджонга = мир => { var индексы = мир.индексыФишекМаджонга; var номера = []; for (индекс in индексы) { if (фишкуМаджонгаМожноВыбрать(индексы, индекс)) { var номер = индексы[индекс]; номера.push(номер); } } мир.доступныеДляВыбораНомераФишекМаджонга = номера; }; // // // // ОчиститьИндексыФишекМаджонгаОтУбранных = мир => { for (var номер in мир.убранныеФишкиМаджонга) { var н = мир.убранныеФишкиМаджонга[номер]; var позиция = мир.фишкиМаджонга[н]["📍"]; var индекс = индексПозицииФишкиМаджонга(позиция); delete мир.индексыФишекМаджонга[индекс]; } }; // // // // УбратьВыбраннуюПаруФишекМаджонгаСЗадержкой = мир => { setTimeout( function() { мир.убранныеФишкиМаджонга = мир.выбранныеФишкиМаджонга.slice(); мир.выбранныеФишкиМаджонга = []; мир.уведомить("изменили выбранные фишки маджонга"); мир.уведомить("убрали фишки маджонга"); }, мир.задержкаУбиранияФишекМаджонга ); }; // // // // ИсключитьИзВыбранныхФишекМаджонгаПервую = мир => { мир.выбранныеФишкиМаджонга.shift(); мир.уведомить("изменили выбранные фишки маджонга"); }; // // // // СравнитьПаруВыбранныхФишекМаджонга = мир => { // Удостоверяемся в наличии двух фишек. if (мир.выбранныеФишкиМаджонга.length != 2) { return; } var н1 = мир.выбранныеФишкиМаджонга[0]; var н2 = мир.выбранныеФишкиМаджонга[1]; var г1 = мир.фишкиМаджонга[н1]["🚩"]; var г2 = мир.фишкиМаджонга[н2]["🚩"]; if (г1 == г2) { мир.уведомить("выбрали пару фишек маджонга одной группы"); } else { мир.уведомить("выбрали пару фишек маджонга разных групп"); } }; // // // // ПодготовитьМеханикуМаджонга = мир => { мир.выбранныеФишкиМаджонга = []; мир.задержкаУбиранияФишекМаджонга = ЗАДЕРЖКА; };