|
@@ -3,6 +3,106 @@ |
|
|
// // // // |
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ВывестиПобеду = мир => |
|
|
|
|
|
{ |
|
|
|
|
|
console.debug("ПОБЕДА"); |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ВывестиПоражение = мир => |
|
|
|
|
|
{ |
|
|
|
|
|
console.debug("ПОРАЖЕНИЕ"); |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ПроверитьНаличиеФишекНаИгровомПоле = мир => |
|
|
|
|
|
{ |
|
|
|
|
|
if (Object.keys(мир.индексыФишек).length > 0) |
|
|
|
|
|
{ |
|
|
|
|
|
мир.уведомить("фишки на игровом поле присутствуют"); |
|
|
|
|
|
} |
|
|
|
|
|
else { |
|
|
|
|
|
мир.уведомить("фишки на игровом поле отсутствуют"); |
|
|
|
|
|
} |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ВывестиПрисутствиеХодов = мир => |
|
|
|
|
|
{ |
|
|
|
|
|
console.debug("ходы есть"); |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ВывестиОтсутствиеХодов = мир => |
|
|
|
|
|
{ |
|
|
|
|
|
console.debug("ходов нет"); |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ПроверитьНаличиеХодов = мир => |
|
|
|
|
|
{ |
|
|
|
|
|
var номера = мир.доступныеДляВыбораНомераФишек; |
|
|
|
|
|
for (var н0 in номера) |
|
|
|
|
|
{ |
|
|
|
|
|
for (var н1 in номера) |
|
|
|
|
|
{ |
|
|
|
|
|
// Пропускаем одну и ту же фишку. |
|
|
|
|
|
if (н0 == н1) |
|
|
|
|
|
{ |
|
|
|
|
|
continue; |
|
|
|
|
|
} |
|
|
|
|
|
var номер0 = номера[н0]; |
|
|
|
|
|
var номер1 = номера[н1]; |
|
|
|
|
|
var группа0 = мир.группыФишек[номер0]; |
|
|
|
|
|
var группа1 = мир.группыФишек[номер1]; |
|
|
|
|
|
if (группа0 == группа1) |
|
|
|
|
|
{ |
|
|
|
|
|
мир.уведомить("ходы присутствуют"); |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
мир.уведомить("ходы отсутствуют"); |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
СобратьДоступныеДляВыбораНомераФишек = мир => |
|
|
|
|
|
{ |
|
|
|
|
|
мир.доступныеДляВыбораНомераФишек = []; |
|
|
|
|
|
for (индекс in мир.индексыФишек) |
|
|
|
|
|
{ |
|
|
|
|
|
if (фишкуМожноВыбрать(мир.индексыФишек, индекс)) |
|
|
|
|
|
{ |
|
|
|
|
|
var фишка = мир.индексыФишек[индекс]; |
|
|
|
|
|
var номер = номерФишки(мир.фишки, фишка.id); |
|
|
|
|
|
мир.доступныеДляВыбораНомераФишек.push(номер); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ЗапуститьПлавноеСкрытиеФишек = мир => |
|
|
ЗапуститьПлавноеСкрытиеФишек = мир => |
|
|
{ |
|
|
{ |
|
|
var шаг = 10; |
|
|
var шаг = 10; |
|
@@ -11,7 +111,6 @@ |
|
|
var дельтаПрозрачности = шаг / длительность; |
|
|
var дельтаПрозрачности = шаг / длительность; |
|
|
const анимация = setInterval( |
|
|
const анимация = setInterval( |
|
|
function() { |
|
|
function() { |
|
|
const позиции = мир.раскладкаKMahjongg.позиции; |
|
|
|
|
|
прозрачность -= дельтаПрозрачности; |
|
|
прозрачность -= дельтаПрозрачности; |
|
|
// Возвращаем прозрачность материалам перед последующим скрытием фишек. |
|
|
// Возвращаем прозрачность материалам перед последующим скрытием фишек. |
|
|
// И планируем выход из этой анимации. |
|
|
// И планируем выход из этой анимации. |
|
@@ -214,25 +313,6 @@ |
|
|
|
|
|
|
|
|
ОкраситьНайденнуюФишку = мир => |
|
|
ОкраситьНайденнуюФишку = мир => |
|
|
{ |
|
|
{ |
|
|
/* |
|
|
|
|
|
// Очищаем цвета всех фишек. |
|
|
|
|
|
for (var номер in мир.фишки) |
|
|
|
|
|
{ |
|
|
|
|
|
var фишка = мир.фишки[номер]; |
|
|
|
|
|
var группа = мир.группыФишек[номер]; |
|
|
|
|
|
var материал = мир.материалыФишек[группа]; |
|
|
|
|
|
фишка.material = материал; |
|
|
|
|
|
} |
|
|
|
|
|
// Окрашиваем выбранные фишки. |
|
|
|
|
|
for (var id in мир.номераВыбранныхФишек) |
|
|
|
|
|
{ |
|
|
|
|
|
var номер = мир.номераВыбранныхФишек[id]; |
|
|
|
|
|
var фишка = мир.фишки[номер]; |
|
|
|
|
|
var группа = мир.группыФишек[номер]; |
|
|
|
|
|
var материал = мир.материалыВыбранныхФишек[группа]; |
|
|
|
|
|
фишка.material = материал; |
|
|
|
|
|
} |
|
|
|
|
|
*/ |
|
|
|
|
|
var номер = мир.номерНайденнойФишки; |
|
|
var номер = мир.номерНайденнойФишки; |
|
|
var фишка = мир.фишки[номер]; |
|
|
var фишка = мир.фишки[номер]; |
|
|
var группа = мир.группыФишек[номер]; |
|
|
var группа = мир.группыФишек[номер]; |
|
@@ -266,25 +346,12 @@ |
|
|
|
|
|
|
|
|
ПроверитьДоступностьФишкиДляВыбора = мир => |
|
|
ПроверитьДоступностьФишкиДляВыбора = мир => |
|
|
{ |
|
|
{ |
|
|
// Проверяем заблокированность фишки одновременно с обеих сторон. |
|
|
|
|
|
var позиция = мир.раскладкаKMahjongg.позиции[мир.номерНайденнойФишки]; |
|
|
var позиция = мир.раскладкаKMahjongg.позиции[мир.номерНайденнойФишки]; |
|
|
var слева = уФишкиЕстьСоседи(мир.индексыФишек, позиция, 0, -2); |
|
|
|
|
|
var справа = уФишкиЕстьСоседи(мир.индексыФишек, позиция, 0, 2); |
|
|
|
|
|
if (слева && справа) |
|
|
|
|
|
{ |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// Проверяем заблокированность сверху. |
|
|
|
|
|
for (var смещениеСтолбца = -1; смещениеСтолбца < 2; ++смещениеСтолбца) |
|
|
|
|
|
|
|
|
var индекс = индексПозицииФишки(позиция); |
|
|
|
|
|
if (фишкуМожноВыбрать(мир.индексыФишек, индекс)) |
|
|
{ |
|
|
{ |
|
|
if (уФишкиЕстьСоседи(мир.индексыФишек, позиция, 1, смещениеСтолбца)) |
|
|
|
|
|
{ |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
мир.уведомить("фишка доступна для выбора"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
мир.уведомить("фишка доступна для выбора"); |
|
|
|
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|