Files
mahjong-raskladka-layout/раскладка|layout.js

155 lines
5.0 KiB
JavaScript
Raw 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.

// // // //
ВывестиПозицииРаскладкиKMahjongg = мир =>
{
console.debug("Позиции раскладки KMahjongg НАЧАЛО");
const позиции = мир.раскладкаKMahjongg.позиции;
for (var номер in позиции) {
const позиция = позиции[номер];
console.debug(позиция);
}
console.debug("Позиции раскладки KMahjongg КОНЕЦ");
};
// // // //
РазобратьПозицииЭлементовРаскладкиKMahjongg = мир =>
{
const параметры = мир.раскладкаKMahjongg.параметры;
const строки = мир.раскладкаKMahjongg.строки;
var позиции = [];
for (var номерСлоя = 0; номерСлоя < параметры.глубина; ++номерСлоя)
{
for (var ряд = 0; ряд < параметры.высота - 1; ++ряд)
{
for (var столбец = 0; столбец < параметры.ширина - 1; ++столбец)
{
const рядСлоя = ряд + (номерСлоя * параметры.высота);
if (
(строки[рядСлоя][столбец] == '1') &&
(строки[рядСлоя][столбец + 1] == '2') &&
(строки[рядСлоя + 1][столбец] == '4') &&
(строки[рядСлоя + 1][столбец + 1] == '3')
) {
позиции.push([номерСлоя, ряд, столбец]);
}
}
}
}
мир.раскладкаKMahjongg.позиции = позиции;
};
// // // //
ВывестиПараметрыРаскладкиKMahjongg = мир =>
{
console.debug("Параметры раскладки KMahjongg", JSON.stringify(мир.раскладкаKMahjongg.параметры));
};
// // // //
РазобратьПараметрыРаскладкиKMahjongg = мир =>
{
var параметры = {
"ширина": 32,
"высота": 16,
"глубина": 0,
"версия": "1.0",
};
var префиксы = {
"версия": "kmahjongg-layout-v",
"глубина": "d",
"ширина": "w",
"высота": "h",
};
var удалитьЭлементов = 0;
var строки = мир.раскладкаKMahjongg.строки;
for (var номер in строки)
{
var строка = строки[номер];
// Версия.
if (строка.startsWith(префиксы.версия))
{
параметры.версия = строка.substring(префиксы.версия.length);
}
// Глубина.
else if (строка.startsWith(префиксы.глубина))
{
параметры.глубина = строка.substring(префиксы.глубина.length);
}
// Ширина.
else if (строка.startsWith(префиксы.ширина))
{
параметры.ширина = строка.substring(префиксы.ширина.length);
}
// Высота.
else if (строка.startsWith(префиксы.высота))
{
параметры.высота = строка.substring(префиксы.высота.length);
}
else
{
удалитьЭлементов = номер;
break;
}
}
мир.раскладкаKMahjongg.строки.splice(0, удалитьЭлементов);
if (параметры.глубина == 0)
{
параметры.глубина = мир.раскладкаKMahjongg.строки.length / параметры.высота;
}
мир.раскладкаKMahjongg.параметры = параметры;
};
// // // //
ПодготовитьРаскладкуKMahjonggКРазбору = мир =>
{
var строки = мир.раскладкаKMahjongg.содержимое.split(/\n/);
мир.раскладкаKMahjongg.строки = [];
for (var номер in строки)
{
var строка = строки[номер].trim();
// Пропускаем комментарии и пустые строки.
if (строка.startsWith("#") || !строка.length)
{
continue;
}
мир.раскладкаKMahjongg.строки.push(строка);
}
};
// // // //
УведомитьОбОкончанииРазбораРаскладкиKMahjongg = мир =>
{
мир.уведомить("разобрали раскладку KMahjongg");
};
// // // //
РазобратьРаскладкуKMahjongg = мир =>
{
мир.уведомить("надо разобрать раскладку KMahjongg");
};