diff --git a/0000 b/0000
index fbb4dca..603a892 100644
--- a/0000
+++ b/0000
@@ -1,5 +1,12 @@
ПИМ | MUI
1.0.0
+https://git.opengamestudio.org/mahjong/mahjong-ui
-/привет|hello.череда
-x /привет|hello.js
+x /окончание|ending.js
+/окончание|ending.череда
+x /приветствие|welcome.js
+/приветствие|welcome.череда
+x /пуск|run.js
+/пуск|run.череда
+x /управление|controls.js
+/управление|controls.череда
\ No newline at end of file
diff --git a/окончание|ending.js b/окончание|ending.js
new file mode 100644
index 0000000..0b3a25c
--- /dev/null
+++ b/окончание|ending.js
@@ -0,0 +1,147 @@
+
+
+// // // //
+
+
+ЗадатьПораженческоеСодержимоеОкнуОкончания = мир =>
+{
+ $(`#${мир.окна.окончание.указатель}-содержимое`).html(`
+
+Поражение
+⚬ 失败 ⚬
+Defeat
+
+ `);
+};
+
+
+// // // //
+
+
+ЗадатьПобедноеСодержимоеОкнуОкончания = мир =>
+{
+ $(`#${мир.окна.окончание.указатель}-содержимое`).html(`
+
+Победа
+⚬ 胜利 ⚬
+Victory
+
+ `);
+};
+
+
+// // // //
+
+
+ПлавноПоказатьОкноОкончания = мир =>
+{
+ const css = `
+
+#${мир.окна.окончание.указатель}
+{
+ opacity: 0;
+ animation: ${мир.окна.окончание.указатель}ПлавноПоказать 0.5s ease;
+ animation-fill-mode: forwards;
+}
+
+ `;
+ мир.окна.окончание.анимация.innerHTML = css;
+ мир.окна.окончание.элемент.style.display = "block";
+};
+
+
+// // // //
+
+
+ПодготовитьАнимациюОкнаОкончания = мир =>
+{
+ мир.окна.окончание.анимация = document.createElement("style");
+ document.head.appendChild(мир.окна.окончание.анимация);
+};
+
+
+// // // //
+
+
+ЗадатьВидИАнимациюОкнаОкончания = мир =>
+{
+ const css = `
+
+#${мир.окна.окончание.указатель}-тело
+{
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ transform: translateX(-50%) translateY(-50%);
+}
+#${мир.окна.окончание.указатель}
+{
+ background-color: white;
+ position: fixed;
+ left: 0;
+ top: 0;
+ right: 0;
+ bottom: 0;
+}
+
+@keyframes ${мир.окна.окончание.указатель}ПлавноСкрыть
+{
+ 0%
+ {
+ opacity: 1;
+ }
+ 100%
+ {
+ opacity: 0;
+ }
+}
+
+@keyframes ${мир.окна.окончание.указатель}ПлавноПоказать
+{
+ 0%
+ {
+ opacity: 0;
+ }
+ 100%
+ {
+ opacity: 1;
+ }
+}
+
+ `;
+ var вид = document.createElement("style");
+ вид.innerHTML = css;
+ document.head.appendChild(вид);
+};
+
+
+// // // //
+
+
+СоздатьОкноОкончания = мир =>
+{
+ мир.окна.окончание = {
+ "указатель": "окно-окончания",
+ };
+ const html = `
+
+
+
+ `;
+
+ var окно = document.createElement("div");
+ окно.id = мир.окна.окончание.указатель;
+ окно.innerHTML = html;
+ document.body.appendChild(окно);
+ окно.style.display = "none";
+ мир.окна.окончание.элемент = окно;
+};
\ No newline at end of file
diff --git a/окончание|ending.череда b/окончание|ending.череда
new file mode 100644
index 0000000..968f80d
--- /dev/null
+++ b/окончание|ending.череда
@@ -0,0 +1,10 @@
+надо создать окно окончания
+ создать окно окончания
+ задать вид и анимацию окна окончания
+ подготовить анимацию окна окончания
+победа
+ задать победное содержимое окну окончания
+ плавно показать окно окончания
+поражение
+ задать пораженческое содержимое окну окончания
+ плавно показать окно окончания
\ No newline at end of file
diff --git a/привет|hello.js b/привет|hello.js
deleted file mode 100644
index 14b90ca..0000000
--- a/привет|hello.js
+++ /dev/null
@@ -1,7 +0,0 @@
-ПоприветствоватьМир = function()
-{
- console.log("Привет, мир!");
- console.log("Hello, world!");
- document.body.innerHTML += "Привет, мир!
";
- document.body.innerHTML += "Hello, world!
";
-};
diff --git a/привет|hello.череда b/привет|hello.череда
deleted file mode 100644
index 278573b..0000000
--- a/привет|hello.череда
+++ /dev/null
@@ -1,2 +0,0 @@
-пуск
- поприветствовать мир
diff --git a/приветствие|welcome.js b/приветствие|welcome.js
new file mode 100644
index 0000000..c212c5f
--- /dev/null
+++ b/приветствие|welcome.js
@@ -0,0 +1,209 @@
+
+
+// // // //
+
+
+ВыбратьРаскладкуПровальную = мир =>
+{
+ мир.выбраннаяРаскладка = "😭";
+ мир.уведомить("выбрали раскладку");
+};
+
+
+// // // //
+
+
+ВыбратьРаскладкуУспешную = мир =>
+{
+ мир.выбраннаяРаскладка = "😀";
+ мир.уведомить("выбрали раскладку");
+};
+
+
+// // // //
+
+
+ВыбратьРаскладкуX = мир =>
+{
+ мир.выбраннаяРаскладка = "X";
+ мир.уведомить("выбрали раскладку");
+};
+
+
+// // // //
+
+
+ОтключитьОкноПриветствия = мир =>
+{
+ мир.окна.приветствие.элемент.style.display = "none";
+};
+
+
+// // // //
+
+
+ПлавноСкрытьОкноПриветствия = мир =>
+{
+ const css = `
+
+#${мир.окна.приветствие.указатель}
+{
+ opacity: 1;
+ animation: ${мир.окна.приветствие.указатель}ПлавноСкрыть 0.5s ease;
+ animation-fill-mode: forwards;
+ animation-delay: 0.1s;
+}
+
+ `;
+ мир.окна.приветствие.анимация.innerHTML = css;
+ мир.окна.приветствие.показываем = false;
+};
+
+
+// // // //
+
+
+ПлавноПоказатьОкноПриветствия = мир =>
+{
+ const css = `
+
+#${мир.окна.приветствие.указатель}
+{
+ opacity: 0;
+ animation: ${мир.окна.приветствие.указатель}ПлавноПоказать 1s ease;
+ animation-fill-mode: forwards;
+}
+
+ `;
+ мир.окна.приветствие.анимация.innerHTML = css;
+ мир.окна.приветствие.показываем = true;
+ мир.окна.приветствие.элемент.style.display = "block";
+};
+
+
+// // // //
+
+
+ПодготовитьАнимациюОкнаПриветствия = мир =>
+{
+ мир.окна.приветствие.анимация = document.createElement("style");
+ document.head.appendChild(мир.окна.приветствие.анимация);
+ мир.окна.приветствие.показываем = true;
+ мир.окна.приветствие.элемент.addEventListener(
+ "animationend",
+ function()
+ {
+ if (мир.окна.приветствие.показываем)
+ {
+ мир.уведомить("плавно показали окно приветствия");
+ }
+ else {
+ мир.уведомить("плавно скрыли окно приветствия");
+ }
+ }
+ );
+};
+
+
+// // // //
+
+
+ЗадатьВидИАнимациюОкнаПриветствия = мир =>
+{
+ const css = `
+
+#${мир.окна.приветствие.указатель}-тело
+{
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ transform: translateX(-50%) translateY(-50%);
+}
+#${мир.окна.приветствие.указатель}
+{
+ background-color: white;
+ position: fixed;
+ left: 0;
+ top: 0;
+ right: 0;
+ bottom: 0;
+}
+
+@keyframes ${мир.окна.приветствие.указатель}ПлавноСкрыть
+{
+ 0%
+ {
+ opacity: 1;
+ }
+ 100%
+ {
+ opacity: 0;
+ }
+}
+
+@keyframes ${мир.окна.приветствие.указатель}ПлавноПоказать
+{
+ 0%
+ {
+ opacity: 0;
+ }
+ 100%
+ {
+ opacity: 1;
+ }
+}
+
+ `;
+ var вид = document.createElement("style");
+ вид.innerHTML = css;
+ document.head.appendChild(вид);
+};
+
+
+// // // //
+
+
+СоздатьОкноПриветствия = мир =>
+{
+ мир.окна.приветствие = {
+ "указатель": "окно-приветствия",
+ };
+ const html = `
+
+
+
+
+ Маджонг
+ ⚬ 麻将 ⚬
+ Mahjong
+
+ ${мир.версия}
+
+
+
Выберите раскладку: | 选择布局: | Select layout:
+
+
+
+
+
+
+
+ `;
+
+ var окно = document.createElement("div");
+ окно.id = мир.окна.приветствие.указатель;
+ окно.innerHTML = html;
+ document.body.appendChild(окно);
+ окно.style.display = "none";
+ мир.окна.приветствие.элемент = окно;
+
+ $(`#${мир.окна.приветствие.указатель}-X`).click(function() {
+ мир.уведомить("кнопка раскладки X");
+ });
+ $(`#${мир.окна.приветствие.указатель}-😀`).click(function() {
+ мир.уведомить("кнопка раскладки 😀");
+ });
+ $(`#${мир.окна.приветствие.указатель}-😭`).click(function() {
+ мир.уведомить("кнопка раскладки 😭");
+ });
+};
\ No newline at end of file
diff --git a/приветствие|welcome.череда b/приветствие|welcome.череда
new file mode 100644
index 0000000..ea2491b
--- /dev/null
+++ b/приветствие|welcome.череда
@@ -0,0 +1,17 @@
+надо создать окно приветствия
+ создать окно приветствия
+ задать вид и анимацию окна приветствия
+ подготовить анимацию окна приветствия
+ плавно показать окно приветствия
+
+кнопка раскладки X
+ выбрать раскладку X
+кнопка раскладки 😀
+ выбрать раскладку успешную
+кнопка раскладки 😭
+ выбрать раскладку провальную
+
+выбрали раскладку
+ плавно скрыть окно приветствия
+плавно скрыли окно приветствия
+ отключить окно приветствия
\ No newline at end of file
diff --git a/пуск|run.js b/пуск|run.js
new file mode 100644
index 0000000..a5eac5d
--- /dev/null
+++ b/пуск|run.js
@@ -0,0 +1,11 @@
+
+
+// // // //
+
+
+СоздатьОкнаМаджонга = мир =>
+{
+ мир.уведомить("надо создать окно управления");
+ мир.уведомить("надо создать окно приветствия");
+ мир.уведомить("надо создать окно окончания");
+};
\ No newline at end of file
diff --git a/пуск|run.череда b/пуск|run.череда
new file mode 100644
index 0000000..3113ad4
--- /dev/null
+++ b/пуск|run.череда
@@ -0,0 +1,2 @@
+пуск модулей маджонга
+ создать окна маджонга
\ No newline at end of file
diff --git a/управление|controls.js b/управление|controls.js
new file mode 100644
index 0000000..b18bfbb
--- /dev/null
+++ b/управление|controls.js
@@ -0,0 +1,100 @@
+
+
+// // // //
+
+
+СообщитьТекущееЗначениеМасштаба = мир =>
+{
+ var масштаб = мир.масштаб * 100;
+ var сообщение = `🔍 ${масштаб}%`;
+ UIkit.notification({
+ message: сообщение,
+ timeout: 500
+ });
+};
+
+
+// // // //
+
+
+УменьшитьМасштаб = мир =>
+{
+ мир.масштаб -= 0.5;
+ if (мир.масштаб < 1)
+ {
+ мир.масштаб = 1;
+ }
+ мир.уведомить("изменили масштаб");
+};
+
+
+// // // //
+
+
+УвеличитьМасштаб = мир =>
+{
+ мир.масштаб += 0.5;
+ мир.уведомить("изменили масштаб");
+};
+
+
+// // // //
+
+
+СоздатьЭлементыУправленияМасштабом = мир =>
+{
+ var элементы = document.createElement("div");
+ элементы.innerHTML = `
+
+ `;
+ элементы.style = `
+position: fixed;
+right: 0;
+top: 50%;
+transform: translateX(-50%) translateY(-50%);
+ `;
+ мир.окна.управление.элемент.appendChild(элементы);
+
+ $(`#увеличить-масштаб`).click(function() {
+ мир.уведомить("кнопка увеличения масштаба");
+ });
+ $(`#уменьшить-масштаб`).click(function() {
+ мир.уведомить("кнопка уменьшения масштаба");
+ });
+};
+
+
+// // // //
+
+
+ПоказатьОкноУправления = мир =>
+{
+ мир.окна.управление.элемент.style.display = "block";
+};
+
+
+// // // //
+
+
+СоздатьОкноУправления = мир =>
+{
+ мир.окна.управление = {
+ "указатель": "окно-управления",
+ };
+
+ var окно = document.createElement("div");
+ окно.id = мир.окна.управление.указатель;
+ document.body.appendChild(окно);
+ окно.style = `
+position: absolute;
+left: 0;
+top: 0;
+right: 0;
+bottom: 0;
+ `;
+ окно.style.display = "none";
+ мир.окна.управление.элемент = окно;
+};
\ No newline at end of file
diff --git a/управление|controls.череда b/управление|controls.череда
new file mode 100644
index 0000000..5fc8022
--- /dev/null
+++ b/управление|controls.череда
@@ -0,0 +1,11 @@
+надо создать окно управления
+ создать окно управления
+ создать элементы управления масштабом
+выбрали раскладку
+ показать окно управления
+кнопка увеличения масштаба
+ увеличить масштаб
+кнопка уменьшения масштаба
+ уменьшить масштаб
+изменили масштаб
+ сообщить текущее значение масштаба
\ No newline at end of file