Browse Source

Изменения от Главреда ГитЖС | Changes of GitJS Glavred

master
Главред | Glavred 3 years ago
parent
commit
71372f2f50
4 changed files with 107 additions and 163 deletions
  1. +1
    -2
      0000
  2. +106
    -0
      раскладка-layout-kmahjongg.js
  3. +0
    -154
      раскладка|layout.js
  4. +0
    -7
      раскладка|layout.череда

+ 1
- 2
0000 View File

@@ -2,5 +2,4 @@
1.0.0
https://git.opengamestudio.org/mahjong/mahjong-raskladka-layout

x /раскладка|layout.js
/раскладка|layout.череда
x /раскладка-layout-kmahjongg.js

+ 106
- 0
раскладка-layout-kmahjongg.js View File

@@ -0,0 +1,106 @@
разобратьРаскладкуKMahjongg = function(содержимое)
{
this.__преобразоватьСодержимоеВСтроки = () =>
{
var строки = содержимое.split(/\n/);
this.строки = [];
for (var номер in строки)
{
var строка = строки[номер].trim();
// Пропускаем комментарии и пустые строки.
if (строка.startsWith("#") || !строка.length)
{
continue;
}
this.строки.push(строка);
}
};
this.__разобратьПараметры = () =>
{
var параметры = {
"ширина": 32,
"высота": 16,
"глубина": 0,
"версия": "1.0",
};
var префиксы = {
"версия": "kmahjongg-layout-v",
"глубина": "d",
"ширина": "w",
"высота": "h",
};
var удалитьЭлементов = 0;
var строки = this.строки;
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;
}
}
this.строки.splice(0, удалитьЭлементов);
if (параметры.глубина == 0)
{
параметры.глубина = this.строки.length / параметры.высота;
}
this.параметры = параметры;
};
this.__разобратьПозиции = () =>
{
const параметры = this.параметры;
const строки = this.строки;
var позиции = [];
for (var номерСлоя = 0; номерСлоя < параметры.глубина; ++номерСлоя)
{
for (var ряд = 0; ряд < параметры.высота - 1; ++ряд)
{
for (var столбец = 0; столбец < параметры.ширина - 1; ++столбец)
{
const рядСлоя = ряд + (номерСлоя * параметры.высота);
if (
(строки[рядСлоя][столбец] == '1') &&
(строки[рядСлоя][столбец + 1] == '2') &&
(строки[рядСлоя + 1][столбец] == '4') &&
(строки[рядСлоя + 1][столбец + 1] == '3')
) {
позиции.push([номерСлоя, ряд, столбец]);
}
}
}
}
this.позиции = позиции;
};
// Исполняем.
this.__преобразоватьСодержимоеВСтроки();
this.__разобратьПараметры();
this.__разобратьПозиции();
return this.позиции;
};

+ 0
- 154
раскладка|layout.js View File

@@ -1,154 +0,0 @@


// // // //


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


+ 0
- 7
раскладка|layout.череда View File

@@ -1,7 +0,0 @@
надо разобрать раскладку KMahjongg
подготовить раскладку KMahjongg к разбору
разобрать параметры раскладки KMahjongg
# вывести параметры раскладки KMahjongg
разобрать позиции элементов раскладки KMahjongg
# вывести позиции раскладки KMahjongg
уведомить об окончании разбора раскладки KMahjongg

Loading…
Cancel
Save