Files
MEXMA/🎬.js

152 lines
4.6 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
{
мир.уведомить("выбрали пару фишек маджонга разных групп");
}
};
// // // //
ПодготовитьМеханикуМаджонга = мир =>
{
мир.выбранныеФишкиМаджонга = [];
мир.задержкаУбиранияФишекМаджонга = ЗАДЕРЖКА;
};