|
@@ -0,0 +1,154 @@ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ВывестиПозицииРаскладки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"); |
|
|
|
|
|
}; |
|
|
|
|
|
|