diff --git a/0000 b/0000 index 300db94..ad29761 100644 --- a/0000 +++ b/0000 @@ -7,4 +7,5 @@ x /интерфейс|ui.js x /пуск|run.js /пуск|run.череда x /тема|theme.js -/тема|theme.череда \ No newline at end of file +/тема|theme.череда +x /функции|functions.js \ No newline at end of file diff --git a/интерфейс|ui.js b/интерфейс|ui.js index 61bb98a..55295b0 100644 --- a/интерфейс|ui.js +++ b/интерфейс|ui.js @@ -3,6 +3,136 @@ // // // // +СоздатьОкноПоражения = мир => +{ + var структура = ` + +
+
+

Поражение

+
+

+

Перезапустить игру с раскладкой:

+ + +

+
+
+ + `; + var вид = ` + +#окно-поражение-тело +{ + position: absolute; + left: 50%; + top: 50%; + transform: translateX(-50%) translateY(-50%); + pointer-events: all; +} +#окно-победы +{ + opacity: 0; + background-color: white; + animation: fadeInОкноПоражения 1s ease; + animation-fill-mode: forwards; + position: fixed; + left: 0; + top: 0; + right: 0; + bottom: 0; +} +@keyframes fadeInОкноПоражения +{ + 0% + { + opacity: 0; + } + 100% + { + opacity: 1; + } +} + + `; + мир.окноПоражения = добавитьОкно("окно-поражения", структура, вид); + $("#перезапустить-раскладку-решаемую").click(function() { + мир.уведомить("кнопка перезапуска с решаемой раскладкой"); + }); + $("#перезапустить-раскладку-нерешаемую").click(function() { + мир.уведомить("кнопка перезапуска с нерешаемой раскладкой"); + }); +}; + + +// // // // + + +СоздатьОкноПобеды = мир => +{ + var структура = ` + +
+
+

Победа

+
+

+

Перезапустить игру с раскладкой:

+ + +

+
+
+ + `; + var вид = ` + +#окно-победы-тело +{ + position: absolute; + left: 50%; + top: 50%; + transform: translateX(-50%) translateY(-50%); + pointer-events: all; +} +#окно-победы +{ + opacity: 0; + background-color: white; + animation: fadeInОкноПобеды 1s ease; + animation-fill-mode: forwards; + position: fixed; + left: 0; + top: 0; + right: 0; + bottom: 0; +} +@keyframes fadeInОкноПобеды +{ + 0% + { + opacity: 0; + } + 100% + { + opacity: 1; + } +} + + `; + мир.окноПобеды = добавитьОкно("окно-победы", структура, вид); + $("#перезапустить-раскладку-решаемую").click(function() { + мир.уведомить("кнопка перезапуска с решаемой раскладкой"); + }); + $("#перезапустить-раскладку-нерешаемую").click(function() { + мир.уведомить("кнопка перезапуска с нерешаемой раскладкой"); + }); +}; + + +// // // // + + СоздатьГлавноеОкно = мир => { мир.главноеОкно = document.createElement("div"); diff --git a/интерфейс|ui.череда b/интерфейс|ui.череда index be7238b..788a03b 100644 --- a/интерфейс|ui.череда +++ b/интерфейс|ui.череда @@ -1,2 +1,6 @@ пуск модулей маджонга - создать главное окно \ No newline at end of file + создать главное окно +победа + создать окно победы +поражение + создать окно поражения \ No newline at end of file diff --git a/пуск|run.js b/пуск|run.js index 968a96f..dc51778 100644 --- a/пуск|run.js +++ b/пуск|run.js @@ -3,6 +3,28 @@ // // // // +ПерезапуститьСРешаемойРаскладкой = мир => +{ + задатьПараметрВСтрокеПоиска("🚧", "😀"); + document.location.reload(); + console.debug("Перезапустить РЕШ"); +}; + + +// // // // + + +ПерезапуститьСНерешаемойРаскладкой = мир => +{ + задатьПараметрВСтрокеПоиска("🚧", "😭"); + document.location.reload(); + console.debug("Перезапустить НЕРЕШ"); +}; + + +// // // // + + ЗапуститьМодулиМаджонга = мир => { мир.уведомить("пуск модулей маджонга"); diff --git a/пуск|run.череда b/пуск|run.череда index 99ad3b5..05b6220 100644 --- a/пуск|run.череда +++ b/пуск|run.череда @@ -1,3 +1,7 @@ пуск маджонга задать заголовок браузера - запустить модули маджонга \ No newline at end of file + запустить модули маджонга +кнопка перезапуска с решаемой раскладкой + перезапустить с решаемой раскладкой +кнопка перезапуска с нерешаемой раскладкой + перезапустить с нерешаемой раскладкой \ No newline at end of file diff --git a/функции|functions.js b/функции|functions.js new file mode 100644 index 0000000..2c3d5cf --- /dev/null +++ b/функции|functions.js @@ -0,0 +1,53 @@ + +// // // // + + +добавитьОкно = (id, html, css) => +{ + var окно = document.createElement("div"); + окно.id = id; + окно.innerHTML = html; + var вид = document.createElement("style"); + вид.innerHTML = css; + document.body.appendChild(окно); + document.head.appendChild(вид); + return окно; +}; + + +// // // // + + +задатьПараметрВСтрокеПоиска = (ключПараметра, значениеПараметра) => +{ + var строкаПоиска = decodeURI(window.location.search); + var текущийАдрес = decodeURI(window.location.href); + + // Заменить параметр. + if (строкаПоиска.includes(`${ключПараметра}=`)) + { + var части = строкаПоиска.split(/[\?&]/); + for (var номер in части) + { + var часть = части[номер]; + if (часть.startsWith(`${ключПараметра}=`)) + { + var значение = часть.split("=")[1]; + var адрес = текущийАдрес.replace(значение, значениеПараметра); + history.pushState(null, "", адрес); + break; + } + } + } + // Добавить параметр. + else + { + var префикс = "?"; + if (строкаПоиска.startsWith("?")) + { + префикс = "&"; + } + var адрес = текущийАдрес + префикс + `${ключПараметра}=` + значениеПараметра; + history.pushState(null, "", адрес); + } +}; \ No newline at end of file