diff --git a/.idea/.gitignore b/.idea/.gitignore
deleted file mode 100644
index 73f69e0..0000000
--- a/.idea/.gitignore
+++ /dev/null
@@ -1,8 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
-# Datasource local storage ignored files
-/dataSources/
-/dataSources.local.xml
-# Editor-based HTTP Client requests
-/httpRequests/
diff --git a/.idea/Project.iml b/.idea/Project.iml
deleted file mode 100644
index f08604b..0000000
--- a/.idea/Project.iml
+++ /dev/null
@@ -1,2 +0,0 @@
-
-
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
deleted file mode 100644
index 79b3c94..0000000
--- a/.idea/misc.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
deleted file mode 100644
index 74f1bcb..0000000
--- a/.idea/modules.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Button.cpp b/Button.cpp
new file mode 100644
index 0000000..50f8206
--- /dev/null
+++ b/Button.cpp
@@ -0,0 +1,118 @@
+#include "Button.h"
+#include "mutex"
+#include "Global.h"
+#include "sapper.h"
+
+extern std::condition_variable cond;
+
+QSize Button::sizeHint() const
+{
+ QSize size = QToolButton::sizeHint();
+ size.rheight() += 20;
+ size.rwidth() = qMax(size.width(), size.height());
+ return size;
+}
+
+void Button::mineCheck() {
+ if (status_for_player != -1) {
+ win->left_decr();
+ }
+ status_for_player = -1;
+ setText(QString::fromStdString("*"));
+ win->check_win();
+}
+
+void Button::oncellClicked() {
+ if (win->get_first_move()) {
+ win->add_mines(win->get_mines(), x, y);
+ win->false_first_move();
+ }
+ if (status_for_player == -1) {
+ win->left_incr();
+ }
+ setText(QString::fromStdString(std::to_string(status)));
+ revealed = true;
+ if (status == -1) {
+ //cond.notify_all();
+ win->waiting_end();
+ }
+ if (status == 0)
+ win->check_zero(this->x, this->y);
+ status_for_player = status;
+ win->check_win();
+}
+
+void Button::cellClickedforrecursion() {
+ if (status_for_player == -1) {
+ win->left_incr();
+ }
+ setText(QString::fromStdString(std::to_string(status)));
+ revealed = true;
+ if (status == -1) {
+ win->waiting_end();
+ }
+ status_for_player = status;
+
+ win->check_win();
+}
+
+void Button::changeStatus(int new_st) {
+ status = new_st;
+}
+
+void Button::mousePressEvent(QMouseEvent *e) {
+ QString button = enumNameFromValue(e->button());
+ if (button == "LeftButton") {
+ oncellClicked();
+ }
+ else if (button == "RightButton") {
+ mineCheck();
+ }
+}
+
+
+int Button::get_status() {
+ return status;
+}
+
+int Button::get_status_for_player() {
+ return status_for_player;
+}
+
+bool Button::get_rev() {
+ return revealed;
+}
+
+QString Button::enumNameFromValue(const Qt::MouseButton button)
+{
+ if (button == Qt::NoButton) return "NoButton";
+ if (button == Qt::LeftButton) return "LeftButton";
+ if (button == Qt::RightButton) return "RightButton";
+ if (button == Qt::MiddleButton) return "MiddleButton";
+ if (button == Qt::BackButton) return "BackButton";
+ if (button == Qt::ForwardButton) return "ForwardButton";
+ if (button == Qt::TaskButton) return "TaskButton";
+ if (button == Qt::ExtraButton4) return "ExtraButton4";
+ if (button == Qt::ExtraButton5) return "ExtraButton5";
+ if (button == Qt::ExtraButton6) return "ExtraButton6";
+ if (button == Qt::ExtraButton7) return "ExtraButton7";
+ if (button == Qt::ExtraButton8) return "ExtraButton8";
+ if (button == Qt::ExtraButton9) return "ExtraButton9";
+ if (button == Qt::ExtraButton10) return "ExtraButton10";
+ if (button == Qt::ExtraButton11) return "ExtraButton11";
+ if (button == Qt::ExtraButton12) return "ExtraButton12";
+ if (button == Qt::ExtraButton13) return "ExtraButton13";
+ if (button == Qt::ExtraButton14) return "ExtraButton14";
+ if (button == Qt::ExtraButton15) return "ExtraButton15";
+ if (button == Qt::ExtraButton16) return "ExtraButton16";
+ if (button == Qt::ExtraButton17) return "ExtraButton17";
+ if (button == Qt::ExtraButton18) return "ExtraButton18";
+ if (button == Qt::ExtraButton19) return "ExtraButton19";
+ if (button == Qt::ExtraButton20) return "ExtraButton20";
+ if (button == Qt::ExtraButton21) return "ExtraButton21";
+ if (button == Qt::ExtraButton22) return "ExtraButton22";
+ if (button == Qt::ExtraButton23) return "ExtraButton23";
+ if (button == Qt::ExtraButton24) return "ExtraButton24";
+ qDebug("QMouseShortcutEntry::addShortcut contained Invalid Qt::MouseButton value");
+ return "NoButton";
+}
diff --git a/Button.h b/Button.h
new file mode 100644
index 0000000..50d2d58
--- /dev/null
+++ b/Button.h
@@ -0,0 +1,47 @@
+#ifndef BUTTON_H
+#define BUTTON_H
+
+#include
+#include
+#include
+//#include "mainwindow.h"
+
+class sapper;
+
+class Button : public QToolButton
+{
+ Q_OBJECT
+ int status = 0;
+ int status_for_player = 0;
+ int x = 0;
+ int y = 0;
+ bool revealed = false;
+ sapper* win =nullptr;
+ QColor num_colors[10];
+protected:
+ void mousePressEvent(QMouseEvent *e) override;
+ QString enumNameFromValue(const Qt::MouseButton button);
+
+public:
+ explicit Button(int st = 0, int x_ = 0, int y_ = 0, sapper *par_win = nullptr, QWidget *parent = nullptr)
+ : QToolButton(parent), win(par_win)
+ {
+ setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
+ status = st;
+ x = x_;
+ y = y_;
+ //setText(text);
+ }
+
+ QSize sizeHint() const override;
+ void changeStatus(int new_st);
+ int get_status();
+ int get_status_for_player();
+ bool get_rev();
+public slots:
+ void oncellClicked();
+ void mineCheck();
+ void cellClickedforrecursion();
+};
+
+#endif // BUTTON_H
diff --git a/CMakeLists.txt b/CMakeLists.txt
deleted file mode 100644
index 296e9ad..0000000
--- a/CMakeLists.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-cmake_minimum_required(VERSION 3.17)
-project(Project)
-
-set(CMAKE_CXX_STANDARD 14)
-set(CMAKE_CXX_STANDARD_REQUIRED True)
-
-if (MSVC)
- add_compile_options(/W4 /WX)
- # Do not specify /O2 because there are Debug/Release modes.
-else()
- if (NOT DEFINED CMAKE_BUILD_TYPE)
- set(CMAKE_BUILD_TYPE Debug) # Add debug information
- endif (NOT DEFINED CMAKE_BUILD_TYPE)
-
- add_compile_options(-Wall -Wextra -Werror -O2)
- if (UNIX AND NOT DEFINED CMAKE_CXX_FLAGS) # Do not add if -DCMAKE_CXX_FLAGS is passed
- add_compile_options(-fsanitize=address)
- add_link_options(-fsanitize=address)
- endif (UNIX AND NOT DEFINED CMAKE_CXX_FLAGS)
-endif (MSVC)
-
-add_executable(macaftc src/main.cpp)
-target_sources(macaftc PRIVATE src/game.cpp src/view.cpp src/plot.cpp src/controller.cpp)
-
-include_directories(include)
-
-add_library(common OBJECT src/main.cpp src/game.cpp src/view.cpp src/plot.cpp src/controller.cpp)
\ No newline at end of file
diff --git a/GameWindow.ui b/GameWindow.ui
new file mode 100644
index 0000000..0dc445b
--- /dev/null
+++ b/GameWindow.ui
@@ -0,0 +1,58 @@
+
+
+ GameWindow
+
+
+
+ 0
+ 0
+ 493
+ 391
+
+
+
+ Dialog
+
+
+
+
+ 50
+ 210
+ 131
+ 121
+
+
+
+ Agree
+
+
+
+
+
+ 300
+ 210
+ 131
+ 121
+
+
+
+ Disagree
+
+
+
+
+
+ 50
+ 20
+ 441
+ 151
+
+
+
+ TextLabel
+
+
+
+
+
+
diff --git a/Global.cpp b/Global.cpp
new file mode 100644
index 0000000..680ff56
--- /dev/null
+++ b/Global.cpp
@@ -0,0 +1 @@
+#include "Global.h"
diff --git a/Global.h b/Global.h
new file mode 100644
index 0000000..f329bb2
--- /dev/null
+++ b/Global.h
@@ -0,0 +1,11 @@
+#ifndef GLOBAL_H
+#define GLOBAL_H
+
+#include
+#include
+
+extern std::condition_variable cond;
+extern int n;
+
+
+#endif // GLOBAL_H
diff --git a/Lastone.pro b/Lastone.pro
new file mode 100644
index 0000000..104bb73
--- /dev/null
+++ b/Lastone.pro
@@ -0,0 +1,68 @@
+QT += core gui
+
+greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
+
+CONFIG += c++11
+
+# You can make your code fail to compile if it uses deprecated APIs.
+# In order to do so, uncomment the following line.
+#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
+
+SOURCES += \
+ Button.cpp \
+ Global.cpp \
+ arithmetic_problem.cpp \
+ arithmeticwindow.cpp \
+ controller.cpp \
+ game.cpp \
+ gamewindow.cpp \
+ main.cpp \
+ mainwindow.cpp \
+ resultwindow.cpp \
+ sapermain.cpp \
+ saperwindow.cpp \
+ sapper.cpp \
+ second_main.cpp \
+ settingswindow.cpp \
+ uml.cpp \
+ view.cpp \
+ windowwithgame.cpp
+
+HEADERS += \
+ Button.h \
+ Global.h \
+ arithmetic_problem.h \
+ arithmeticwindow.h \
+ controller.h \
+ game.h \
+ gamewindow.h \
+ global_struct_of_game.h \
+ json.hpp \
+ mainwindow.h \
+ resultwindow.h \
+ sapermain.h \
+ saperwindow.h \
+ sapper.h \
+ second_main.h \
+ settingswindow.h \
+ uml.h \
+ view.h \
+ windowwithgame.h
+
+FORMS += \
+ arithmeticwindow.ui \
+ gamewindow.ui \
+ mainwindow.ui \
+ resultwindow.ui \
+ saperwindow.ui \
+ sapper.ui \
+ settingswindow.ui \
+ windowwithgame.ui
+
+# Default rules for deployment.
+qnx: target.path = /tmp/$${TARGET}/bin
+else: unix:!android: target.path = /opt/$${TARGET}/bin
+!isEmpty(target.path): INSTALLS += target
+
+RESOURCES += \
+ resource.qrc
diff --git a/Lastone.pro.user b/Lastone.pro.user
new file mode 100644
index 0000000..4f24173
--- /dev/null
+++ b/Lastone.pro.user
@@ -0,0 +1,1882 @@
+
+
+
+
+
+ EnvironmentId
+ {28ff7329-6564-4ff2-8d10-89f4a8f05e8f}
+
+
+ ProjectExplorer.Project.ActiveTarget
+ 0
+
+
+ ProjectExplorer.Project.EditorSettings
+
+ true
+ false
+ true
+
+ Cpp
+
+ CppGlobal
+
+
+
+ QmlJS
+
+ QmlJSGlobal
+
+
+ 2
+ UTF-8
+ false
+ 4
+ false
+ 80
+ true
+ true
+ 1
+ true
+ false
+ 0
+ true
+ true
+ 0
+ 8
+ true
+ 1
+ true
+ true
+ true
+ *.md, *.MD, Makefile
+ false
+ true
+
+
+
+ ProjectExplorer.Project.PluginSettings
+
+
+ true
+ true
+ true
+ true
+ true
+
+
+ 0
+ true
+
+ -fno-delayed-template-parsing
+
+ true
+ Builtin.Questionable
+
+ true
+ true
+ Builtin.DefaultTidyAndClazy
+ 4
+
+
+
+ true
+
+
+
+
+ ProjectExplorer.Project.Target.0
+
+ Desktop
+ Desktop Qt 5.15.2 MSVC2015 64bit
+ Desktop Qt 5.15.2 MSVC2015 64bit
+ qt.qt5.5152.win64_msvc2015_64_kit
+ 0
+ 0
+ 0
+
+ 0
+ C:\Users\Roman\Documents\build-Lastone-Desktop_Qt_5_15_2_MSVC2015_64bit-Debug
+ C:/Users/Roman/Documents/build-Lastone-Desktop_Qt_5_15_2_MSVC2015_64bit-Debug
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Отладка
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 2
+ 0
+
+
+ C:\Users\Roman\Documents\build-Lastone-Desktop_Qt_5_15_2_MSVC2015_64bit-Release
+ C:/Users/Roman/Documents/build-Lastone-Desktop_Qt_5_15_2_MSVC2015_64bit-Release
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Выпуск
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+
+
+ 0
+ C:\Users\Roman\Documents\build-Lastone-Desktop_Qt_5_15_2_MSVC2015_64bit-Profile
+ C:/Users/Roman/Documents/build-Lastone-Desktop_Qt_5_15_2_MSVC2015_64bit-Profile
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Профилирование
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+ 0
+
+ 3
+
+
+ 0
+ Развёртывание
+ Развёртывание
+ ProjectExplorer.BuildSteps.Deploy
+
+ 1
+
+ false
+ ProjectExplorer.DefaultDeployConfiguration
+
+ 1
+
+ dwarf
+
+ cpu-cycles
+
+
+ 250
+
+ -e
+ cpu-cycles
+ --call-graph
+ dwarf,4096
+ -F
+ 250
+
+ -F
+ true
+ 4096
+ false
+ false
+ 1000
+
+ true
+
+ false
+ false
+ false
+ false
+ true
+ 0.01
+ 10
+ true
+ kcachegrind
+ 1
+ 25
+
+ 1
+ true
+ false
+ true
+ valgrind
+
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 10
+ 11
+ 12
+ 13
+ 14
+
+
+ 2
+
+ Qt4ProjectManager.Qt4RunConfiguration:C:/Users/Roman/Documents/Lastone/Lastone.pro
+ C:/Users/Roman/Documents/Lastone/Lastone.pro
+ false
+ true
+ true
+ false
+ true
+ C:/Users/Roman/Documents/build-Lastone-Desktop_Qt_5_15_2_MSVC2015_64bit-Debug
+
+ 1
+
+
+
+ ProjectExplorer.Project.Target.1
+
+ Desktop
+ Desktop Qt 5.15.2 MSVC2019 32bit
+ Desktop Qt 5.15.2 MSVC2019 32bit
+ qt.qt5.5152.win32_msvc2019_kit
+ 0
+ 0
+ 0
+
+ 0
+ C:\Users\Roman\Documents\build-Lastone-Desktop_Qt_5_15_2_MSVC2019_32bit-Debug
+ C:/Users/Roman/Documents/build-Lastone-Desktop_Qt_5_15_2_MSVC2019_32bit-Debug
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Отладка
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 2
+ 0
+
+
+ C:\Users\Roman\Documents\build-Lastone-Desktop_Qt_5_15_2_MSVC2019_32bit-Release
+ C:/Users/Roman/Documents/build-Lastone-Desktop_Qt_5_15_2_MSVC2019_32bit-Release
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Выпуск
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+
+
+ 0
+ C:\Users\Roman\Documents\build-Lastone-Desktop_Qt_5_15_2_MSVC2019_32bit-Profile
+ C:/Users/Roman/Documents/build-Lastone-Desktop_Qt_5_15_2_MSVC2019_32bit-Profile
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Профилирование
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+ 0
+
+ 3
+
+
+ 0
+ Развёртывание
+ Развёртывание
+ ProjectExplorer.BuildSteps.Deploy
+
+ 1
+
+ false
+ ProjectExplorer.DefaultDeployConfiguration
+
+ 1
+
+ dwarf
+
+ cpu-cycles
+
+
+ 250
+
+ -e
+ cpu-cycles
+ --call-graph
+ dwarf,4096
+ -F
+ 250
+
+ -F
+ true
+ 4096
+ false
+ false
+ 1000
+
+ true
+
+ false
+ false
+ false
+ false
+ true
+ 0.01
+ 10
+ true
+ kcachegrind
+ 1
+ 25
+
+ 1
+ true
+ false
+ true
+ valgrind
+
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 10
+ 11
+ 12
+ 13
+ 14
+
+
+ 2
+
+ ProjectExplorer.CustomExecutableRunConfiguration
+
+ false
+ true
+ false
+ true
+
+ 1
+
+
+
+ ProjectExplorer.Project.Target.2
+
+ Desktop
+ Desktop Qt 5.15.2 MSVC2019 64bit
+ Desktop Qt 5.15.2 MSVC2019 64bit
+ qt.qt5.5152.win64_msvc2019_64_kit
+ 0
+ 0
+ 0
+
+ 0
+ C:\Users\Roman\Documents\build-Lastone-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug
+ C:/Users/Roman/Documents/build-Lastone-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Отладка
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 2
+ 0
+
+
+ C:\Users\Roman\Documents\build-Lastone-Desktop_Qt_5_15_2_MSVC2019_64bit-Release
+ C:/Users/Roman/Documents/build-Lastone-Desktop_Qt_5_15_2_MSVC2019_64bit-Release
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Выпуск
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+
+
+ 0
+ C:\Users\Roman\Documents\build-Lastone-Desktop_Qt_5_15_2_MSVC2019_64bit-Profile
+ C:/Users/Roman/Documents/build-Lastone-Desktop_Qt_5_15_2_MSVC2019_64bit-Profile
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Профилирование
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+ 0
+
+ 3
+
+
+ 0
+ Развёртывание
+ Развёртывание
+ ProjectExplorer.BuildSteps.Deploy
+
+ 1
+
+ false
+ ProjectExplorer.DefaultDeployConfiguration
+
+ 1
+
+ dwarf
+
+ cpu-cycles
+
+
+ 250
+
+ -e
+ cpu-cycles
+ --call-graph
+ dwarf,4096
+ -F
+ 250
+
+ -F
+ true
+ 4096
+ false
+ false
+ 1000
+
+ true
+
+ false
+ false
+ false
+ false
+ true
+ 0.01
+ 10
+ true
+ kcachegrind
+ 1
+ 25
+
+ 1
+ true
+ false
+ true
+ valgrind
+
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 10
+ 11
+ 12
+ 13
+ 14
+
+
+ 2
+
+ ProjectExplorer.CustomExecutableRunConfiguration
+
+ false
+ true
+ false
+ true
+
+ 1
+
+
+
+ ProjectExplorer.Project.Target.3
+
+ Desktop
+ Desktop Qt 5.15.2 MinGW 32-bit
+ Desktop Qt 5.15.2 MinGW 32-bit
+ qt.qt5.5152.win32_mingw81_kit
+ 0
+ 0
+ 0
+
+ 0
+ C:\Users\Roman\Documents\build-Lastone-Desktop_Qt_5_15_2_MinGW_32_bit-Debug
+ C:/Users/Roman/Documents/build-Lastone-Desktop_Qt_5_15_2_MinGW_32_bit-Debug
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Отладка
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 2
+ 0
+
+
+ C:\Users\Roman\Documents\build-Lastone-Desktop_Qt_5_15_2_MinGW_32_bit-Release
+ C:/Users/Roman/Documents/build-Lastone-Desktop_Qt_5_15_2_MinGW_32_bit-Release
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Выпуск
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+
+
+ 0
+ C:\Users\Roman\Documents\build-Lastone-Desktop_Qt_5_15_2_MinGW_32_bit-Profile
+ C:/Users/Roman/Documents/build-Lastone-Desktop_Qt_5_15_2_MinGW_32_bit-Profile
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Профилирование
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+ 0
+
+ 3
+
+
+ 0
+ Развёртывание
+ Развёртывание
+ ProjectExplorer.BuildSteps.Deploy
+
+ 1
+
+ false
+ ProjectExplorer.DefaultDeployConfiguration
+
+ 1
+
+ dwarf
+
+ cpu-cycles
+
+
+ 250
+
+ -e
+ cpu-cycles
+ --call-graph
+ dwarf,4096
+ -F
+ 250
+
+ -F
+ true
+ 4096
+ false
+ false
+ 1000
+
+ true
+
+ false
+ false
+ false
+ false
+ true
+ 0.01
+ 10
+ true
+ kcachegrind
+ 1
+ 25
+
+ 1
+ true
+ false
+ true
+ valgrind
+
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 10
+ 11
+ 12
+ 13
+ 14
+
+
+ 2
+
+ ProjectExplorer.CustomExecutableRunConfiguration
+
+ false
+ true
+ false
+ true
+
+ 1
+
+
+
+ ProjectExplorer.Project.Target.4
+
+ Desktop
+ Desktop Qt 5.15.2 MinGW 64-bit
+ Desktop Qt 5.15.2 MinGW 64-bit
+ qt.qt5.5152.win64_mingw81_kit
+ 0
+ 0
+ 0
+
+ 0
+ C:\Users\Roman\Documents\build-Lastone-Desktop_Qt_5_15_2_MinGW_64_bit-Debug
+ C:/Users/Roman/Documents/build-Lastone-Desktop_Qt_5_15_2_MinGW_64_bit-Debug
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Отладка
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 2
+ 0
+
+
+ C:\Users\Roman\Documents\build-Lastone-Desktop_Qt_5_15_2_MinGW_64_bit-Release
+ C:/Users/Roman/Documents/build-Lastone-Desktop_Qt_5_15_2_MinGW_64_bit-Release
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Выпуск
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+
+
+ 0
+ C:\Users\Roman\Documents\build-Lastone-Desktop_Qt_5_15_2_MinGW_64_bit-Profile
+ C:/Users/Roman/Documents/build-Lastone-Desktop_Qt_5_15_2_MinGW_64_bit-Profile
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Профилирование
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+ 0
+
+ 3
+
+
+ 0
+ Развёртывание
+ Развёртывание
+ ProjectExplorer.BuildSteps.Deploy
+
+ 1
+
+ false
+ ProjectExplorer.DefaultDeployConfiguration
+
+ 1
+
+ dwarf
+
+ cpu-cycles
+
+
+ 250
+
+ -e
+ cpu-cycles
+ --call-graph
+ dwarf,4096
+ -F
+ 250
+
+ -F
+ true
+ 4096
+ false
+ false
+ 1000
+
+ true
+
+ false
+ false
+ false
+ false
+ true
+ 0.01
+ 10
+ true
+ kcachegrind
+ 1
+ 25
+
+ 1
+ true
+ false
+ true
+ valgrind
+
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 10
+ 11
+ 12
+ 13
+ 14
+
+
+ 2
+
+ ProjectExplorer.CustomExecutableRunConfiguration
+
+ false
+ true
+ false
+ true
+
+ 1
+
+
+
+ ProjectExplorer.Project.Target.5
+
+ WinRt.Device.Local
+ Qt 5.15.2 for UWP 32bit (MSVC 2019)
+ Qt 5.15.2 for UWP 32bit (MSVC 2019)
+ qt.qt5.5152.win64_msvc2019_winrt_x86_kit
+ 0
+ 0
+ 0
+
+ 0
+ C:\Users\Roman\Documents\build-Lastone-Qt_5_15_2_for_UWP_32bit_MSVC_2019-Debug
+ C:/Users/Roman/Documents/build-Lastone-Qt_5_15_2_for_UWP_32bit_MSVC_2019-Debug
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Отладка
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 2
+ 0
+
+
+ C:\Users\Roman\Documents\build-Lastone-Qt_5_15_2_for_UWP_32bit_MSVC_2019-Release
+ C:/Users/Roman/Documents/build-Lastone-Qt_5_15_2_for_UWP_32bit_MSVC_2019-Release
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Выпуск
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+
+
+ 0
+ C:\Users\Roman\Documents\build-Lastone-Qt_5_15_2_for_UWP_32bit_MSVC_2019-Profile
+ C:/Users/Roman/Documents/build-Lastone-Qt_5_15_2_for_UWP_32bit_MSVC_2019-Profile
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Профилирование
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+ 0
+
+ 3
+
+
+
+ true
+ Запуск windeployqt
+ WinRt.BuildStep.Deploy
+ --qmldir C:\Users\Roman\Documents\Lastone
+ --qmldir C:\Users\Roman\Documents\Lastone
+
+ 1
+ Развёртывание
+ Развёртывание
+ ProjectExplorer.BuildSteps.Deploy
+
+ 1
+
+ false
+ WinRTAppxDeployConfiguration
+
+ 1
+
+ dwarf
+
+ cpu-cycles
+
+
+ 250
+
+ -e
+ cpu-cycles
+ --call-graph
+ dwarf,4096
+ -F
+ 250
+
+ -F
+ true
+ 4096
+ false
+ false
+ 1000
+
+ true
+
+ false
+ false
+ false
+ false
+ true
+ 0.01
+ 10
+ true
+ kcachegrind
+ 1
+ 25
+
+ 1
+ true
+ false
+ true
+ valgrind
+
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 10
+ 11
+ 12
+ 13
+ 14
+
+
+ 2
+
+ ProjectExplorer.CustomExecutableRunConfiguration
+
+ false
+ true
+ false
+ true
+
+ 1
+
+
+
+ ProjectExplorer.Project.Target.6
+
+ WinRt.Device.Local
+ Qt 5.15.2 for UWP 64bit (MSVC 2015)
+ Qt 5.15.2 for UWP 64bit (MSVC 2015)
+ qt.qt5.5152.win64_msvc2015_winrt_x64_kit
+ 0
+ 0
+ 0
+
+ 0
+ C:\Users\Roman\Documents\build-Lastone-Qt_5_15_2_for_UWP_64bit_MSVC_2015-Debug
+ C:/Users/Roman/Documents/build-Lastone-Qt_5_15_2_for_UWP_64bit_MSVC_2015-Debug
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Отладка
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 2
+ 0
+
+
+ C:\Users\Roman\Documents\build-Lastone-Qt_5_15_2_for_UWP_64bit_MSVC_2015-Release
+ C:/Users/Roman/Documents/build-Lastone-Qt_5_15_2_for_UWP_64bit_MSVC_2015-Release
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Выпуск
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+
+
+ 0
+ C:\Users\Roman\Documents\build-Lastone-Qt_5_15_2_for_UWP_64bit_MSVC_2015-Profile
+ C:/Users/Roman/Documents/build-Lastone-Qt_5_15_2_for_UWP_64bit_MSVC_2015-Profile
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Профилирование
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+ 0
+
+ 3
+
+
+
+ true
+ Запуск windeployqt
+ WinRt.BuildStep.Deploy
+ --qmldir C:\Users\Roman\Documents\Lastone
+ --qmldir C:\Users\Roman\Documents\Lastone
+
+ 1
+ Развёртывание
+ Развёртывание
+ ProjectExplorer.BuildSteps.Deploy
+
+ 1
+
+ false
+ WinRTAppxDeployConfiguration
+
+ 1
+
+ dwarf
+
+ cpu-cycles
+
+
+ 250
+
+ -e
+ cpu-cycles
+ --call-graph
+ dwarf,4096
+ -F
+ 250
+
+ -F
+ true
+ 4096
+ false
+ false
+ 1000
+
+ true
+
+ false
+ false
+ false
+ false
+ true
+ 0.01
+ 10
+ true
+ kcachegrind
+ 1
+ 25
+
+ 1
+ true
+ false
+ true
+ valgrind
+
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 10
+ 11
+ 12
+ 13
+ 14
+
+
+ 2
+
+ ProjectExplorer.CustomExecutableRunConfiguration
+
+ false
+ true
+ false
+ true
+
+ 1
+
+
+
+ ProjectExplorer.Project.Target.7
+
+ WinRt.Device.Local
+ Qt 5.15.2 for UWP 64bit (MSVC 2019)
+ Qt 5.15.2 for UWP 64bit (MSVC 2019)
+ qt.qt5.5152.win64_msvc2019_winrt_x64_kit
+ 0
+ 0
+ 0
+
+ 0
+ C:\Users\Roman\Documents\build-Lastone-Qt_5_15_2_for_UWP_64bit_MSVC_2019-Debug
+ C:/Users/Roman/Documents/build-Lastone-Qt_5_15_2_for_UWP_64bit_MSVC_2019-Debug
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Отладка
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 2
+ 0
+
+
+ C:\Users\Roman\Documents\build-Lastone-Qt_5_15_2_for_UWP_64bit_MSVC_2019-Release
+ C:/Users/Roman/Documents/build-Lastone-Qt_5_15_2_for_UWP_64bit_MSVC_2019-Release
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Выпуск
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+
+
+ 0
+ C:\Users\Roman\Documents\build-Lastone-Qt_5_15_2_for_UWP_64bit_MSVC_2019-Profile
+ C:/Users/Roman/Documents/build-Lastone-Qt_5_15_2_for_UWP_64bit_MSVC_2019-Profile
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Профилирование
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+ 0
+
+ 3
+
+
+
+ true
+ Запуск windeployqt
+ WinRt.BuildStep.Deploy
+ --qmldir C:\Users\Roman\Documents\Lastone
+ --qmldir C:\Users\Roman\Documents\Lastone
+
+ 1
+ Развёртывание
+ Развёртывание
+ ProjectExplorer.BuildSteps.Deploy
+
+ 1
+
+ false
+ WinRTAppxDeployConfiguration
+
+ 1
+
+ dwarf
+
+ cpu-cycles
+
+
+ 250
+
+ -e
+ cpu-cycles
+ --call-graph
+ dwarf,4096
+ -F
+ 250
+
+ -F
+ true
+ 4096
+ false
+ false
+ 1000
+
+ true
+
+ false
+ false
+ false
+ false
+ true
+ 0.01
+ 10
+ true
+ kcachegrind
+ 1
+ 25
+
+ 1
+ true
+ false
+ true
+ valgrind
+
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 10
+ 11
+ 12
+ 13
+ 14
+
+
+ 2
+
+ ProjectExplorer.CustomExecutableRunConfiguration
+
+ false
+ true
+ false
+ true
+
+ 1
+
+
+
+ ProjectExplorer.Project.TargetCount
+ 8
+
+
+ ProjectExplorer.Project.Updater.FileVersion
+ 22
+
+
+ Version
+ 22
+
+
diff --git a/Macaft.pro b/Macaft.pro
new file mode 100644
index 0000000..3cd9a46
--- /dev/null
+++ b/Macaft.pro
@@ -0,0 +1,61 @@
+QT += core gui
+
+greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
+
+CONFIG += c++11
+
+# You can make your code fail to compile if it uses deprecated APIs.
+# In order to do so, uncomment the following line.
+#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
+
+SOURCES += \
+ Button.cpp \
+ Global.cpp \
+ Sapermain.cpp \
+ arithmetic_problem.cpp \
+ controller.cpp \
+ game.cpp \
+ gamewindow.cpp \
+ main.cpp \
+ mainwindow.cpp \
+ minigame.cpp \
+ resultwindow.cpp \
+ sapermain.cpp \
+ second_main.cpp \
+ settingswindow.cpp \
+ uml.cpp \
+ view.cpp \
+ windowwithgame.cpp
+
+HEADERS += \
+ Button.h \
+ Global.h \
+ arithmetic_problem.h \
+ controller.h \
+ game.h \
+ game_fwd.h \
+ gamewindow.h \
+ global_struct_of_game.h \
+ json.hpp \
+ mainwindow.h \
+ minigame.h \
+ resultwindow.h \
+ sapermain.h \
+ second_main.h \
+ settingswindow.h \
+ uml.h \
+ view.h \
+ windowwithgame.h
+
+FORMS += \
+ GameWindow.ui \
+ mainwindow.ui \
+ minigame.ui \
+ resultwindow.ui \
+ settingswindow.ui \
+ windowwithgame.ui
+
+# Default rules for deployment.
+qnx: target.path = /tmp/$${TARGET}/bin
+else: unix:!android: target.path = /opt/$${TARGET}/bin
+!isEmpty(target.path): INSTALLS += target
diff --git a/Macaft.pro.user b/Macaft.pro.user
new file mode 100644
index 0000000..d488b37
--- /dev/null
+++ b/Macaft.pro.user
@@ -0,0 +1,1883 @@
+
+
+
+
+
+ EnvironmentId
+ {28ff7329-6564-4ff2-8d10-89f4a8f05e8f}
+
+
+ ProjectExplorer.Project.ActiveTarget
+ 0
+
+
+ ProjectExplorer.Project.EditorSettings
+
+ true
+ false
+ true
+
+ Cpp
+
+ CppGlobal
+
+
+
+ QmlJS
+
+ QmlJSGlobal
+
+
+ 2
+ UTF-8
+ false
+ 4
+ false
+ 80
+ true
+ true
+ 1
+ true
+ false
+ 0
+ true
+ true
+ 0
+ 8
+ true
+ 1
+ true
+ true
+ true
+ *.md, *.MD, Makefile
+ false
+ true
+
+
+
+ ProjectExplorer.Project.PluginSettings
+
+
+ true
+ true
+ true
+ true
+ true
+
+
+ 0
+ true
+
+ -fno-delayed-template-parsing
+
+ true
+ Builtin.Questionable
+
+ true
+ true
+ Builtin.DefaultTidyAndClazy
+ 4
+
+
+
+ true
+
+
+
+
+ ProjectExplorer.Project.Target.0
+
+ Desktop
+ Desktop Qt 5.15.2 MSVC2015 64bit
+ Desktop Qt 5.15.2 MSVC2015 64bit
+ qt.qt5.5152.win64_msvc2015_64_kit
+ 0
+ 0
+ 0
+
+ 0
+ C:\Users\Roman\Documents\build-Macaft-Desktop_Qt_5_15_2_MSVC2015_64bit-Debug
+ C:/Users/Roman/Documents/build-Macaft-Desktop_Qt_5_15_2_MSVC2015_64bit-Debug
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Отладка
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 2
+ 0
+
+
+ C:\Users\Roman\Documents\build-Macaft-Desktop_Qt_5_15_2_MSVC2015_64bit-Release
+ C:/Users/Roman/Documents/build-Macaft-Desktop_Qt_5_15_2_MSVC2015_64bit-Release
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Выпуск
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+
+
+ 0
+ C:\Users\Roman\Documents\build-Macaft-Desktop_Qt_5_15_2_MSVC2015_64bit-Profile
+ C:/Users/Roman/Documents/build-Macaft-Desktop_Qt_5_15_2_MSVC2015_64bit-Profile
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Профилирование
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+ 0
+
+ 3
+
+
+ 0
+ Развёртывание
+ Развёртывание
+ ProjectExplorer.BuildSteps.Deploy
+
+ 1
+
+ false
+ ProjectExplorer.DefaultDeployConfiguration
+
+ 1
+
+ dwarf
+
+ cpu-cycles
+
+
+ 250
+
+ -e
+ cpu-cycles
+ --call-graph
+ dwarf,4096
+ -F
+ 250
+
+ -F
+ true
+ 4096
+ false
+ false
+ 1000
+
+ true
+
+ false
+ false
+ false
+ false
+ true
+ 0.01
+ 10
+ true
+ kcachegrind
+ 1
+ 25
+
+ 1
+ true
+ false
+ true
+ valgrind
+
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 10
+ 11
+ 12
+ 13
+ 14
+
+
+ 2
+
+ Macaft2
+ Qt4ProjectManager.Qt4RunConfiguration:C:/Users/Roman/Documents/TryToMake/Macaft.pro
+ C:/Users/Roman/Documents/TryToMake/Macaft.pro
+ false
+ true
+ true
+ false
+ true
+ C:/Users/Roman/Documents/build-Macaft-Desktop_Qt_5_15_2_MSVC2015_64bit-Debug
+
+ 1
+
+
+
+ ProjectExplorer.Project.Target.1
+
+ Desktop
+ Desktop Qt 5.15.2 MSVC2019 32bit
+ Desktop Qt 5.15.2 MSVC2019 32bit
+ qt.qt5.5152.win32_msvc2019_kit
+ 0
+ 0
+ 0
+
+ 0
+ C:\Users\Roman\Documents\build-Macaft-Desktop_Qt_5_15_2_MSVC2019_32bit-Debug
+ C:/Users/Roman/Documents/build-Macaft-Desktop_Qt_5_15_2_MSVC2019_32bit-Debug
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Отладка
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 2
+ 0
+
+
+ C:\Users\Roman\Documents\build-Macaft-Desktop_Qt_5_15_2_MSVC2019_32bit-Release
+ C:/Users/Roman/Documents/build-Macaft-Desktop_Qt_5_15_2_MSVC2019_32bit-Release
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Выпуск
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+
+
+ 0
+ C:\Users\Roman\Documents\build-Macaft-Desktop_Qt_5_15_2_MSVC2019_32bit-Profile
+ C:/Users/Roman/Documents/build-Macaft-Desktop_Qt_5_15_2_MSVC2019_32bit-Profile
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Профилирование
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+ 0
+
+ 3
+
+
+ 0
+ Развёртывание
+ Развёртывание
+ ProjectExplorer.BuildSteps.Deploy
+
+ 1
+
+ false
+ ProjectExplorer.DefaultDeployConfiguration
+
+ 1
+
+ dwarf
+
+ cpu-cycles
+
+
+ 250
+
+ -e
+ cpu-cycles
+ --call-graph
+ dwarf,4096
+ -F
+ 250
+
+ -F
+ true
+ 4096
+ false
+ false
+ 1000
+
+ true
+
+ false
+ false
+ false
+ false
+ true
+ 0.01
+ 10
+ true
+ kcachegrind
+ 1
+ 25
+
+ 1
+ true
+ false
+ true
+ valgrind
+
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 10
+ 11
+ 12
+ 13
+ 14
+
+
+ 2
+
+ ProjectExplorer.CustomExecutableRunConfiguration
+
+ false
+ true
+ false
+ true
+
+ 1
+
+
+
+ ProjectExplorer.Project.Target.2
+
+ Desktop
+ Desktop Qt 5.15.2 MSVC2019 64bit
+ Desktop Qt 5.15.2 MSVC2019 64bit
+ qt.qt5.5152.win64_msvc2019_64_kit
+ 0
+ 0
+ 0
+
+ 0
+ C:\Users\Roman\Documents\build-Macaft-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug
+ C:/Users/Roman/Documents/build-Macaft-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Отладка
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 2
+ 0
+
+
+ C:\Users\Roman\Documents\build-Macaft-Desktop_Qt_5_15_2_MSVC2019_64bit-Release
+ C:/Users/Roman/Documents/build-Macaft-Desktop_Qt_5_15_2_MSVC2019_64bit-Release
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Выпуск
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+
+
+ 0
+ C:\Users\Roman\Documents\build-Macaft-Desktop_Qt_5_15_2_MSVC2019_64bit-Profile
+ C:/Users/Roman/Documents/build-Macaft-Desktop_Qt_5_15_2_MSVC2019_64bit-Profile
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Профилирование
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+ 0
+
+ 3
+
+
+ 0
+ Развёртывание
+ Развёртывание
+ ProjectExplorer.BuildSteps.Deploy
+
+ 1
+
+ false
+ ProjectExplorer.DefaultDeployConfiguration
+
+ 1
+
+ dwarf
+
+ cpu-cycles
+
+
+ 250
+
+ -e
+ cpu-cycles
+ --call-graph
+ dwarf,4096
+ -F
+ 250
+
+ -F
+ true
+ 4096
+ false
+ false
+ 1000
+
+ true
+
+ false
+ false
+ false
+ false
+ true
+ 0.01
+ 10
+ true
+ kcachegrind
+ 1
+ 25
+
+ 1
+ true
+ false
+ true
+ valgrind
+
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 10
+ 11
+ 12
+ 13
+ 14
+
+
+ 2
+
+ ProjectExplorer.CustomExecutableRunConfiguration
+
+ false
+ true
+ false
+ true
+
+ 1
+
+
+
+ ProjectExplorer.Project.Target.3
+
+ Desktop
+ Desktop Qt 5.15.2 MinGW 32-bit
+ Desktop Qt 5.15.2 MinGW 32-bit
+ qt.qt5.5152.win32_mingw81_kit
+ 0
+ 0
+ 0
+
+ 0
+ C:\Users\Roman\Documents\build-Macaft-Desktop_Qt_5_15_2_MinGW_32_bit-Debug
+ C:/Users/Roman/Documents/build-Macaft-Desktop_Qt_5_15_2_MinGW_32_bit-Debug
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Отладка
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 2
+ 0
+
+
+ C:\Users\Roman\Documents\build-Macaft-Desktop_Qt_5_15_2_MinGW_32_bit-Release
+ C:/Users/Roman/Documents/build-Macaft-Desktop_Qt_5_15_2_MinGW_32_bit-Release
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Выпуск
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+
+
+ 0
+ C:\Users\Roman\Documents\build-Macaft-Desktop_Qt_5_15_2_MinGW_32_bit-Profile
+ C:/Users/Roman/Documents/build-Macaft-Desktop_Qt_5_15_2_MinGW_32_bit-Profile
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Профилирование
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+ 0
+
+ 3
+
+
+ 0
+ Развёртывание
+ Развёртывание
+ ProjectExplorer.BuildSteps.Deploy
+
+ 1
+
+ false
+ ProjectExplorer.DefaultDeployConfiguration
+
+ 1
+
+ dwarf
+
+ cpu-cycles
+
+
+ 250
+
+ -e
+ cpu-cycles
+ --call-graph
+ dwarf,4096
+ -F
+ 250
+
+ -F
+ true
+ 4096
+ false
+ false
+ 1000
+
+ true
+
+ false
+ false
+ false
+ false
+ true
+ 0.01
+ 10
+ true
+ kcachegrind
+ 1
+ 25
+
+ 1
+ true
+ false
+ true
+ valgrind
+
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 10
+ 11
+ 12
+ 13
+ 14
+
+
+ 2
+
+ ProjectExplorer.CustomExecutableRunConfiguration
+
+ false
+ true
+ false
+ true
+
+ 1
+
+
+
+ ProjectExplorer.Project.Target.4
+
+ Desktop
+ Desktop Qt 5.15.2 MinGW 64-bit
+ Desktop Qt 5.15.2 MinGW 64-bit
+ qt.qt5.5152.win64_mingw81_kit
+ 0
+ 0
+ 0
+
+ 0
+ C:\Users\Roman\Documents\build-Macaft-Desktop_Qt_5_15_2_MinGW_64_bit-Debug
+ C:/Users/Roman/Documents/build-Macaft-Desktop_Qt_5_15_2_MinGW_64_bit-Debug
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Отладка
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 2
+ 0
+
+
+ C:\Users\Roman\Documents\build-Macaft-Desktop_Qt_5_15_2_MinGW_64_bit-Release
+ C:/Users/Roman/Documents/build-Macaft-Desktop_Qt_5_15_2_MinGW_64_bit-Release
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Выпуск
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+
+
+ 0
+ C:\Users\Roman\Documents\build-Macaft-Desktop_Qt_5_15_2_MinGW_64_bit-Profile
+ C:/Users/Roman/Documents/build-Macaft-Desktop_Qt_5_15_2_MinGW_64_bit-Profile
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Профилирование
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+ 0
+
+ 3
+
+
+ 0
+ Развёртывание
+ Развёртывание
+ ProjectExplorer.BuildSteps.Deploy
+
+ 1
+
+ false
+ ProjectExplorer.DefaultDeployConfiguration
+
+ 1
+
+ dwarf
+
+ cpu-cycles
+
+
+ 250
+
+ -e
+ cpu-cycles
+ --call-graph
+ dwarf,4096
+ -F
+ 250
+
+ -F
+ true
+ 4096
+ false
+ false
+ 1000
+
+ true
+
+ false
+ false
+ false
+ false
+ true
+ 0.01
+ 10
+ true
+ kcachegrind
+ 1
+ 25
+
+ 1
+ true
+ false
+ true
+ valgrind
+
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 10
+ 11
+ 12
+ 13
+ 14
+
+
+ 2
+
+ ProjectExplorer.CustomExecutableRunConfiguration
+
+ false
+ true
+ false
+ true
+
+ 1
+
+
+
+ ProjectExplorer.Project.Target.5
+
+ WinRt.Device.Local
+ Qt 5.15.2 for UWP 32bit (MSVC 2019)
+ Qt 5.15.2 for UWP 32bit (MSVC 2019)
+ qt.qt5.5152.win64_msvc2019_winrt_x86_kit
+ 0
+ 0
+ 0
+
+ 0
+ C:\Users\Roman\Documents\build-Macaft-Qt_5_15_2_for_UWP_32bit_MSVC_2019-Debug
+ C:/Users/Roman/Documents/build-Macaft-Qt_5_15_2_for_UWP_32bit_MSVC_2019-Debug
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Отладка
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 2
+ 0
+
+
+ C:\Users\Roman\Documents\build-Macaft-Qt_5_15_2_for_UWP_32bit_MSVC_2019-Release
+ C:/Users/Roman/Documents/build-Macaft-Qt_5_15_2_for_UWP_32bit_MSVC_2019-Release
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Выпуск
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+
+
+ 0
+ C:\Users\Roman\Documents\build-Macaft-Qt_5_15_2_for_UWP_32bit_MSVC_2019-Profile
+ C:/Users/Roman/Documents/build-Macaft-Qt_5_15_2_for_UWP_32bit_MSVC_2019-Profile
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Профилирование
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+ 0
+
+ 3
+
+
+
+ true
+ Запуск windeployqt
+ WinRt.BuildStep.Deploy
+ --qmldir C:\Users\Roman\Documents\Macaft
+ --qmldir C:\Users\Roman\Documents\Macaft
+
+ 1
+ Развёртывание
+ Развёртывание
+ ProjectExplorer.BuildSteps.Deploy
+
+ 1
+
+ false
+ WinRTAppxDeployConfiguration
+
+ 1
+
+ dwarf
+
+ cpu-cycles
+
+
+ 250
+
+ -e
+ cpu-cycles
+ --call-graph
+ dwarf,4096
+ -F
+ 250
+
+ -F
+ true
+ 4096
+ false
+ false
+ 1000
+
+ true
+
+ false
+ false
+ false
+ false
+ true
+ 0.01
+ 10
+ true
+ kcachegrind
+ 1
+ 25
+
+ 1
+ true
+ false
+ true
+ valgrind
+
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 10
+ 11
+ 12
+ 13
+ 14
+
+
+ 2
+
+ ProjectExplorer.CustomExecutableRunConfiguration
+
+ false
+ true
+ false
+ true
+
+ 1
+
+
+
+ ProjectExplorer.Project.Target.6
+
+ WinRt.Device.Local
+ Qt 5.15.2 for UWP 64bit (MSVC 2015)
+ Qt 5.15.2 for UWP 64bit (MSVC 2015)
+ qt.qt5.5152.win64_msvc2015_winrt_x64_kit
+ 0
+ 0
+ 0
+
+ 0
+ C:\Users\Roman\Documents\build-Macaft-Qt_5_15_2_for_UWP_64bit_MSVC_2015-Debug
+ C:/Users/Roman/Documents/build-Macaft-Qt_5_15_2_for_UWP_64bit_MSVC_2015-Debug
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Отладка
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 2
+ 0
+
+
+ C:\Users\Roman\Documents\build-Macaft-Qt_5_15_2_for_UWP_64bit_MSVC_2015-Release
+ C:/Users/Roman/Documents/build-Macaft-Qt_5_15_2_for_UWP_64bit_MSVC_2015-Release
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Выпуск
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+
+
+ 0
+ C:\Users\Roman\Documents\build-Macaft-Qt_5_15_2_for_UWP_64bit_MSVC_2015-Profile
+ C:/Users/Roman/Documents/build-Macaft-Qt_5_15_2_for_UWP_64bit_MSVC_2015-Profile
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Профилирование
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+ 0
+
+ 3
+
+
+
+ true
+ Запуск windeployqt
+ WinRt.BuildStep.Deploy
+ --qmldir C:\Users\Roman\Documents\Macaft
+ --qmldir C:\Users\Roman\Documents\Macaft
+
+ 1
+ Развёртывание
+ Развёртывание
+ ProjectExplorer.BuildSteps.Deploy
+
+ 1
+
+ false
+ WinRTAppxDeployConfiguration
+
+ 1
+
+ dwarf
+
+ cpu-cycles
+
+
+ 250
+
+ -e
+ cpu-cycles
+ --call-graph
+ dwarf,4096
+ -F
+ 250
+
+ -F
+ true
+ 4096
+ false
+ false
+ 1000
+
+ true
+
+ false
+ false
+ false
+ false
+ true
+ 0.01
+ 10
+ true
+ kcachegrind
+ 1
+ 25
+
+ 1
+ true
+ false
+ true
+ valgrind
+
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 10
+ 11
+ 12
+ 13
+ 14
+
+
+ 2
+
+ ProjectExplorer.CustomExecutableRunConfiguration
+
+ false
+ true
+ false
+ true
+
+ 1
+
+
+
+ ProjectExplorer.Project.Target.7
+
+ WinRt.Device.Local
+ Qt 5.15.2 for UWP 64bit (MSVC 2019)
+ Qt 5.15.2 for UWP 64bit (MSVC 2019)
+ qt.qt5.5152.win64_msvc2019_winrt_x64_kit
+ 0
+ 0
+ 0
+
+ 0
+ C:\Users\Roman\Documents\build-Macaft-Qt_5_15_2_for_UWP_64bit_MSVC_2019-Debug
+ C:/Users/Roman/Documents/build-Macaft-Qt_5_15_2_for_UWP_64bit_MSVC_2019-Debug
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Отладка
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 2
+ 0
+
+
+ C:\Users\Roman\Documents\build-Macaft-Qt_5_15_2_for_UWP_64bit_MSVC_2019-Release
+ C:/Users/Roman/Documents/build-Macaft-Qt_5_15_2_for_UWP_64bit_MSVC_2019-Release
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Выпуск
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+
+
+ 0
+ C:\Users\Roman\Documents\build-Macaft-Qt_5_15_2_for_UWP_64bit_MSVC_2019-Profile
+ C:/Users/Roman/Documents/build-Macaft-Qt_5_15_2_for_UWP_64bit_MSVC_2019-Profile
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Профилирование
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+ 0
+
+ 3
+
+
+
+ true
+ Запуск windeployqt
+ WinRt.BuildStep.Deploy
+ --qmldir C:\Users\Roman\Documents\Macaft
+ --qmldir C:\Users\Roman\Documents\Macaft
+
+ 1
+ Развёртывание
+ Развёртывание
+ ProjectExplorer.BuildSteps.Deploy
+
+ 1
+
+ false
+ WinRTAppxDeployConfiguration
+
+ 1
+
+ dwarf
+
+ cpu-cycles
+
+
+ 250
+
+ -e
+ cpu-cycles
+ --call-graph
+ dwarf,4096
+ -F
+ 250
+
+ -F
+ true
+ 4096
+ false
+ false
+ 1000
+
+ true
+
+ false
+ false
+ false
+ false
+ true
+ 0.01
+ 10
+ true
+ kcachegrind
+ 1
+ 25
+
+ 1
+ true
+ false
+ true
+ valgrind
+
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 10
+ 11
+ 12
+ 13
+ 14
+
+
+ 2
+
+ ProjectExplorer.CustomExecutableRunConfiguration
+
+ false
+ true
+ false
+ true
+
+ 1
+
+
+
+ ProjectExplorer.Project.TargetCount
+ 8
+
+
+ ProjectExplorer.Project.Updater.FileVersion
+ 22
+
+
+ Version
+ 22
+
+
diff --git a/PROBLEM_FOR_MINI_GAMES/task_easy.json b/PROBLEM_FOR_MINI_GAMES/task_easy.json
new file mode 100644
index 0000000..e9b587c
--- /dev/null
+++ b/PROBLEM_FOR_MINI_GAMES/task_easy.json
@@ -0,0 +1,63 @@
+{
+ "number" : 15,
+ "0" : {
+ "problem": "65 + 5",
+ "answer": 70
+ },
+ "1" : {
+ "problem": "2 + 2",
+ "answer": 4
+ },
+ "2" : {
+ "problem": "7 * 4",
+ "answer": 28
+ },
+ "3" : {
+ "problem": "8 - 2",
+ "answer": 6
+ },
+ "4" : {
+ "problem": "32 - 10",
+ "answer": 22
+ },
+ "5" : {
+ "problem": "2 * 3",
+ "answer": 6
+ },
+ "6" : {
+ "problem": "9 / 3",
+ "answer": 3
+ },
+ "7" : {
+ "problem": "14 / 7",
+ "answer": 2
+ },
+ "8" : {
+ "problem": "245 - 41",
+ "answer": 204
+ },
+ "9" : {
+ "problem": "5 * 6",
+ "answer": 30
+ },
+ "10" : {
+ "problem": "7 - 8",
+ "answer": -1
+ },
+ "11" : {
+ "problem": "3 * 4",
+ "answer": 12
+ },
+ "12" : {
+ "problem": "5 + 5 + 5",
+ "answer": 15
+ },
+ "13" : {
+ "problem": "45 / 5",
+ "answer": 9
+ },
+ "14" : {
+ "problem": "34 + 4",
+ "answer": 38
+ }
+}
\ No newline at end of file
diff --git a/PROBLEM_FOR_MINI_GAMES/task_hard.json b/PROBLEM_FOR_MINI_GAMES/task_hard.json
new file mode 100644
index 0000000..cca30e9
--- /dev/null
+++ b/PROBLEM_FOR_MINI_GAMES/task_hard.json
@@ -0,0 +1,23 @@
+{
+ "number" : 5,
+ "0": {
+ "problem": "11 * 3 - (25 / 5) * 2",
+ "answer": 23
+ },
+ "1": {
+ "problem": "(85 - 6) + 3 - 60 / 2",
+ "answer": 52
+ },
+ "2": {
+ "problem": "88 / 2 + 6 - 15 / 5",
+ "answer": 47
+ },
+ "3": {
+ "problem": "22 + (85 - 88) * 2",
+ "answer": 16
+ },
+ "4": {
+ "problem": "(55 + 5 - (32 + 1)) / 3",
+ "answer": 9
+ }
+}
\ No newline at end of file
diff --git a/PROBLEM_FOR_MINI_GAMES/task_normal.json b/PROBLEM_FOR_MINI_GAMES/task_normal.json
new file mode 100644
index 0000000..65b7c86
--- /dev/null
+++ b/PROBLEM_FOR_MINI_GAMES/task_normal.json
@@ -0,0 +1,43 @@
+{
+ "number" : 10,
+ "0": {
+ "problem": "55 + 5 - (45 + 5)",
+ "answer": 10
+ },
+ "1": {
+ "problem": "4 * (3 + 4)",
+ "answer": 28
+ },
+ "2": {
+ "problem": "9 - (30 / 5)",
+ "answer": 3
+ },
+ "3": {
+ "problem": "(17 - 3) + (7 - 5)",
+ "answer": 16
+ },
+ "4": {
+ "problem": "(13 - 4) / 3",
+ "answer": 3
+ },
+ "5": {
+ "problem": "45 / 5 - 4",
+ "answer": 5
+ },
+ "6": {
+ "problem": "6 * 7 - 2",
+ "answer": 40
+ },
+ "7": {
+ "problem": "90 - 40 + 5 - (5 - 4)",
+ "answer": 54
+ },
+ "8": {
+ "problem": "32 - 5 + 3",
+ "answer": 30
+ },
+ "9": {
+ "problem": "(76 + 4) / 4",
+ "answer": 20
+ }
+}
\ No newline at end of file
diff --git a/README.md b/README.md
deleted file mode 100644
index d653022..0000000
--- a/README.md
+++ /dev/null
@@ -1 +0,0 @@
-# Great-project-1-course
\ No newline at end of file
diff --git a/TESTS/myth_0.json b/TESTS/myth_0.json
new file mode 100644
index 0000000..6a4fd44
--- /dev/null
+++ b/TESTS/myth_0.json
@@ -0,0 +1,306 @@
+{
+ "plot_title": "myth0",
+ "declaring_character": "Вы всесильный Бог Дедлайнововремязакрыватель, у вас есть преданный друг Виталя",
+ "events": {
+ "event1": {
+ "is_end": false,
+ "text": "Виталя просит вас вместо учебы сходить с ним на футбол, играть против экономистов. Вы выполните просьбу Витали?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "win",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "die",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "die": {
+ "is_end": true,
+ "text": "Направляясь утром к рабочему столу, вы запнулись о провод. Это была нелепая смерть"
+ },
+ "die_resource1_high": {
+ "is_end": true,
+ "text": "die_resource1_high"
+ },
+ "die_resource1_low": {
+ "is_end": true,
+ "text": "die_resource1_low"
+ },
+ "die_resource2_high": {
+ "is_end": true,
+ "text": "die_resource2_high"
+ },
+ "die_resource2_low": {
+ "is_end": true,
+ "text": "die_resource2_low"
+ },
+ "die_resource3_high": {
+ "is_end": true,
+ "text": "die_resource3_high"
+ },
+ "die_resource3_low": {
+ "is_end": true,
+ "text": "die_resource3_low"
+ },
+ "die_resource4_high": {
+ "is_end": true,
+ "text": "die_resource4_high"
+ },
+ "die_resource4_low": {
+ "is_end": true,
+ "text": "die_resource4_low"
+ },
+ "win": {
+ "is_end": true,
+ "text": "Эта была великолепная игра! После нее вы успели закрыть все дедлайны, вы ведь все - таки Бог. Но даже и Богам необходимо иногда отдыхать"
+ },
+ "chance_to_change_resource1_high": {
+ "is_end": false,
+ "text": "",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "die_resource1_high",
+ "resource_change": {
+ "resource1": 1000,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "die_resource1_high",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "chance_to_change_resource2_high": {
+ "is_end": false,
+ "text": "",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "die_resource2_high",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 1000,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "die_resource2_high",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "chance_to_change_resource3_high": {
+ "is_end": false,
+ "text": "",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "die_resource3_high",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 1000,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "die_resource3_high",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "chance_to_change_resource4_high": {
+ "is_end": false,
+ "text": "",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "die_resource4_high",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 1000
+ }
+ },
+ "no": {
+ "next_event": "die_resource4_high",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "chance_to_change_resource1_low": {
+ "is_end": false,
+ "text": "",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "die_resource1_low",
+ "resource_change": {
+ "resource1": -1000,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "die_resource1_low",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "chance_to_change_resource2_low": {
+ "is_end": false,
+ "text": "",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "die_resource2_low",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": -1000,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "die_resource2_low",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "chance_to_change_resource3_low": {
+ "is_end": false,
+ "text": "",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "die_resource3_low",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": -1000,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "die_resource3_low",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "chance_to_change_resource4_low": {
+ "is_end": false,
+ "text": "",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "die_resource4_low",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": -1000
+ }
+ },
+ "no": {
+ "next_event": "die_resource4_low",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "die_arithmetic_problem": {
+ "is_end": true,
+ "text": "die_arithmetic_problem"
+ },
+ "die_saper": {
+ "is_end": true,
+ "text": "die_arithmetic_problem"
+ }
+ },
+
+ "resources": {
+ "resource1": {
+ "name" : "Ничего",
+ "highest_value": 100,
+ "start_value": 50,
+ "lowest_value": 0
+ },
+ "resource2": {
+ "name" : "Ничегошеньки",
+ "highest_value": 100,
+ "start_value": 50,
+ "lowest_value": 0
+ },
+ "resource3": {
+ "name" : "Совсем ничего",
+ "highest_value": 100,
+ "start_value": 50,
+ "lowest_value": 0
+ },
+ "resource4": {
+ "name" : "Даже не надейся",
+ "highest_value": 100,
+ "start_value": 50,
+ "lowest_value": 0
+ }
+ }
+}
\ No newline at end of file
diff --git a/TESTS/myth_1.json b/TESTS/myth_1.json
new file mode 100644
index 0000000..07ae4cc
--- /dev/null
+++ b/TESTS/myth_1.json
@@ -0,0 +1,601 @@
+{
+ "plot_title": "myth1",
+ "declaring_character": "Вы величайший художник, скульптор и зодчий Афин, знаменитый Дедал, потомок Эрехтея",
+ "events": {
+ "event1": {
+ "is_end": false,
+ "text": "Ваша сестра Пердика просит взять сына своего, Тала в подмастерья. Исполните ее просьбу?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event2",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 10,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event3",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event2": {
+ "is_end": false,
+ "text": "Ваш племянник стал учеником другого мастера, и делает большие успехи! Стоит беспокоиться, что Тал может превзойти вас?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event5",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 10,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event4",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": -10,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event3": {
+ "is_end": false,
+ "text": "Ваш племянник делает большие успехи! Поговаривают, что Тал может вас превзойти. Вас беспокоит это?",
+ "mini_game" : 2,
+ "routes": {
+ "yes": {
+ "next_event": "event5",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 10,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "die2",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": -10,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event4": {
+ "is_end": false,
+ "text": "Наставник вашего племянника завидывал его успехам, и решил убить Тала. Ваша сестра Пердика не смогла смириться с потерей сына и обвиняет вас в отказе взять его себе в подмастрерье. Возьмете на себя ответственность и извинитесь?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event6",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": -10,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "die1",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 10,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event5": {
+ "is_end": false,
+ "text": "У вас возникла мысль об убийстве возможного соперника, вашего племянника. Сделаете это?",
+ "mini_game" : 2,
+ "routes": {
+ "yes": {
+ "next_event": "event7",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 10,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "die2",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": -10,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event6": {
+ "is_end": false,
+ "text": "Пердика простила вас. Она просит взять в ученики второго своего сына. Исполните ее просьбу?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event3",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 10,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "die1",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": -10,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event7": {
+ "is_end": false,
+ "text": "Вас застали в момент совершения преступления! Вы ждете смертельного приговора. Может, сбежать?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event8",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 20,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "die3",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": -20,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event8": {
+ "is_end": false,
+ "text": "Вы успешно сбежали на остров Крит и прожили там долгое время. У вас родился сын Икар. Но жизнь на остове уже наскучила. Может, опять сбежать?",
+ "mini_game" : 2,
+ "routes": {
+ "yes": {
+ "next_event": "event9",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 10,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event12",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": -10,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event9": {
+ "is_end": false,
+ "text": "Вы смастерили крылья из перьев и воска. Это отличное изобретение! Икар летит?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event10",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "die4",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event10": {
+ "is_end": false,
+ "text": "Если лететь близко к солнцу, воск расстаит, если близко к воде, промокнут перья. Будете следить за сыном?",
+ "mini_game" : 2,
+ "routes": {
+ "yes": {
+ "next_event": "die5",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 10,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event11",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": -10,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event11": {
+ "is_end": false,
+ "text": "Ваш сын поднялся слишком высоко, и воск на крыльях расплавился. Икар упал в воду. Броситесь спасать его?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "die6",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 20,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "win",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": -20,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event12": {
+ "is_end": false,
+ "text": "Икар узнал о ваших мыслях о побеге, и его захватила эта идея. Он хочет улететь, даже если вы останетесь. Поможете ему?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event9",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 10,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "die4",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": -10,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "die1": {
+ "is_end": true,
+ "text": "Ваша сестра пустила неприятные слухи о вас, и ваш авторитет был уничтожен! Вы умерли в нищите и безызвестности"
+ },
+ "die2": {
+ "is_end": true,
+ "text": "Тал превзошел вас во всем, и никто больше не признает ваше величие! Вы умерли в нищите и безызвестности"
+ },
+ "die3": {
+ "is_end": true,
+ "text": "Вас казнили :("
+ },
+ "die4": {
+ "is_end": true,
+ "text": "Вы очень соскучились по сыну и решили пойти за ним. Вы были убиты, когда пересекали море"
+ },
+ "die5": {
+ "is_end": true,
+ "text": "Вы не заметили погони, и вы с Икаром были убиты"
+ },
+ "die6": {
+ "is_end": true,
+ "text": "Ваши крылья забрызгало волнами, и они промокли! Вы с Икаром утонули"
+ },
+ "die_resource1_high": {
+ "is_end": true,
+ "text": "die_resource1_high"
+ },
+ "die_resource1_low": {
+ "is_end": true,
+ "text": "die_resource1_low"
+ },
+ "die_resource2_high": {
+ "is_end": true,
+ "text": "die_resource2_high"
+ },
+ "die_resource2_low": {
+ "is_end": true,
+ "text": "die_resource2_low"
+ },
+ "die_resource3_high": {
+ "is_end": true,
+ "text": "Для Бога важно спокойствие, ясный и трезвый ум. Вы точно тот, за кого себя выдаете?"
+ },
+ "die_resource3_low": {
+ "is_end": true,
+ "text": "Для Бога важно спокойствие, ясный и трезвый ум. Вы точно тот, за кого себя выдаете?"
+ },
+ "die_resource4_high": {
+ "is_end": true,
+ "text": "die_resource4_high"
+ },
+ "die_resource4_low": {
+ "is_end": true,
+ "text": "die_resource4_low"
+ },
+ "win": {
+ "is_end": true,
+ "text": "Икар погиб, но вы успешно долетели до Сицилии и прожили там долгую, счастливую и богатую жизнь"
+ },
+ "chance_to_change_resource1_high": {
+ "is_end": false,
+ "text": "",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "die_resource1_high",
+ "resource_change": {
+ "resource1": 1000,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "die_resource1_high",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "chance_to_change_resource2_high": {
+ "is_end": false,
+ "text": "",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "die_resource2_high",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 1000,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "die_resource2_high",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "chance_to_change_resource3_high": {
+ "is_end": false,
+ "text": "Вы очень устали от всех этих переживаний. Может, пора восстановить силы?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "die_resource3_high",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 1000,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "die_resource3_high",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "chance_to_change_resource4_high": {
+ "is_end": false,
+ "text": "",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "die_resource4_high",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 1000
+ }
+ },
+ "no": {
+ "next_event": "die_resource4_high",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "chance_to_change_resource1_low": {
+ "is_end": false,
+ "text": "",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "die_resource1_low",
+ "resource_change": {
+ "resource1": -1000,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "die_resource1_low",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "chance_to_change_resource2_low": {
+ "is_end": false,
+ "text": "",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "die_resource2_low",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": -1000,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "die_resource2_low",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "chance_to_change_resource3_low": {
+ "is_end": false,
+ "text": "Вы бодры, полны сил и очень активны. Может, замереть на секунду, попробовать поймать дзен, успокоиться?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "die_resource3_low",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": -1000,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "die_resource3_low",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "chance_to_change_resource4_low": {
+ "is_end": false,
+ "text": "",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "die_resource4_low",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": -1000
+ }
+ },
+ "no": {
+ "next_event": "die_resource4_low",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "die_arithmetic_problem": {
+ "is_end": true,
+ "text": "Кажется, эти некоторые были правы..."
+ },
+ "die_saper": {
+ "is_end": true,
+ "text": "Кажется, эти некоторые были правы..."
+ }
+ },
+
+ "resources": {
+ "resource1": {
+ "name" : "Вера",
+ "highest_value": 100,
+ "start_value": 50,
+ "lowest_value": 0
+ },
+ "resource2": {
+ "name" : "Спокойствие",
+ "highest_value": 100,
+ "start_value": 50,
+ "lowest_value": 0
+ },
+ "resource3": {
+ "name" : "Усталость",
+ "highest_value": 100,
+ "start_value": 50,
+ "lowest_value": 0
+ },
+ "resource4": {
+ "name" : "Состояние",
+ "highest_value": 100,
+ "start_value": 50,
+ "lowest_value": 0
+ }
+ }
+}
\ No newline at end of file
diff --git a/TESTS/myth_2.json b/TESTS/myth_2.json
new file mode 100644
index 0000000..7717b5a
--- /dev/null
+++ b/TESTS/myth_2.json
@@ -0,0 +1,1904 @@
+{
+ "plot_title": "myth2",
+ "declaring_character": "Вы знаменитый следователь Ленинградского округа города Санкт-Петербурга, старик 35 лет, Порфирий Петрович, опытный знаток своего дела",
+ "events": {
+ "die_arithmetic_problem": {
+ "is_end": true,
+ "text": "Кажется, эти некоторые были правы..."
+ },
+ "die_saper": {
+ "is_end": true,
+ "text": "Кажется, эти некоторые были правы..."
+ },
+ "event1": {
+ "is_end": false,
+ "text": "Вам было поручено разобраться в одном громком деле – убийство старухи-процентщицы. Возьмётесь ли вы за него?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event2",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event3",
+ "resource_change": {
+ "resource1": -10,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event2": {
+ "is_end": false,
+ "text": "У вас остались мелкие незаконченные дела на работе, которые не терпят отлагательств. Разобраться сначала с ними?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event4",
+ "resource_change": {
+ "resource1": 25,
+ "resource2": 0,
+ "resource3": 10,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event5",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event3": {
+ "is_end": false,
+ "text": "Ну как же так, Порфирий Петрович! Не разочаровывайте коллег! Может, все-таки возьметесь за дело?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event2",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "die0",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event4": {
+ "is_end": false,
+ "text": "Разгребая дела, вы наткнулись на одну любопытную статью в местной газете. Прочитать её?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event6",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 10,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event7",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event5": {
+ "is_end": false,
+ "text": "Ну-с, самое время погрузиться в дело об убийстве старушки. Отправиться прямо сейчас на место преступления?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event8",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event9",
+ "resource_change": {
+ "resource1": 10,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event6": {
+ "is_end": false,
+ "text": "Интересная статейка... \"Обыкновенные люди\", \"необыкновенные\"... Кто же такой автор этой статьи? Нужно взять это на заметку.\nА теперь самое время погрузиться в дело об убийстве старушки. Отправиться прямо сейчас на место преступления?",
+ "mini_game" : 1,
+ "routes": {
+ "yes": {
+ "next_event": "event8",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event9",
+ "resource_change": {
+ "resource1": 25,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event7": {
+ "is_end": false,
+ "text": "С остальными делами покончено, самое время погрузиться в дело об убийстве старушки. Отправиться прямо сейчас на место преступления?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event8",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event9",
+ "resource_change": {
+ "resource1": 10,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event8": {
+ "is_end": false,
+ "text": "Место преступления - дом на набережной канала Грибоедова, путь неблизкий. Отправиться туда на повозке?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event10",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": -10
+ }
+ },
+ "no": {
+ "next_event": "event10",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 10,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event9": {
+ "is_end": false,
+ "text": "Вы решили не спешить на место преступления, ведь необходимо тщательно подготовиться!\nВы изучили всю известную на данный момент информацию и только теперь готовы в путь.\nМесто преступления - дом на набережной канала Грибоедова, путь неблизкий. Отправиться туда на повозке?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event10",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": -10
+ }
+ },
+ "no": {
+ "next_event": "event10",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 10,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event10": {
+ "is_end": false,
+ "text": "Прибыв на место, возле дома вы встречаетесь со своими коллегами, поговорить с ними?",
+ "mini_game" : 2,
+ "routes": {
+ "yes": {
+ "next_event": "event11",
+ "resource_change": {
+ "resource1": 10,
+ "resource2": 10,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event12",
+ "resource_change": {
+ "resource1": -10,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event11": {
+ "is_end": false,
+ "text": "Ваши коллеги узнали что во время убийства в доме работали некие маляры, возможно они что-то знают или может даже замешаны в этом... Осмотреть дом старушки?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event13",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 10,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "die1",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event12": {
+ "is_end": false,
+ "text": "Правильно! Необходимо соблюдать социальную дистанцию. Осмотреть дом старушки?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event13",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 10,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "die1",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event13": {
+ "is_end": false,
+ "text": "Всё, чтo нажито непoсильным трудoм, всё пoгиблo! Комната старухи разграблена. С полученными сведениями пора вернуться в офис. Отправиться туда на повозке?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event14",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": -10
+ }
+ },
+ "no": {
+ "next_event": "event14",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 10,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "die0": {
+ "is_end": true,
+ "text": "Это дело стало бы самым важным в вашей карьере. Жаль, но теперь вы обречены на вечную рутину"
+ },
+ "die1": {
+ "is_end": true,
+ "text": "Один из ваших коллег заметил, что вы не собираетесь осматривать место преступления, это выглядит подозрительно! Вас отстранили от данного дела и ваш авторитет упал. Вы отправляетесь работать в уездный город N. Поздравляем!"
+ },
+ "event14": {
+ "is_end": false,
+ "text": "Прибыв на место и обсуждая с коллегами подробности дела, вы замечаете как один из посетителей офиса падает в обморок во время вашей беседы. Совпадение? Не думаю. Нужно взять это на заметку. Выяснить кто этот человек?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event15",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 10,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event16",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event15": {
+ "is_end": false,
+ "text": "Отпустив беднягу домой, вы узнаете, что это был Родион Романович Раскольников, данный гражданин всего-навсего задолжал денег квартирной хозяйке. Возможно стоит как-нибудь навести справки о нём. Проследить за Родионом?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event17",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 10,
+ "resource3": 10,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event16",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event17": {
+ "is_end": false,
+ "text": "Слишком долго и далеко идет Родион и вы вслед за ним. Вы заметили, что он часто оглядывается… Всё больше подозрений! Продолжить слежку?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event18",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 10,
+ "resource3": 20,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event37",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event18": {
+ "is_end": false,
+ "text": "Вы чуть было не потеряли Родиона из виду, но во время догнали его. Молодой человек остановился в безлюдном дворе, спрятал что-то под камень. Выйти из укрытия и поймать парня?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event19",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event39",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": -10,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event19": {
+ "is_end": false,
+ "text": "Вы вышли из укрытия, но Раскольников заметил вас и побежал. Бежать за ним?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event20",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 30,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event23",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event20": {
+ "is_end": false,
+ "text": "Он оказался слишком быстрым, а вы увы нет. Вернуться в тот самый двор и проверить что Раскольников спрятал под камнем?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event21",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 20,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "die2",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "die2": {
+ "is_end": true,
+ "text": "Вы решили оставить всё как есть. Незнание - сила! Что ж, а война - это мир: только вы вышли со двора, как на вас напали наблюдавшие за вами бандиты. Вы попрощались со своей шинелью и жизнью. Ну а что же Раскольников спрятал под камнем? Впрочем, это уже совсем другая история"
+ },
+ "event21": {
+ "is_end": false,
+ "text": "Вы обнаружили кошелек с деньгами и драгоценности, скорее всего принадлежащие старухе. Сомнений быть не может, Родион Романович Раскольников - главный подозреваемый! Вы решаете вернуться в офис и узнать его адрес. Поехать на повозке?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event22",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": -10
+ }
+ },
+ "no": {
+ "next_event": "event22",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event22": {
+ "is_end": false,
+ "text": "Вы прибыли в офис и узнали адрес проживания Раскольникова. Отправиться к нему на повозке?",
+ "mini_game" : 2,
+ "routes": {
+ "yes": {
+ "next_event": "die3",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": -10
+ }
+ },
+ "no": {
+ "next_event": "die4",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "die3": {
+ "is_end": true,
+ "text": "Вы прибыли как раз вовремя и встретили Раскольникова с собранными в путь пожитками в дверях квартиры. Раскольников увидев вас в очередной раз не на шутку испугался, в панике выхватил неизвестно откуда ножик и ткнул вас прямо в сердце. Да, человек смертен, но это было бы еще полбеды. Плохо то, что он иногда внезапно смертен, вот в чем фокус!"
+ },
+ "die4": {
+ "is_end": true,
+ "text": "Вы прекрасно прогулялись по солнечному Петербургу, но придя по адресу никого не обнаружили. Дверь в квартиру открыта нараспашку, ни вещей, ни следов Родиона. Похоже ваши догадки насчёт него подтвердились, но уже слишком поздно: Раскольников сбежал. Ну ничего страшного! В следующий раз действуйте более профессионально!"
+ },
+ "event23": {
+ "is_end": false,
+ "text": "Вы решили не тратить силы на весёлые гонки. Проверить что Раскольников спрятал под камнем?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event21",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 20,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "die2",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "win1": {
+ "is_end": true,
+ "text": "4 days later... Вы узнали, где живёт Раскольников и неспеша отправляетесь к нему... Вы сталкиваетесь с Родионом в дверях. Молодой человек вздрагивает на мгновенье, но тут же берёт над собой контроль. Он приглашает вас присесть и садиться рядом. Вы закуриваете папироску и начинаете непростой разговор... Раскольников сам не свой... \"Так... кто же... убил?.. – спросил он, не выдержав, задыхающимся голосом.\", \"Как кто убил?... да вы убили, Родион Романыч!\""
+ },
+ "win2": {
+ "is_end": true,
+ "text": "Прибыв по адресу вы сталкиваетесь с Родионом в дверях. Молодой человек вздрагивает на мгновенье, но тут же берёт над собой контроль. Он приглашает вас присесть и садиться рядом. Вы закуриваете папироску и начинаете непростой разговор...Раскольников сам не свой... \"Так... кто же.. убил?.. – спросил он, не выдержав, задыхающимся голосом.\", \"Как кто убил?... да вы убили, Родион Романыч!\""
+ },
+ "win3": {
+ "is_end": true,
+ "text": "Не куда спешить! Раскольников думает, что вы теперь подозреваете Миколу, так что можно прогуляться неторопясь и обдумать разговор с Родионом... Прибыв по адресу вы сталкиваетесь с Родионом в дверях. Молодой человек вздрагивает на мгновенье, но тут же берёт над собой контроль. Он приглашает вас присесть и садиться рядом. Вы закуриваете папироску и начинаете непростой разговор...Раскольников сам не свой... \"Так... кто же.. убил?.. – спросил он, не выдержав, задыхающимся голосом.\", \"Как кто убил?... да вы убили, Родион Романыч!\""
+ },
+ "event16": {
+ "is_end": false,
+ "text": "Вы решили не тратить сейчас время на данного гражданина, ведь скоро в офис приведут главных свидетелей (а может и подозреваемых?) - маляров. Пока вы их ожидаете сходить за шавермой, что продается напротив офиса?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event24",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event36",
+ "resource_change": {
+ "resource1": 10,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event24": {
+ "is_end": false,
+ "text": "Подойдя к ларьку с шавермой вы замечаете перед собой того самого посетителя офиса, что потерял сознание. Опять совпадение? Окликнуть его?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event25",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 10,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event27",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event25": {
+ "is_end": false,
+ "text": "Молодой человек обернулся, увидел вас, пробормотал что-то про своё самочувствие и поспешил удалиться. Всё-таки он ведёт себя странно... Но война войной, а обед по расписанию. Время сделать заказ. Какой огромный выбор шавермы! Большая, маленькая, классическая, острая... Взять большую?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event26",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event28",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event26": {
+ "is_end": false,
+ "text": "Классическая или острая? Съешь обычную шаверму — и сказке конец. Ты проснёшься в своей постели и поверишь, что это был сон. Съешь острую — войдёшь в страну чудес. Я покажу тебе, глубока ли кроличья нора. Купить острую?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "die5",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event29",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "die5": {
+ "is_end": true,
+ "text": "Вы купили острую шаверму и съев её вышли из матрицы. Похоже ваш желудок не был готов к такому. Вас отправляют в больницу лечить последствия, вызванные изжогой. К сожалению, пришлось отстранить вас от порученного дела до лучших времён. Поправляйтесь!"
+ },
+ "event27": {
+ "is_end": false,
+ "text": "Вы не стали беспокоить его и дождались своей очереди. Время сделать заказ. Какой огромный выбор шавермы! Большая, маленькая, классическая, острая... Взять большую?",
+ "mini_game" : 2,
+ "routes": {
+ "yes": {
+ "next_event": "event26",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event28",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event28": {
+ "is_end": false,
+ "text": "Вы взяли маленькую. Классическая или острая? Съешь обычную шаверму — и сказке конец. Ты проснёшься в своей постели и поверишь, что это был сон. Съешь острую — войдёшь в страну чудес. Я покажу тебе, глубока ли кроличья нора. Купить острую?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "die5",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event29",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event29": {
+ "is_end": false,
+ "text": "Вы взяли классическую. Может взять что-нибудь для своих коллег? Они точно не откажутся от такого. Три маленьких классических, по одной каждому. Купить?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event30",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": -30
+ }
+ },
+ "no": {
+ "next_event": "event35",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event30": {
+ "is_end": false,
+ "text": "Вы направились со своим богатством обратно в офис, но заметили трёх нищих, чьи пустые и грустные глаза смотрели на вашу покупку. Может угостить их?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event31",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 10,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event34",
+ "resource_change": {
+ "resource1": 10,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event31": {
+ "is_end": false,
+ "text": "Вы отдали три купленные для коллег шавермы. Нищие поблагодарили вас, их глаза стали живыми и ясными, улыбки окрасили их серые лица. Они тотчас принялись есть. Вдруг один из них резко нахмурился, его лицо стало серьёзным и он произнес: \"Я был там, Порфирий Петрович. Я был там 3000 лет назад... когда Родион Раскольников обрёл Топор. Я видел сам, как старуха-процентщица дала слабину. Тот парень, что стоял с вами у ларька... Он убийца!\" Вы не на шутку перепугались и удивились. Откуда нищий знает как вас зовут? Что за бред он несёт? Расспросить его поподробнее?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event32",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event33",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event32": {
+ "is_end": false,
+ "text": "Только вы собирались задать нищему вопрос, как он вскочил держа в руку ещё недоеденную шаверму и с криками: \"Моя прелесть!\" убежал в закат. Другие два его сотрапезника ничего не смогли вам сообщить и не понимали о чём идёт речь. Странно это всё, но пора возвращаться назад. Вернувшись в офис вы собрали своих коллег и к вам в кабинет привели тех самых маляров. Начать разговор?",
+ "mini_game" : 2,
+ "routes": {
+ "yes": {
+ "next_event": "event42",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event41",
+ "resource_change": {
+ "resource1": -10,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event33": {
+ "is_end": false,
+ "text": "Сумасшедшие для Питера не редкость! Вы решили не тратить своё время, ведь пора возвращаться назад. Вернувшись в офис вы собрали своих коллег и к вам в кабинет привели тех самых маляров. Начать разговор?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event42",
+ "resource_change": {
+ "resource1": -10,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event41",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event34": {
+ "is_end": false,
+ "text": "Не время для благотворительности! Пора возвращаться назад. Вернувшись в офис вы отобедали вместе со своими коллегами и к вам в кабинет привели тех самых маляров. Начать разговор?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event42",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event41",
+ "resource_change": {
+ "resource1": -10,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event35": {
+ "is_end": false,
+ "text": "Копейка рубль бережёт! И время - деньги! Пора возвращаться назад. Вернувшись в офис вы отобедали, собрали своих коллег и к вам в кабинет привели тех самых маляров. Начать разговор?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event42",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event41",
+ "resource_change": {
+ "resource1": -10,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event36": {
+ "is_end": false,
+ "text": "Пока вы ожидали свидетелей, вы поделились с коллегами своими мыслями насчёт дела. Спустя некоторое время к вам в кабинет привели тех самых маляров. Начать разговор?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event42",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event41",
+ "resource_change": {
+ "resource1": -10,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event37": {
+ "is_end": false,
+ "text": "Вы решили не тратить сейчас время на данного гражданина, ведь с минуты на минуту в офис приведут главных свидетелей (а может и подозреваемых?) - маляров. Отправиться в офис на повозке?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event38",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": -10
+ }
+ },
+ "no": {
+ "next_event": "event38",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 10,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event38": {
+ "is_end": false,
+ "text": "Вернувшись в офис вы собрали своих коллег и к вам в кабинет привели тех самых маляров. Начать разговор?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event42",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event41",
+ "resource_change": {
+ "resource1": -10,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event39": {
+ "is_end": false,
+ "text": "Вы выждали время и Раскольников благополучно ушел. Проверить что Раскольников спрятал под камнем?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event40",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 20,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "die2",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event40": {
+ "is_end": false,
+ "text": "Вы выждали время и Раскольников благополучно ушел. Проверить что Раскольников спрятал под камнем?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event38",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": -10
+ }
+ },
+ "no": {
+ "next_event": "event38",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 10,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event41": {
+ "is_end": false,
+ "text": "Вашим коллегам показалось это странным, ведь обычно вы охотник до разного рода болтовни. Хватит лениться, пора выполнять свою работу! В разговоре вы заметили что один из маляров - Миколка-красильщик ведёт себя неуверенно, его глаза постоянно бегают из стороны в сторону, будто он что-то скрывает. Спросить его об этом?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event43",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event44",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": -10,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event42": {
+ "is_end": false,
+ "text": "В разговоре вы заметили что один из маляров - Миколка-красильщик ведёт себя неуверенно, его глаза постоянно бегают из стороны в сторону, будто он что-то скрывает. Спросить его об этом?",
+ "mini_game" : 2,
+ "routes": {
+ "yes": {
+ "next_event": "event43",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event44",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": -10,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event43": {
+ "is_end": false,
+ "text": "Миколка сознаётся что нашёл серёжки и присвоил их себе. Он рассказывает вам всё что знает о том роковом дне убийства. Возможно Миколка не только вор, но и убийца? Заставить его признаться в убийстве?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event45",
+ "resource_change": {
+ "resource1": -10,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event46",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": -10,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event44": {
+ "is_end": false,
+ "text": "Вы решили не акцентировать внимание на этом и продолжили разговор. К сожалению ничего полезного вы не узнали, а скорее наоборот больше запутались. Рабочий день подходит к концу. Самое время отправиться домой. Вперёд?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event48",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event47",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event45": {
+ "is_end": false,
+ "text": "Оказывается это было не так сложно. В страхе Миколка сознаётся в убийстве. В этом признании вы видите его желание искупить грехи. Ну-с... Похоже дело закрыто?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "die6",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event46",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": -10,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "die6": {
+ "is_end": true,
+ "text": "Благодаря вашему хорошему дару убеждения Миколка отправился на каторгу в Сибирь. Ваши способности хорошо оценило вышестоящее начальство и повысило вас в должности. Поздравляем! Теперь вы будете выбивать признания из невиновных!"
+ },
+ "event46": {
+ "is_end": false,
+ "text": "Вы читаете людей как открытую книгу и понимаете что этот паренёк не может быть убийцей. Вы довольны, что он сознался в содеянной краже и раскаивается, но к сожалению ничего нового из разговора со свидетелями вы не узнали, а скорее наоборот больше запутались. Рабочий день подходит к концу. Самое время отправиться домой. Вперёд?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event48",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event47",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event47": {
+ "is_end": false,
+ "text": "Раз не вперёд, тогда назад - домой! Вы вернулись домой, почитали газеты, поужинали. Слишком рано чтоб идти спать, тем более завтра у вас выходной... Хм... У вас имеется в собственности неплохая повозка да лошадь. Может потаксовать для души?",
+ "mini_game" : 2,
+ "routes": {
+ "yes": {
+ "next_event": "event49",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": -10,
+ "resource3": 10,
+ "resource4": 10
+ }
+ },
+ "no": {
+ "next_event": "event50",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": -10,
+ "resource3": -10,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event48": {
+ "is_end": false,
+ "text": "Вы вернулись домой, почитали газеты, поужинали. Слишком рано чтоб идти спать, тем более завтра у вас выходной... Хм... У вас имеется в собственности неплохая повозка да лошадь. Может потаксовать для души?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event49",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": -10,
+ "resource3": 10,
+ "resource4": 10
+ }
+ },
+ "no": {
+ "next_event": "event51",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": -10,
+ "resource3": -10,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event49": {
+ "is_end": false,
+ "text": "Сегодня вечером было не так много клиентов, но всё же вы заработали неплохие деньги. На часах полночь. Вернуться домой и лечь спать?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event50",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": -10,
+ "resource3": -10,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event52",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": -10,
+ "resource3": 10,
+ "resource4": 10
+ }
+ }
+ }
+ },
+ "event50": {
+ "is_end": false,
+ "text": "Прибыв домой, вы легли на кровать и тотчас уснули... Настало утро. Проснуться?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event53",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event54",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": -10,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event51": {
+ "is_end": false,
+ "text": "Что за мысли... Лучше хорошенько отдохнуть перед рабочим днём. Вы легли на кровать и стали читать книжку, но спустя четверть часа не заметили как уснули... Настало утро. Проснуться?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event53",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event54",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": -10,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event52": {
+ "is_end": false,
+ "text": "Вы решили поработать ещё пару часов и не пожалели об этом! Вы отлично заработали! Но всё же пора возвращаться назад. Прибыв домой, вы легли на кровать и тотчас уснули... Настало утро. Проснуться?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event53",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event54",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": -10,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event53": {
+ "is_end": false,
+ "text": "Проснувшись и позавтракав, к вам ни с того, ни с сего заявляется Разумихин - ваш дальний родственник и... кто бы вы думали? И тот самый молодой человек, что потерял сознание у вас в офисе - Родион Романович Раскальников. Интересно, что они хотят... Побеседовать с Родионом?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event55",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "die7",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event54": {
+ "is_end": false,
+ "text": "Вы решили поспать подольше. До обеда. Во входных дверях вы находите записку. Оказывается, пока вы спали к вам заезжал Разумихин - ваш дальний родственник и его друг, у которого было какое-то срочное дело к вам. В записке Разумихин просил заглянуть вас в офис, где уже ждёт вас его друг. Вперёд?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event60",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "die9",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "die7": {
+ "is_end": true,
+ "text": "Вы не собираетесь разговаривать ни с Раскольниковым, ни с Разумихиным. Что им вообще надо? У вас же выходной! Вы гоните их прочь из квартиры и наслаждаетесь тишиной и спокойствием. Вот и сказочки конец, а кто слушал - молодец!"
+ },
+ "event55": {
+ "is_end": false,
+ "text": "В ходе беседы с Раскольниковым вы на 100% убеждаетесь в его виновности в произошедшем убийстве! Предъявить ему сейчас свои обвинения?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "die8",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event56",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": -10,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "die8": {
+ "is_end": true,
+ "text": "Раскольников, услышав то, что вы ему сказали, трясётся в страхе и достает откуда-то топор. Он всегда, когда собирается к кому-то приехать поговорить, берёт топор с собой??? Хороший собеседник... Разумихин в шоке от увиденного, а вы в раю (ну или чуть пониже, кто вас знает). Конец."
+ },
+ "event56": {
+ "is_end": false,
+ "text": "Раскольников хочет забрать свои вещи, которые он закладывал у покойной старушки-процентщицы. Что ж, вы с радостью приглашаете его к себе завтра в офис чтобы подать заявление о выкупе вещей. Вы заканчиваете беседу, провожаете гостей и наслаждаетесь своим выходным днём. На следующий день будучи уже в офисе на работе к вам заявляется в назначенный час ваш новый друг. Начать разговор?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event57",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event59",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event57": {
+ "is_end": false,
+ "text": "Вы даёте Раскольникову лист бумаги для написания заявления и начинаете разговор. Вам уже не особо важны все детали разговора, так как уверены в его виновности, но интересно послушать что расскажет вам ваш собеседник. Вдруг к вам в кабинет врывается маляр Микола и сознается в убийстве старухи. Он срывает ваш разговор с Раскольниковым, и вы отправляете Родиона домой. Выслушав Миколу, вы отпускаете и его. Вернуться к своим делам?",
+ "mini_game" : 2,
+ "routes": {
+ "yes": {
+ "next_event": "win1",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event58",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event58": {
+ "is_end": false,
+ "text": "Нужно скорее действовать! Вы узнаете адрес Раскольникова и решаете отправиться к нему прямо сейчас. Поехать на повозке?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "win2",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "win3",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event59": {
+ "is_end": false,
+ "text": "Раскольников начинает разговор сам. Вы даёте Раскольникову лист бумаги для написания заявления и вступаете в разговор. Вам уже не особо важны все детали разговора, так как уверены в его виновности, но интересно послушать что расскажет вам ваш собеседник. Вдруг к вам в кабинет врывается маляр Микола и сознается в убийстве старухи. Он срывает ваш разговор с Раскольниковым, и вы отправляете Родиона домой. Выслушав Миколу, вы отпускаете и его. Вернуться к своим делам?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "win1",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event58",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "die9": {
+ "is_end": true,
+ "text": "Разве вы не знаете, что друг Разумихина, который хотел поговорить с вами - это Раскольников, который и есть виновный в убийстве? Быть может вы не читали эту книгу, а может всеми силами пытаетесь избежать разговора с Раскольниковым. Попробуйте ещё разок!"
+ },
+ "event60": {
+ "is_end": false,
+ "text": "Вы неспеша приходите в офис, и видите, что друг вашего родственника - это тот самый парень, что терял у вас в офисе сознание - Родион Романович Раскольников собственной персоной. Он сообщает, что хочет забрать свои вещи, которые он закладывал у покойной старушки-процентщицы. Начать разговор?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event61",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event62",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event61": {
+ "is_end": false,
+ "text": "В ходе беседы с Раскольниковым вы на 100% убеждаетесь в его виновности в произошедшем убийстве! Предъявить ему сейчас свои обвинения?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "die10",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event63",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "event62": {
+ "is_end": false,
+ "text": "Раскольников начинает разговор сам. В ходе беседы с Раскольниковым вы на 100% убеждаетесь в его виновности в произошедшем убийстве! Предъявить ему сейчас свои обвинения?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "die10",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event63",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "die10": {
+ "is_end": true,
+ "text": "Раскольников, услышав то, что вы ему сказали, трясётся в страхе и достает откуда-то топор. Он всегда, когда собирается к кому-то приехать поговорить, берёт топор с собой?? Хороший собеседник... До свиданья друг мой, до свиданья!"
+ },
+ "event63": {
+ "is_end": false,
+ "text": "Вы даёте Раскольникову лист бумаги для написания заявления о выкупе вещей и продолжаете вести с ним разговор. Вам уже не особо важны все детали разговора, так как уверены в его виновности, но интересно послушать что расскажет вам ваш собеседник. Вдруг к вам в кабинет врывается маляр Микола и сознается в убийстве старухи. Он срывает ваш разговор с Раскольниковым, и вы отправляете Родиона домой. Выслушав Миколу, вы отпускаете и его. Вернуться к своим делам?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "win1",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "event58",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "die_resource1_high": {
+ "is_end": true,
+ "text": "У вас чудесные отношения с коллегами! Начальство считает вас лучшим работником и вообще сладкой булочкой. Вы достойны большего, чем разбираться в убийстве какой-то никчемной старухи. Этим делом займется кто-то другой, а у вас как раз появится время насладиться своей неотразимостью"
+ },
+ "die_resource1_low": {
+ "is_end": true,
+ "text": "Вы совсем не уважаете своих коллег! Пропускаете общие посиделки, не ходите со всеми на двухминутку ненависти. Еще немножко, и престаненете верить, что важды два — пять. Вас вынудили перейти в другой отдел. Дела делами, но о людях забывать не стоит!"
+ },
+ "die_resource2_high": {
+ "is_end": true,
+ "text": "Вам показалось, что вы знаете о деле всё необходимое, все доказатества у вас на руках, пазл, наконец, сошелся. Увы, но вашему начальству так не показалось. Очевидно, вы незаслуженно занимаете свою должность. Этим преинтереснейшим делом займется кто-то более достойный. Но вы, Порфирий Петрович, главное не унывайте, не унывайте"
+ },
+ "die_resource2_low": {
+ "is_end": true,
+ "text": "Ваше расследование продвигается слишком медленно. Некий господин из Англии в интересной шляпе уже сумел разобраться во всех обстоятельствах убийства. Ваше начальство считет, что вы незаслуженно занимаете свою должность. Порфирий Петрович, главное не унывайте, не унывайте"
+ },
+ "die_resource3_high": {
+ "is_end": true,
+ "text": "Вы так устали, что буквально валитесь с ног. Решено. Не выходи из комнаты, не совершай ошибку. Ведь здесь есть мягкая, теплая, манящая кровать. Вы пришли к выводу, что проспать всю свою жизнь не такая уж и плохая идея. Ну что ж, спокойной ночи"
+ },
+ "die_resource3_low": {
+ "is_end": true,
+ "text": "Вы бодры, веселы. Бодры нужно говорить бодрее, но бодрее уже некуда. Энергия расприрает вас изнутри. Распирает, распирает. Упс, кажется, расперла. Чего только не бывает в нашем мире. А вы чего здесь делаете? История-то уже кончилась!"
+ },
+ "die_resource4_high": {
+ "is_end": true,
+ "text": "Монеточки буквально валятся у вас из карманов! Как бы кто не позарился на них. Следует быть осторожным, а то видали, чего в газетах пишут? На днях одного такого ограбили в темном переулке. Ни денег, ни шинели, ни жизни. Погодите-ка... Порфирий Петрович, так это же о вас!"
+ },
+ "die_resource4_low": {
+ "is_end": true,
+ "text": "У вас совсем не осталось средств на существование. Вот почему у кого-то есть всё и с излишествами, а у кого-то совсем ничего. Вот даже взять это проклятую старуху-процентщицу. Почему мы, честные люди, должны работать всю свою жизнь, а она абсолютно незаслуженно владела такими богатсвами? Где-то ведь и у вас был топорик..."
+ },
+ "chance_to_change_resource1_high": {
+ "is_end": false,
+ "text": "У вас завидные отношения с коллегами, но вот закрадывается мысль немного им напакастить. Пойдете на поводу у ваших темных мыслей и желаний?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "die_resource1_high",
+ "resource_change": {
+ "resource1": 1000,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "die_resource1_high",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "chance_to_change_resource2_high": {
+ "is_end": false,
+ "text": "Дела на удивление идут слишком хорошо. Можно выкроить время и немного расслабиться, помечтать о вечном. Как считаете?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "die_resource2_high",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 1000,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "die_resource2_high",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "chance_to_change_resource3_high": {
+ "is_end": false,
+ "text": "Мир вокруг плывет, и отнюдь не из-за жары, или какие там еще причины могут быть. Вы слишком устали. Может, пустить все на самотек? От часика отдаха никто не пострадает",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "die_resource3_high",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 1000,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "die_resource3_high",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "chance_to_change_resource4_high": {
+ "is_end": false,
+ "text": "В последнее время вы разжились неплохими деньгами. Слышал, детям из бедной семьи Мармеладовых не помешала бы помощь. Что вы об этом думаете, о милый, щедрый, добрый и благодушный следователь? Поможете несчастным?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "die_resource4_high",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 1000
+ }
+ },
+ "no": {
+ "next_event": "die_resource4_high",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "chance_to_change_resource1_low": {
+ "is_end": false,
+ "text": "Еще немного и ваши коллеги вас возненавидят. Может, стоит угостить их тыквенным пирогом, сливочным пивом?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "die_resource1_low",
+ "resource_change": {
+ "resource1": -1000,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "die_resource1_low",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "chance_to_change_resource2_low": {
+ "is_end": false,
+ "text": "Очень тяжко нынче работать. Расследование продвигается как черепаха, безуспешно пытающаяся уползти от голодного Робинзоно Крузо. Вроде, стараешься, стараешься, а ничего не выходит. Не хотите попросить помощи у Большого Брата",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "die_resource2_low",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": -1000,
+ "resource3": 0,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "die_resource2_low",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "chance_to_change_resource3_low": {
+ "is_end": false,
+ "text": "Такое чувство, что каждая клеточка организма ощущает дикий прилив энергии. Вам бы пробежаться, попрыгать, помахать коленями в позе бабочка. Что вы об этом думаете?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "die_resource3_low",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": -1000,
+ "resource4": 0
+ }
+ },
+ "no": {
+ "next_event": "die_resource3_low",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ },
+ "chance_to_change_resource4_low": {
+ "is_end": false,
+ "text": "Эх, был бы кошелек холодильником, в нем бы неприменно повесилась мышь. Но что за удача! Вы заметили совершенно точно никому не принадлежащую банкноту. Возьмете себе?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "die_resource4_low",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": -1000
+ }
+ },
+ "no": {
+ "next_event": "die_resource4_low",
+ "resource_change": {
+ "resource1": 0,
+ "resource2": 0,
+ "resource3": 0,
+ "resource4": 0
+ }
+ }
+ }
+ }
+ },
+
+ "resources": {
+ "resource1": {
+ "name" : "Уважение коллег",
+ "highest_value": 100,
+ "start_value": 50,
+ "lowest_value": 0
+ },
+ "resource2": {
+ "name" : "Прогресс в расследовании",
+ "highest_value": 100,
+ "start_value": 50,
+ "lowest_value": 0
+ },
+ "resource3": {
+ "name" : "Усталость",
+ "highest_value": 100,
+ "start_value": 50,
+ "lowest_value": 0
+ },
+ "resource4": {
+ "name" : "Деньги",
+ "highest_value": 100,
+ "start_value": 50,
+ "lowest_value": 0
+ }
+ }
+}
diff --git a/TESTS/plot_selection.json b/TESTS/plot_selection.json
new file mode 100644
index 0000000..b907511
--- /dev/null
+++ b/TESTS/plot_selection.json
@@ -0,0 +1,44 @@
+{
+ "plot_title": "plot_selection",
+ "declaring_character": "",
+ "events": {
+ "event1": {
+ "is_end": false,
+ "text": "Вы бы хотели жить в прошлом?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event2"
+ },
+ "no": {
+ "next_event": "myth_0"
+ }
+ }
+ },
+ "event2": {
+ "is_end": false,
+ "text": "Далёком-далёком прошлом?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "myth_1"
+ },
+ "no": {
+ "next_event": "myth_2"
+ }
+ }
+ },
+ "myth_0": {
+ "is_end": true,
+ "text": "0"
+ },
+ "myth_1": {
+ "is_end": true,
+ "text": "1"
+ },
+ "myth_2": {
+ "is_end": true,
+ "text": "2"
+ }
+ }
+}
\ No newline at end of file
diff --git a/TESTS/polt_selection.json b/TESTS/polt_selection.json
new file mode 100644
index 0000000..b907511
--- /dev/null
+++ b/TESTS/polt_selection.json
@@ -0,0 +1,44 @@
+{
+ "plot_title": "plot_selection",
+ "declaring_character": "",
+ "events": {
+ "event1": {
+ "is_end": false,
+ "text": "Вы бы хотели жить в прошлом?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "event2"
+ },
+ "no": {
+ "next_event": "myth_0"
+ }
+ }
+ },
+ "event2": {
+ "is_end": false,
+ "text": "Далёком-далёком прошлом?",
+ "mini_game" : 0,
+ "routes": {
+ "yes": {
+ "next_event": "myth_1"
+ },
+ "no": {
+ "next_event": "myth_2"
+ }
+ }
+ },
+ "myth_0": {
+ "is_end": true,
+ "text": "0"
+ },
+ "myth_1": {
+ "is_end": true,
+ "text": "1"
+ },
+ "myth_2": {
+ "is_end": true,
+ "text": "2"
+ }
+ }
+}
\ No newline at end of file
diff --git a/TryToMake.pro b/TryToMake.pro
new file mode 100644
index 0000000..e53d351
--- /dev/null
+++ b/TryToMake.pro
@@ -0,0 +1,57 @@
+QT += core gui
+
+greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
+
+CONFIG += c++11
+
+# You can make your code fail to compile if it uses deprecated APIs.
+# In order to do so, uncomment the following line.
+#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
+
+SOURCES += \
+ Button.cpp \
+ Global.cpp \
+ arithmetic_problem.cpp \
+ controller.cpp \
+ game.cpp \
+ gamewindow.cpp \
+ main.cpp \
+ mainwindow.cpp \
+ resultwindow.cpp \
+ sapper.cpp \
+ second_main.cpp \
+ settingswindow.cpp \
+ uml.cpp \
+ view.cpp \
+ windowwithgame.cpp
+
+HEADERS += \
+ Button.h \
+ Global.h \
+ arithmetic_problem.h \
+ controller.h \
+ game.h \
+ gamewindow.h \
+ global_struct_of_game.h \
+ json.hpp \
+ mainwindow.h \
+ resultwindow.h \
+ sapper.h \
+ second_main.h \
+ settingswindow.h \
+ uml.h \
+ view.h \
+ windowwithgame.h
+
+FORMS += \
+ gamewindow.ui \
+ mainwindow.ui \
+ resultwindow.ui \
+ sapper.ui \
+ settingswindow.ui \
+ windowwithgame.ui
+
+# Default rules for deployment.
+qnx: target.path = /tmp/$${TARGET}/bin
+else: unix:!android: target.path = /opt/$${TARGET}/bin
+!isEmpty(target.path): INSTALLS += target
diff --git a/TryToMake.pro.user b/TryToMake.pro.user
new file mode 100644
index 0000000..4d6384b
--- /dev/null
+++ b/TryToMake.pro.user
@@ -0,0 +1,1882 @@
+
+
+
+
+
+ EnvironmentId
+ {28ff7329-6564-4ff2-8d10-89f4a8f05e8f}
+
+
+ ProjectExplorer.Project.ActiveTarget
+ 0
+
+
+ ProjectExplorer.Project.EditorSettings
+
+ true
+ false
+ true
+
+ Cpp
+
+ CppGlobal
+
+
+
+ QmlJS
+
+ QmlJSGlobal
+
+
+ 2
+ UTF-8
+ false
+ 4
+ false
+ 80
+ true
+ true
+ 1
+ true
+ false
+ 0
+ true
+ true
+ 0
+ 8
+ true
+ 1
+ true
+ true
+ true
+ *.md, *.MD, Makefile
+ false
+ true
+
+
+
+ ProjectExplorer.Project.PluginSettings
+
+
+ true
+ true
+ true
+ true
+ true
+
+
+ 0
+ true
+
+ -fno-delayed-template-parsing
+
+ true
+ Builtin.Questionable
+
+ true
+ true
+ Builtin.DefaultTidyAndClazy
+ 4
+
+
+
+ true
+
+
+
+
+ ProjectExplorer.Project.Target.0
+
+ Desktop
+ Desktop Qt 5.15.2 MSVC2015 64bit
+ Desktop Qt 5.15.2 MSVC2015 64bit
+ qt.qt5.5152.win64_msvc2015_64_kit
+ 0
+ 0
+ 0
+
+ 0
+ C:\Users\Roman\Documents\build-TryToMake-Desktop_Qt_5_15_2_MSVC2015_64bit-Debug
+ C:/Users/Roman/Documents/build-TryToMake-Desktop_Qt_5_15_2_MSVC2015_64bit-Debug
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Отладка
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 2
+ 0
+
+
+ C:\Users\Roman\Documents\build-TryToMake-Desktop_Qt_5_15_2_MSVC2015_64bit-Release
+ C:/Users/Roman/Documents/build-TryToMake-Desktop_Qt_5_15_2_MSVC2015_64bit-Release
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Выпуск
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+
+
+ 0
+ C:\Users\Roman\Documents\build-TryToMake-Desktop_Qt_5_15_2_MSVC2015_64bit-Profile
+ C:/Users/Roman/Documents/build-TryToMake-Desktop_Qt_5_15_2_MSVC2015_64bit-Profile
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Профилирование
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+ 0
+
+ 3
+
+
+ 0
+ Развёртывание
+ Развёртывание
+ ProjectExplorer.BuildSteps.Deploy
+
+ 1
+
+ false
+ ProjectExplorer.DefaultDeployConfiguration
+
+ 1
+
+ dwarf
+
+ cpu-cycles
+
+
+ 250
+
+ -e
+ cpu-cycles
+ --call-graph
+ dwarf,4096
+ -F
+ 250
+
+ -F
+ true
+ 4096
+ false
+ false
+ 1000
+
+ true
+
+ false
+ false
+ false
+ false
+ true
+ 0.01
+ 10
+ true
+ kcachegrind
+ 1
+ 25
+
+ 1
+ true
+ false
+ true
+ valgrind
+
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 10
+ 11
+ 12
+ 13
+ 14
+
+
+ 2
+
+ Qt4ProjectManager.Qt4RunConfiguration:C:/Users/Roman/Documents/TryToMake/TryToMake.pro
+ C:/Users/Roman/Documents/TryToMake/TryToMake.pro
+ false
+ true
+ true
+ false
+ true
+ C:/Users/Roman/Documents/build-TryToMake-Desktop_Qt_5_15_2_MSVC2015_64bit-Debug
+
+ 1
+
+
+
+ ProjectExplorer.Project.Target.1
+
+ Desktop
+ Desktop Qt 5.15.2 MSVC2019 32bit
+ Desktop Qt 5.15.2 MSVC2019 32bit
+ qt.qt5.5152.win32_msvc2019_kit
+ 0
+ 0
+ 0
+
+ 0
+ C:\Users\Roman\Documents\build-TryToMake-Desktop_Qt_5_15_2_MSVC2019_32bit-Debug
+ C:/Users/Roman/Documents/build-TryToMake-Desktop_Qt_5_15_2_MSVC2019_32bit-Debug
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Отладка
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 2
+ 0
+
+
+ C:\Users\Roman\Documents\build-TryToMake-Desktop_Qt_5_15_2_MSVC2019_32bit-Release
+ C:/Users/Roman/Documents/build-TryToMake-Desktop_Qt_5_15_2_MSVC2019_32bit-Release
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Выпуск
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+
+
+ 0
+ C:\Users\Roman\Documents\build-TryToMake-Desktop_Qt_5_15_2_MSVC2019_32bit-Profile
+ C:/Users/Roman/Documents/build-TryToMake-Desktop_Qt_5_15_2_MSVC2019_32bit-Profile
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Профилирование
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+ 0
+
+ 3
+
+
+ 0
+ Развёртывание
+ Развёртывание
+ ProjectExplorer.BuildSteps.Deploy
+
+ 1
+
+ false
+ ProjectExplorer.DefaultDeployConfiguration
+
+ 1
+
+ dwarf
+
+ cpu-cycles
+
+
+ 250
+
+ -e
+ cpu-cycles
+ --call-graph
+ dwarf,4096
+ -F
+ 250
+
+ -F
+ true
+ 4096
+ false
+ false
+ 1000
+
+ true
+
+ false
+ false
+ false
+ false
+ true
+ 0.01
+ 10
+ true
+ kcachegrind
+ 1
+ 25
+
+ 1
+ true
+ false
+ true
+ valgrind
+
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 10
+ 11
+ 12
+ 13
+ 14
+
+
+ 2
+
+ ProjectExplorer.CustomExecutableRunConfiguration
+
+ false
+ true
+ false
+ true
+
+ 1
+
+
+
+ ProjectExplorer.Project.Target.2
+
+ Desktop
+ Desktop Qt 5.15.2 MSVC2019 64bit
+ Desktop Qt 5.15.2 MSVC2019 64bit
+ qt.qt5.5152.win64_msvc2019_64_kit
+ 0
+ 0
+ 0
+
+ 0
+ C:\Users\Roman\Documents\build-TryToMake-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug
+ C:/Users/Roman/Documents/build-TryToMake-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Отладка
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 2
+ 0
+
+
+ C:\Users\Roman\Documents\build-TryToMake-Desktop_Qt_5_15_2_MSVC2019_64bit-Release
+ C:/Users/Roman/Documents/build-TryToMake-Desktop_Qt_5_15_2_MSVC2019_64bit-Release
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Выпуск
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+
+
+ 0
+ C:\Users\Roman\Documents\build-TryToMake-Desktop_Qt_5_15_2_MSVC2019_64bit-Profile
+ C:/Users/Roman/Documents/build-TryToMake-Desktop_Qt_5_15_2_MSVC2019_64bit-Profile
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Профилирование
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+ 0
+
+ 3
+
+
+ 0
+ Развёртывание
+ Развёртывание
+ ProjectExplorer.BuildSteps.Deploy
+
+ 1
+
+ false
+ ProjectExplorer.DefaultDeployConfiguration
+
+ 1
+
+ dwarf
+
+ cpu-cycles
+
+
+ 250
+
+ -e
+ cpu-cycles
+ --call-graph
+ dwarf,4096
+ -F
+ 250
+
+ -F
+ true
+ 4096
+ false
+ false
+ 1000
+
+ true
+
+ false
+ false
+ false
+ false
+ true
+ 0.01
+ 10
+ true
+ kcachegrind
+ 1
+ 25
+
+ 1
+ true
+ false
+ true
+ valgrind
+
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 10
+ 11
+ 12
+ 13
+ 14
+
+
+ 2
+
+ ProjectExplorer.CustomExecutableRunConfiguration
+
+ false
+ true
+ false
+ true
+
+ 1
+
+
+
+ ProjectExplorer.Project.Target.3
+
+ Desktop
+ Desktop Qt 5.15.2 MinGW 32-bit
+ Desktop Qt 5.15.2 MinGW 32-bit
+ qt.qt5.5152.win32_mingw81_kit
+ 0
+ 0
+ 0
+
+ 0
+ C:\Users\Roman\Documents\build-TryToMake-Desktop_Qt_5_15_2_MinGW_32_bit-Debug
+ C:/Users/Roman/Documents/build-TryToMake-Desktop_Qt_5_15_2_MinGW_32_bit-Debug
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Отладка
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 2
+ 0
+
+
+ C:\Users\Roman\Documents\build-TryToMake-Desktop_Qt_5_15_2_MinGW_32_bit-Release
+ C:/Users/Roman/Documents/build-TryToMake-Desktop_Qt_5_15_2_MinGW_32_bit-Release
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Выпуск
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+
+
+ 0
+ C:\Users\Roman\Documents\build-TryToMake-Desktop_Qt_5_15_2_MinGW_32_bit-Profile
+ C:/Users/Roman/Documents/build-TryToMake-Desktop_Qt_5_15_2_MinGW_32_bit-Profile
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Профилирование
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+ 0
+
+ 3
+
+
+ 0
+ Развёртывание
+ Развёртывание
+ ProjectExplorer.BuildSteps.Deploy
+
+ 1
+
+ false
+ ProjectExplorer.DefaultDeployConfiguration
+
+ 1
+
+ dwarf
+
+ cpu-cycles
+
+
+ 250
+
+ -e
+ cpu-cycles
+ --call-graph
+ dwarf,4096
+ -F
+ 250
+
+ -F
+ true
+ 4096
+ false
+ false
+ 1000
+
+ true
+
+ false
+ false
+ false
+ false
+ true
+ 0.01
+ 10
+ true
+ kcachegrind
+ 1
+ 25
+
+ 1
+ true
+ false
+ true
+ valgrind
+
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 10
+ 11
+ 12
+ 13
+ 14
+
+
+ 2
+
+ ProjectExplorer.CustomExecutableRunConfiguration
+
+ false
+ true
+ false
+ true
+
+ 1
+
+
+
+ ProjectExplorer.Project.Target.4
+
+ Desktop
+ Desktop Qt 5.15.2 MinGW 64-bit
+ Desktop Qt 5.15.2 MinGW 64-bit
+ qt.qt5.5152.win64_mingw81_kit
+ 0
+ 0
+ 0
+
+ 0
+ C:\Users\Roman\Documents\build-TryToMake-Desktop_Qt_5_15_2_MinGW_64_bit-Debug
+ C:/Users/Roman/Documents/build-TryToMake-Desktop_Qt_5_15_2_MinGW_64_bit-Debug
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Отладка
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 2
+ 0
+
+
+ C:\Users\Roman\Documents\build-TryToMake-Desktop_Qt_5_15_2_MinGW_64_bit-Release
+ C:/Users/Roman/Documents/build-TryToMake-Desktop_Qt_5_15_2_MinGW_64_bit-Release
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Выпуск
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+
+
+ 0
+ C:\Users\Roman\Documents\build-TryToMake-Desktop_Qt_5_15_2_MinGW_64_bit-Profile
+ C:/Users/Roman/Documents/build-TryToMake-Desktop_Qt_5_15_2_MinGW_64_bit-Profile
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Профилирование
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+ 0
+
+ 3
+
+
+ 0
+ Развёртывание
+ Развёртывание
+ ProjectExplorer.BuildSteps.Deploy
+
+ 1
+
+ false
+ ProjectExplorer.DefaultDeployConfiguration
+
+ 1
+
+ dwarf
+
+ cpu-cycles
+
+
+ 250
+
+ -e
+ cpu-cycles
+ --call-graph
+ dwarf,4096
+ -F
+ 250
+
+ -F
+ true
+ 4096
+ false
+ false
+ 1000
+
+ true
+
+ false
+ false
+ false
+ false
+ true
+ 0.01
+ 10
+ true
+ kcachegrind
+ 1
+ 25
+
+ 1
+ true
+ false
+ true
+ valgrind
+
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 10
+ 11
+ 12
+ 13
+ 14
+
+
+ 2
+
+ ProjectExplorer.CustomExecutableRunConfiguration
+
+ false
+ true
+ false
+ true
+
+ 1
+
+
+
+ ProjectExplorer.Project.Target.5
+
+ WinRt.Device.Local
+ Qt 5.15.2 for UWP 32bit (MSVC 2019)
+ Qt 5.15.2 for UWP 32bit (MSVC 2019)
+ qt.qt5.5152.win64_msvc2019_winrt_x86_kit
+ 0
+ 0
+ 0
+
+ 0
+ C:\Users\Roman\Documents\build-TryToMake-Qt_5_15_2_for_UWP_32bit_MSVC_2019-Debug
+ C:/Users/Roman/Documents/build-TryToMake-Qt_5_15_2_for_UWP_32bit_MSVC_2019-Debug
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Отладка
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 2
+ 0
+
+
+ C:\Users\Roman\Documents\build-TryToMake-Qt_5_15_2_for_UWP_32bit_MSVC_2019-Release
+ C:/Users/Roman/Documents/build-TryToMake-Qt_5_15_2_for_UWP_32bit_MSVC_2019-Release
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Выпуск
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+
+
+ 0
+ C:\Users\Roman\Documents\build-TryToMake-Qt_5_15_2_for_UWP_32bit_MSVC_2019-Profile
+ C:/Users/Roman/Documents/build-TryToMake-Qt_5_15_2_for_UWP_32bit_MSVC_2019-Profile
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Профилирование
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+ 0
+
+ 3
+
+
+
+ true
+ Запуск windeployqt
+ WinRt.BuildStep.Deploy
+ --qmldir C:\Users\Roman\Documents\TryToMake
+ --qmldir C:\Users\Roman\Documents\TryToMake
+
+ 1
+ Развёртывание
+ Развёртывание
+ ProjectExplorer.BuildSteps.Deploy
+
+ 1
+
+ false
+ WinRTAppxDeployConfiguration
+
+ 1
+
+ dwarf
+
+ cpu-cycles
+
+
+ 250
+
+ -e
+ cpu-cycles
+ --call-graph
+ dwarf,4096
+ -F
+ 250
+
+ -F
+ true
+ 4096
+ false
+ false
+ 1000
+
+ true
+
+ false
+ false
+ false
+ false
+ true
+ 0.01
+ 10
+ true
+ kcachegrind
+ 1
+ 25
+
+ 1
+ true
+ false
+ true
+ valgrind
+
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 10
+ 11
+ 12
+ 13
+ 14
+
+
+ 2
+
+ ProjectExplorer.CustomExecutableRunConfiguration
+
+ false
+ true
+ false
+ true
+
+ 1
+
+
+
+ ProjectExplorer.Project.Target.6
+
+ WinRt.Device.Local
+ Qt 5.15.2 for UWP 64bit (MSVC 2015)
+ Qt 5.15.2 for UWP 64bit (MSVC 2015)
+ qt.qt5.5152.win64_msvc2015_winrt_x64_kit
+ 0
+ 0
+ 0
+
+ 0
+ C:\Users\Roman\Documents\build-TryToMake-Qt_5_15_2_for_UWP_64bit_MSVC_2015-Debug
+ C:/Users/Roman/Documents/build-TryToMake-Qt_5_15_2_for_UWP_64bit_MSVC_2015-Debug
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Отладка
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 2
+ 0
+
+
+ C:\Users\Roman\Documents\build-TryToMake-Qt_5_15_2_for_UWP_64bit_MSVC_2015-Release
+ C:/Users/Roman/Documents/build-TryToMake-Qt_5_15_2_for_UWP_64bit_MSVC_2015-Release
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Выпуск
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+
+
+ 0
+ C:\Users\Roman\Documents\build-TryToMake-Qt_5_15_2_for_UWP_64bit_MSVC_2015-Profile
+ C:/Users/Roman/Documents/build-TryToMake-Qt_5_15_2_for_UWP_64bit_MSVC_2015-Profile
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Профилирование
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+ 0
+
+ 3
+
+
+
+ true
+ Запуск windeployqt
+ WinRt.BuildStep.Deploy
+ --qmldir C:\Users\Roman\Documents\TryToMake
+ --qmldir C:\Users\Roman\Documents\TryToMake
+
+ 1
+ Развёртывание
+ Развёртывание
+ ProjectExplorer.BuildSteps.Deploy
+
+ 1
+
+ false
+ WinRTAppxDeployConfiguration
+
+ 1
+
+ dwarf
+
+ cpu-cycles
+
+
+ 250
+
+ -e
+ cpu-cycles
+ --call-graph
+ dwarf,4096
+ -F
+ 250
+
+ -F
+ true
+ 4096
+ false
+ false
+ 1000
+
+ true
+
+ false
+ false
+ false
+ false
+ true
+ 0.01
+ 10
+ true
+ kcachegrind
+ 1
+ 25
+
+ 1
+ true
+ false
+ true
+ valgrind
+
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 10
+ 11
+ 12
+ 13
+ 14
+
+
+ 2
+
+ ProjectExplorer.CustomExecutableRunConfiguration
+
+ false
+ true
+ false
+ true
+
+ 1
+
+
+
+ ProjectExplorer.Project.Target.7
+
+ WinRt.Device.Local
+ Qt 5.15.2 for UWP 64bit (MSVC 2019)
+ Qt 5.15.2 for UWP 64bit (MSVC 2019)
+ qt.qt5.5152.win64_msvc2019_winrt_x64_kit
+ 0
+ 0
+ 0
+
+ 0
+ C:\Users\Roman\Documents\build-TryToMake-Qt_5_15_2_for_UWP_64bit_MSVC_2019-Debug
+ C:/Users/Roman/Documents/build-TryToMake-Qt_5_15_2_for_UWP_64bit_MSVC_2019-Debug
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Отладка
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 2
+ 0
+
+
+ C:\Users\Roman\Documents\build-TryToMake-Qt_5_15_2_for_UWP_64bit_MSVC_2019-Release
+ C:/Users/Roman/Documents/build-TryToMake-Qt_5_15_2_for_UWP_64bit_MSVC_2019-Release
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Выпуск
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+
+
+ 0
+ C:\Users\Roman\Documents\build-TryToMake-Qt_5_15_2_for_UWP_64bit_MSVC_2019-Profile
+ C:/Users/Roman/Documents/build-TryToMake-Qt_5_15_2_for_UWP_64bit_MSVC_2019-Profile
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Профилирование
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+ 0
+
+ 3
+
+
+
+ true
+ Запуск windeployqt
+ WinRt.BuildStep.Deploy
+ --qmldir C:\Users\Roman\Documents\TryToMake
+ --qmldir C:\Users\Roman\Documents\TryToMake
+
+ 1
+ Развёртывание
+ Развёртывание
+ ProjectExplorer.BuildSteps.Deploy
+
+ 1
+
+ false
+ WinRTAppxDeployConfiguration
+
+ 1
+
+ dwarf
+
+ cpu-cycles
+
+
+ 250
+
+ -e
+ cpu-cycles
+ --call-graph
+ dwarf,4096
+ -F
+ 250
+
+ -F
+ true
+ 4096
+ false
+ false
+ 1000
+
+ true
+
+ false
+ false
+ false
+ false
+ true
+ 0.01
+ 10
+ true
+ kcachegrind
+ 1
+ 25
+
+ 1
+ true
+ false
+ true
+ valgrind
+
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 10
+ 11
+ 12
+ 13
+ 14
+
+
+ 2
+
+ ProjectExplorer.CustomExecutableRunConfiguration
+
+ false
+ true
+ false
+ true
+
+ 1
+
+
+
+ ProjectExplorer.Project.TargetCount
+ 8
+
+
+ ProjectExplorer.Project.Updater.FileVersion
+ 22
+
+
+ Version
+ 22
+
+
diff --git a/arithmetic_problem.cpp b/arithmetic_problem.cpp
new file mode 100644
index 0000000..051ab50
--- /dev/null
+++ b/arithmetic_problem.cpp
@@ -0,0 +1,14 @@
+#include "arithmetic_problem.h"
+
+extern bool result_mini_game;
+
+std::string GameArithmeticProblem::start_game () {
+ it = std::rand() % static_cast(j["number"]);
+ return j[std::to_string(it)]["problem"];
+ }
+
+void GameArithmeticProblem::check_answer(int ans) {
+ if (ans != j[std::to_string(it)]["answer"]) {
+ result_mini_game = false;
+ }
+}
diff --git a/arithmetic_problem.h b/arithmetic_problem.h
new file mode 100644
index 0000000..89b537d
--- /dev/null
+++ b/arithmetic_problem.h
@@ -0,0 +1,36 @@
+#pragma once
+
+#include
+#include
+#include "json.hpp"
+
+using json = nlohmann::json;
+
+
+ struct GameArithmeticProblem {
+ private:
+ json j;
+ std::size_t it = 0;
+ public:
+ GameArithmeticProblem(int k) {
+ k = k % 3;
+ std::string path;
+ if (k == 0) {
+ path = "C:\\Users\\Roman\\Documents\\Lastone\\PROBLEM_FOR_MINI_GAMES\\task_easy.json";
+ }
+ else if (k == 1) {
+ path = "C:\\Users\\Roman\\Documents\\Lastone\\PROBLEM_FOR_MINI_GAMES\\task_normal.json";
+ }
+ else {
+ path = "C:\\Users\\Roman\\Documents\\Lastone\\PROBLEM_FOR_MINI_GAMES\\task_hard.json";
+ }
+
+ std::ifstream problems(path);
+ problems >> j;
+ // TODO close and exceptions
+ }
+
+ std::string start_game ();
+
+ void check_answer(int ans);
+ };
diff --git a/arithmeticwindow.cpp b/arithmeticwindow.cpp
new file mode 100644
index 0000000..6379635
--- /dev/null
+++ b/arithmeticwindow.cpp
@@ -0,0 +1,34 @@
+#include
+#include "arithmeticwindow.h"
+#include "ui_arithmeticwindow.h"
+#include "arithmetic_problem.h"
+
+GameArithmeticProblem problem(rand());
+
+ArithmeticWindow::ArithmeticWindow(QWidget *parent) :
+ QDialog(parent),
+ ui(new Ui::ArithmeticWindow)
+{
+ ui->setupUi(this);
+ ui->label_2->setText(QString::fromStdString(problem.start_game()));
+ //ui->progressBar->setValue(55);
+ //ui->progressBar->setMinimum(0);
+ //ui->progressBar->setMaximum(100);
+ //QPropertyAnimation animation(ui->progressBar, "value");
+ //animation.setDuration(2000);
+ //animation.setStartValue(0);
+ //animation.setEndValue(100);
+}
+
+ArithmeticWindow::~ArithmeticWindow()
+{
+ delete ui;
+}
+
+
+void ArithmeticWindow::on_pushButton_clicked()
+{
+ std::string answ = ui->lineEdit->text().toStdString();
+ problem.check_answer(stoi(answ)); //Падает
+ this->close();
+}
diff --git a/arithmeticwindow.h b/arithmeticwindow.h
new file mode 100644
index 0000000..ae5d2d8
--- /dev/null
+++ b/arithmeticwindow.h
@@ -0,0 +1,25 @@
+#ifndef ARITHMETICWINDOW_H
+#define ARITHMETICWINDOW_H
+
+#include
+
+namespace Ui {
+class ArithmeticWindow;
+}
+
+class ArithmeticWindow : public QDialog
+{
+ Q_OBJECT
+
+public:
+ explicit ArithmeticWindow(QWidget *parent = nullptr);
+ ~ArithmeticWindow();
+
+private slots:
+ void on_pushButton_clicked();
+
+private:
+ Ui::ArithmeticWindow *ui;
+};
+
+#endif // ARITHMETICWINDOW_H
diff --git a/arithmeticwindow.ui b/arithmeticwindow.ui
new file mode 100644
index 0000000..4002471
--- /dev/null
+++ b/arithmeticwindow.ui
@@ -0,0 +1,81 @@
+
+
+ ArithmeticWindow
+
+
+
+ 0
+ 0
+ 584
+ 385
+
+
+
+ Dialog
+
+
+
+
+ 20
+ 140
+ 421
+ 121
+
+
+
+ Answer:
+
+
+
+
+
+ 220
+ 160
+ 321
+ 81
+
+
+
+
+
+
+ 220
+ 40
+ 311
+ 81
+
+
+
+ TextLabel
+
+
+
+
+
+ 410
+ 290
+ 91
+ 71
+
+
+
+ Ok
+
+
+
+
+
+ 20
+ 40
+ 171
+ 81
+
+
+
+ Question:
+
+
+
+
+
+
diff --git a/controller.cpp b/controller.cpp
new file mode 100644
index 0000000..1998bae
--- /dev/null
+++ b/controller.cpp
@@ -0,0 +1,15 @@
+#include "controller.h"
+#include
+
+bool Controller::move() {
+ std::string s;
+ std::cin >> s;
+ if (s[0] == 'y' || s[0] == 'Y') {
+ return true;
+ }
+ else if (s[0] == 'n' || s[0] == 'N') {
+ return false;
+ }
+ // TODO return an error to player if input is incorrect
+ return false;
+}
diff --git a/controller.h b/controller.h
new file mode 100644
index 0000000..b594757
--- /dev/null
+++ b/controller.h
@@ -0,0 +1,9 @@
+#pragma once
+
+#include "game.h"
+
+struct Controller {
+ static bool move();
+};
+
+
diff --git a/diagram_uml/myth_0.txt b/diagram_uml/myth_0.txt
new file mode 100644
index 0000000..61a5614
--- /dev/null
+++ b/diagram_uml/myth_0.txt
@@ -0,0 +1,28 @@
+@startuml
+
+object myth0
+object die
+object event1
+object win
+
+map myth0 {
+Вы всесильный Бог Дедлайнововремязакрыватель, у вас есть преданный друг Виталя.
+}
+
+map die {
+Направляясь утром к рабочему столу, вы запнулись о провод. Это была нелепая смерть.
+}
+
+map event1 {
+Виталя просит вас вместо учебы сходить с ним на футбол, играть против экономистов. Вы выполните просьбу Витали?
+}
+
+map win {
+Эта была великолепная игра! После нее вы успели закрыть все дедлайны, вы ведь все - таки Бог. Но даже и Богам необходимо иногда отдыхать.
+}
+
+myth0 ---> event1
+event1 ---> "yes" win
+event1 ---> "no" die
+
+@enduml
diff --git a/diagram_uml/myth_1.txt b/diagram_uml/myth_1.txt
new file mode 100644
index 0000000..6977940
--- /dev/null
+++ b/diagram_uml/myth_1.txt
@@ -0,0 +1,130 @@
+@startuml
+
+object myth1
+object die1
+object die2
+object die3
+object die4
+object die5
+object die6
+object event1
+object event10
+object event11
+object event12
+object event2
+object event3
+object event4
+object event5
+object event6
+object event7
+object event8
+object event9
+object win
+
+map myth1 {
+Вы величайший художник, скульптор и зодчий Афин, знаменитый Дедал, потомок Эрехтея.
+}
+
+map die1 {
+Ваша сестра пустила неприятные слухи о вас, и ваш авторитет был уничтожен! Вы умерли в нищите и безызвестности.
+}
+
+map die2 {
+Тал превзошел вас во всем, и никто больше не признает ваше величие! Вы умерли в нищите и безызвестности.
+}
+
+map die3 {
+Вас казнили.
+}
+
+map die4 {
+Вы очень соскучились по сыну и решили пойти за ним. Вы были убиты, когда пересекали море.
+}
+
+map die5 {
+Вы не заметили погони, и вы с Икаром были убиты.
+}
+
+map die6 {
+Ваши крылья забрызгало волнами, и они промокли! Вы с Икаром утонули.
+}
+
+map event1 {
+Ваша сестра Пердика просит взять сына своего, Тала в подмастерья. Исполните ее просьбу?
+}
+
+map event10 {
+Если лететь близко к солнцу, воск расстаит, если близко к воде, промокнут перья. Будете следить за сыном?
+}
+
+map event11 {
+Ваш сын поднялся слишком высоко, и воск на крыльях расплавился. Икар упал в воду. Броситесь спасать его?
+}
+
+map event12 {
+Икар узнал о ваших мыслях о побеге, и его захватила эта идея. Он хочет улететь, даже если вы останетесь. Поможете ему?
+}
+
+map event2 {
+Ваш племянник стал учеником другого мастера, и делает большие успехи! Стоит беспокоиться, что Тал может превзойти вас?
+}
+
+map event3 {
+Ваш племянник делает большие успехи! Поговаривают, что Тал может вас превзойти. Вас беспокоит это?
+}
+
+map event4 {
+Наставник вашего племянника завидывал его успехам, и решил убить Тала. Ваша сестра Пердика не смогла смириться с потерей сына и обвиняет вас в отказе взять его себе в подмастрерье. Возьмете на себя ответственность и извинитесь?
+}
+
+map event5 {
+У вас возникла мысль об убийстве возможного соперника, вашего племянника. Сделаете это?
+}
+
+map event6 {
+Пердика простила вас. Она просит взять в ученики второго своего сына. Исполните ее просьбу?
+}
+
+map event7 {
+Вас застали в момент совершения преступления! Вы ждете смертельного приговора. Может, сбежать?
+}
+
+map event8 {
+Вы успешно сбежали на остров Крит и прожили там долгое время. У вас родился сын Икар. Но жизнь на остове уже наскучила. Может, опять сбежать?
+}
+
+map event9 {
+Вы смастерили крылья из перьев и воска. Это отличное изобретение! Икар летит?
+}
+
+map win {
+Икар погиб, но вы успешно долетели до Сицилии и прожили там долгую, счастливую и богатую жизнь.
+}
+
+myth1 --> event1
+event1 --> "yes" event2
+event1 --> "no" event3
+event10 --> "yes" die5
+event10 --> "no" event11
+event11 --> "yes" die6
+event11 --> "no" win
+event12 --> "yes" event9
+event12 --> "no" die4
+event2 --> "yes" event5
+event2 --> "no" event4
+event3 --> "yes" event5
+event3 --> "no" die2
+event4 --> "yes" event6
+event4 --> "no" die1
+event5 --> "yes" event7
+event5 --> "no" die2
+event6 --> "yes" event3
+event6 --> "no" die1
+event7 --> "yes" event8
+event7 --> "no" die3
+event8 --> "yes" event9
+event8 --> "no" event12
+event9 --> "yes" event10
+event9 --> "no" die4
+
+@enduml
\ No newline at end of file
diff --git a/diagram_uml/myth_2.txt b/diagram_uml/myth_2.txt
new file mode 100644
index 0000000..1ad10b6
--- /dev/null
+++ b/diagram_uml/myth_2.txt
@@ -0,0 +1,522 @@
+@startuml
+
+object myth2
+object die0
+object die1
+object die10
+object die2
+object die3
+object die4
+object die5
+object die6
+object die7
+object die8
+object die9
+object event1
+object event10
+object event11
+object event12
+object event13
+object event14
+object event15
+object event16
+object event17
+object event18
+object event19
+object event2
+object event20
+object event21
+object event22
+object event23
+object event24
+object event25
+object event26
+object event27
+object event28
+object event29
+object event3
+object event30
+object event31
+object event32
+object event33
+object event34
+object event35
+object event36
+object event37
+object event38
+object event39
+object event4
+object event40
+object event41
+object event42
+object event43
+object event44
+object event45
+object event46
+object event47
+object event48
+object event49
+object event5
+object event50
+object event51
+object event52
+object event53
+object event54
+object event55
+object event56
+object event57
+object event58
+object event59
+object event6
+object event60
+object event61
+object event62
+object event63
+object event7
+object event8
+object event9
+object win1
+object win2
+object win3
+
+map myth2 {
+Вы знаменитый следователь Ленинградского округа города Санкт-Петербурга, старик 35 лет, Порфирий Петрович, опытный знаток своего дела.
+}
+
+map die0 {
+Это дело стало бы самым важным в вашей карьере. Жаль, но теперь вы обречены на вечную рутину.
+}
+
+map die1 {
+Один из ваших коллег заметил, что вы не собираетесь осматривать место преступления, это выглядит подозрительно! Вас отстранили от данного дела и ваш авторитет упал. Вы отправляетесь работать в уездный город N. Поздравляем!
+}
+
+map die10 {
+Раскольников, услышав то, что вы ему сказали, трясётся в страхе и достает откуда-то топор. Он всегда, когда собирается к кому-то приехать поговорить, берёт топор с собой?? Хороший собеседник…До свиданья друг мой, до свиданья!
+}
+
+map die2 {
+Вы решили оставить всё как есть. Незнание - сила! Что ж, а война - это мир: только вы вышли со двора, как на вас напали наблюдавшие за вами бандиты. Вы попрощались со своей шинелью и жизнью. Ну а что же Раскольников спрятал под камнем? Впрочем, это уже совсем другая история.
+}
+
+map die3 {
+Вы прибыли как раз вовремя и встретили Раскольникова с собранными в путь пожитками в дверях квартиры. Раскольников увидев вас в очередной раз не на шутку испугался, в панике выхватил неизвестно откуда ножик и ткнул вас прямо в сердце. Да, человек смертен, но это было бы еще полбеды. Плохо то, что он иногда внезапно смертен, вот в чем фокус!
+}
+
+map die4 {
+Вы прекрасно прогулялись по солнечному Петербургу, но придя по адресу никого не обнаружили. Дверь в квартиру открыта нараспашку, ни вещей, ни следов Родиона. Похоже ваши догадки насчёт него подтвердились, но уже слишком поздно: Раскольников сбежал. Ну ничего страшного! В следующий раз действуйте более профессионально!
+}
+
+map die5 {
+Вы купили острую шаверму и съев её вышли из матрицы. Похоже ваш желудок не был готов к такому. Вас отправляют в больницу лечить последствия, вызванные изжогой. К сожалению, пришлось отстранить вас от порученного дела до лучших времён. Поправляйтесь!
+}
+
+map die6 {
+Благодаря вашему хорошему дару убеждения Миколка отправился на каторгу в Сибирь. Ваши способности хорошо оценило вышестоящее начальство и повысило вас в должности. Поздравляем! Теперь вы будете выбивать признания из невиновных!
+}
+
+map die7 {
+Вы не собираетесь разговаривать ни с Раскольниковым, ни с Разумихиным. Что им вообще надо? У вас же выходной! Вы гоните их прочь из квартиры и наслаждаетесь тишиной и спокойствием. Вот и сказочки конец, а кто слушал - молодец!
+}
+
+map die8 {
+Раскольников, услышав то, что вы ему сказали, трясётся в страхе и достает откуда-то топор. Он всегда, когда собирается к кому-то приехать поговорить, берёт топор с собой?? Хороший собеседник…Разумихин в шоке от увиденного, а вы в раю. Конец.
+}
+
+map die9 {
+Разве вы не знаете, что друг Разумихина, который хотел поговорить с вами - это Раскольников, который и есть виновный в убийстве? Быть может вы не читали эту книгу, а может всеми силами пытаетесь избежать разговора с Раскольниковым. Попробуйте ещё разок!
+}
+
+map event1 {
+Вам было поручено разобраться в одном громком деле – убийство старухи-процентщицы. Возьмётесь ли вы за него?
+}
+
+map event10 {
+Прибыв на место, возле дома вы встречаетесь со своими коллегами, поговорить с ними?
+}
+
+map event11 {
+Ваши коллеги узнали что во время убийства в доме работали некие маляры, возможно они что-то знают или может даже замешаны в этом… Осмотреть дом старушки?
+}
+
+map event12 {
+Правильно! Необходимо соблюдать социальную дистанцию. Осмотреть дом старушки?
+}
+
+map event13 {
+Всё, чтo нажито непoсильным трудoм, всё пoгиблo! Комната старухи разграблена. С полученными сведениями пора вернуться в офис. Отправиться туда на повозке?
+}
+
+map event14 {
+Прибыв на место и обсуждая с коллегами подробности дела, вы замечаете как один из посетителей офиса падает в обморок во время вашей беседы. Совпадение? Не думаю. Нужно взять это на заметку. Выяснить кто этот человек?
+}
+
+map event15 {
+Отпустив беднягу домой, вы узнаете, что это был Родион Романович Раскольников, данный гражданин всего-навсего задолжал денег квартирной хозяйке. Возможно стоит как-нибудь навести справки о нём. Проследить за Родионом?
+}
+
+map event16 {
+Вы решили не тратить сейчас время на данного гражданина, ведь скоро в офис приведут главных свидетелей (а может и подозреваемых?) - маляров. Пока вы их ожидаете сходить за шавермой, что продается напротив офиса?
+}
+
+map event17 {
+Слишком долго и далеко идет Родион и вы вслед за ним. Вы заметили, что он часто оглядывается… Всё больше подозрений! Продолжить слежку?
+}
+
+map event18 {
+Вы чуть было не потеряли Родиона из виду, но во время догнали его. Молодой человек остановился в безлюдном дворе, спрятал что-то под камень. Выйти из укрытия и поймать парня?
+}
+
+map event19 {
+Вы вышли из укрытия, но Раскольников заметил вас и побежал. Бежать за ним?
+}
+
+map event2 {
+У вас остались мелкие незаконченные дела на работе, которые не терпят отлагательств. Разобраться сначала с ними?
+}
+
+map event20 {
+Он оказался слишком быстрым, а вы увы нет. Вернуться в тот самый двор и проверить что Раскольников спрятал под камнем?
+}
+
+map event21 {
+Вы обнаружили кошелек с деньгами и драгоценности, скорее всего принадлежащие старухе. Сомнений быть не может, Родион Романович Раскольников - главный подозреваемый! Вы решаете вернуться в офис и узнать его адрес. Поехать на повозке?
+}
+
+map event22 {
+Вы прибыли в офис и узнали адрес проживания Раскольникова. Отправиться к нему на повозке?
+}
+
+map event23 {
+Вы решили не тратить силы на весёлые гонки. Проверить что Раскольников спрятал под камнем?
+}
+
+map event24 {
+Подойдя к ларьку с шавермой вы замечаете перед собой того самого посетителя офиса, что потерял сознание. Опять совпадение? Окликнуть его?
+}
+
+map event25 {
+Молодой человек обернулся, увидел вас, пробормотал что-то про своё самочувствие и поспешил удалиться. Всё-таки он ведёт себя странно… Но война войной, а обед по расписанию. Время сделать заказ. Какой огромный выбор шавермы! Большая, маленькая, классическая, острая…Взять большую?
+}
+
+map event26 {
+Классическая или острая? Съешь обычную шаверму — и сказке конец. Ты проснёшься в своей постели и поверишь, что это был сон. Съешь острую — войдёшь в страну чудес. Я покажу тебе, глубока ли кроличья нора. Купить острую?
+}
+
+map event27 {
+Вы не стали беспокоить его и дождались своей очереди. Время сделать заказ. Какой огромный выбор шавермы! Большая, маленькая, классическая, острая…Взять большую?
+}
+
+map event28 {
+Вы взяли маленькую. Классическая или острая? Съешь обычную шаверму — и сказке конец. Ты проснёшься в своей постели и поверишь, что это был сон. Съешь острую — войдёшь в страну чудес. Я покажу тебе, глубока ли кроличья нора. Купить острую?
+}
+
+map event29 {
+Вы взяли классическую. Может взять что-нибудь для своих коллег? Они точно не откажутся от такого. Три маленьких классических, по одной каждому. Купить?
+}
+
+map event3 {
+Ну как же так, Порфирий Петрович! Не разочаровывайте коллег! Может, все-таки возьметесь за дело?
+}
+
+map event30 {
+Вы направились со своим богатством обратно в офис, но заметили трёх нищих, чьи пустые и грустные глаза смотрели на вашу покупку. Может угостить их?
+}
+
+map event31 {
+Вы отдали три купленные для коллег шавермы. Нищие поблагодарили вас, их глаза стали живыми и ясными, улыбки окрасили их серые лица. Они тотчас принялись есть. Вдруг один из них резко нахмурился, его лицо стало серьёзным и он произнес: "Я был там, Порфирий Петрович. Я был там 3000 лет назад… …когда Родион Раскольников обрёл Топор. Я видел сам, как старуха-процентщица дала слабину. Тот парень, что стоял с вами у ларька... Он убийца!" Вы не на шутку перепугались и удивились. Откуда нищий знает как вас зовут? Что за бред он несёт? Расспросить его поподробнее?
+}
+
+map event32 {
+Только вы собирались задать нищему вопрос, как он вскочил держа в руку ещё недоеденную шаверму и с криками "Моя прелесть!" убежал в закат. Другие два его сотрапезника ничего не смогли вам сообщить и не понимали о чём идёт речь. Странно это всё, но пора возвращаться назад. Вернувшись в офис вы собрали своих коллег и к вам в кабинет привели тех самых маляров. Начать разговор?
+}
+
+map event33 {
+Сумасшедшие для Питера не редкость! Вы решили не тратить своё время, ведь пора возвращаться назад. Вернувшись в офис вы собрали своих коллег и к вам в кабинет привели тех самых маляров. Начать разговор?
+}
+
+map event34 {
+Не время для благотворительности! Пора возвращаться назад. Вернувшись в офис вы отобедали вместе со своими коллегами и к вам в кабинет привели тех самых маляров. Начать разговор?
+}
+
+map event35 {
+Копейка рубль бережёт! И время - деньги! Пора возвращаться назад. Вернувшись в офис вы отобедали, собрали своих коллег и к вам в кабинет привели тех самых маляров. Начать разговор?
+}
+
+map event36 {
+Пока вы ожидали свидетелей, вы поделились с коллегами своими мыслями насчёт дела. Спустя некоторое время к вам в кабинет привели тех самых маляров. Начать разговор?
+}
+
+map event37 {
+Вы решили не тратить сейчас время на данного гражданина, ведь с минуты на минуту в офис приведут главных свидетелей (а может и подозреваемых?) - маляров. Отправиться в офис на повозке?
+}
+
+map event38 {
+Вернувшись в офис вы собрали своих коллег и к вам в кабинет привели тех самых маляров. Начать разговор?
+}
+
+map event39 {
+Вы выждали время и Раскольников благополучно ушел. Проверить что Раскольников спрятал под камнем?
+}
+
+map event4 {
+Разгребая дела, вы наткнулись на одну любопытную статью в местной газете. Прочитать её?
+}
+
+map event40 {
+Вы выждали время и Раскольников благополучно ушел. Проверить что Раскольников спрятал под камнем?
+}
+
+map event41 {
+Нет: Вашим коллегам показалось это странным, ведь обычно вы охотник до разного рода болтовни. Хватит лениться, пора выполнять свою работу! В разговоре вы заметили что один из маляров - Миколка-красильщик ведёт себя неуверенно, его глаза постоянно бегают из стороны в сторону, будто он что-то скрывает. Спросить его об этом?
+}
+
+map event42 {
+В разговоре вы заметили что один из маляров - Миколка-красильщик ведёт себя неуверенно, его глаза постоянно бегают из стороны в сторону, будто он что-то скрывает. Спросить его об этом?
+}
+
+map event43 {
+Миколка сознаётся что нашёл серёжки и присвоил их себе. Он рассказывает вам всё что знает о том роковом дне убийства. Возможно Миколка не только вор, но и убийца? Заставить его признаться в убийстве?
+}
+
+map event44 {
+Вы решили не акцентировать внимание на этом и продолжили разговор. К сожалению ничего полезного вы не узнали, а скорее наоборот больше запутались. Рабочий день подходит к концу. Самое время отправиться домой. Вперёд?
+}
+
+map event45 {
+Оказывается это было не так сложно. В страхе Миколка сознаётся в убийстве. В этом признании вы видите его желание искупить грехи. Ну-с…Похоже дело закрыто?
+}
+
+map event46 {
+Вы читаете людей как открытую книгу и понимаете что этот паренёк не может быть убийцей. Вы довольны, что он сознался в содеянной краже и раскаивается, но к сожалению ничего нового из разговора со свидетелями вы не узнали, а скорее наоборот больше запутались. Рабочий день подходит к концу. Самое время отправиться домой. Вперёд?
+}
+
+map event47 {
+Раз не вперёд, тогда назад - домой! Вы вернулись домой, почитали газеты, поужинали. Слишком рано чтоб идти спать, тем более завтра у вас выходной…Хм...У вас имеется в собственности неплохая повозка да лошадь. Может потаксовать для души?
+}
+
+map event48 {
+Вы вернулись домой, почитали газеты, поужинали. Слишком рано чтоб идти спать, тем более завтра у вас выходной…Хм...У вас имеется в собственности неплохая повозка да лошадь. Может потаксовать для души?
+}
+
+map event49 {
+Сегодня вечером было не так много клиентов, но всё же вы заработали неплохие деньги. На часах полночь. Вернуться домой и лечь спать?
+}
+
+map event5 {
+Ну-с, самое время погрузиться в дело об убийстве старушки. Отправиться прямо сейчас на место преступления?
+}
+
+map event50 {
+Прибыв домой, вы легли на кровать и тотчас уснули… Настало утро. Проснуться?
+}
+
+map event51 {
+Что за мысли… Лучше хорошенько отдохнуть перед рабочим днём. Вы легли на кровать и стали читать книжку, но спустя четверть часа не заметили как уснули… Настало утро. Проснуться?
+}
+
+map event52 {
+Вы решили поработать ещё пару часов и не пожалели об этом! Вы отлично заработали! Но всё же пора возвращаться назад. Прибыв домой, вы легли на кровать и тотчас уснули… Настало утро. Проснуться?
+}
+
+map event53 {
+Проснувшись и позавтракав, к вам ни с того, ни с сего заявляется Разумихин - ваш дальний родственник и…кто бы вы думали? И тот самый молодой человек, что потерял сознание у вас в офисе - Родион Романович Раскальников. Интересно, что они хотят…Побеседовать с Родионом?
+}
+
+map event54 {
+Вы решили поспать подольше. До обеда. Во входных дверях вы находите записку. Оказывается, пока вы спали к вам заезжал Разумихин - ваш дальний родственник и его друг, у которого было какое-то срочное дело к вам. В записке Разумихин просил заглянуть вас в офис, где уже ждёт вас его друг. Вперёд?
+}
+
+map event55 {
+В ходе беседы с Раскольниковым вы на 100% убеждаетесь в его виновности в произошедшем убийстве! Предъявить ему сейчас свои обвинения?
+}
+
+map event56 {
+Раскольников хочет забрать свои вещи, которые он закладывал у покойной старушки-процентщицы. Что ж, вы с радостью приглашаете его к себе завтра в офис чтобы подать заявление о выкупе вещей. Вы заканчиваете беседу, провожаете гостей и наслаждаетесь своим выходным днём. На следующий день будучи уже в офисе на работе к вам заявляется в назначенный час ваш новый друг. Начать разговор?
+}
+
+map event57 {
+Вы даёте Раскольникову лист бумаги для написания заявления и начинаете разговор. Вам уже не особо важны все детали разговора, так как уверены в его виновности, но интересно послушать что расскажет вам ваш собеседник. Вдруг к вам в кабинет врывается маляр Микола и сознается в убийстве старухи. Он срывает ваш разговор с Раскольниковым, и вы отправляете Родиона домой. Выслушав Миколу, вы отпускаете и его. Вернуться к своим делам?
+}
+
+map event58 {
+Нужно скорее действовать! Вы узнаете адрес Раскольникова и решаете отправиться к нему прямо сейчас. Поехать на повозке?
+}
+
+map event59 {
+Раскольников начинает разговор сам. Вы даёте Раскольникову лист бумаги для написания заявления и вступаете в разговор. Вам уже не особо важны все детали разговора, так как уверены в его виновности, но интересно послушать что расскажет вам ваш собеседник. Вдруг к вам в кабинет врывается маляр Микола и сознается в убийстве старухи. Он срывает ваш разговор с Раскольниковым, и вы отправляете Родиона домой. Выслушав Миколу, вы отпускаете и его. Вернуться к своим делам?
+}
+
+map event6 {
+Интересная статейка… «Обыкновенные люди», «необыкновенные»… Кто же такой автор этой статьи? Нужно взять это на заметку. А теперь самое время погрузиться в дело об убийстве старушки. Отправиться прямо сейчас на место преступления?
+}
+
+map event60 {
+Вы неспеша приходите в офис, и видите, что друг вашего родственника - это тот самый парень, что терял у вас в офисе сознание - Родион Романович Раскольников собственной персоной. Он сообщает, что хочет забрать свои вещи, которые он закладывал у покойной старушки-процентщицы. Начать разговор?
+}
+
+map event61 {
+В ходе беседы с Раскольниковым вы на 100% убеждаетесь в его виновности в произошедшем убийстве! Предъявить ему сейчас свои обвинения?
+}
+
+map event62 {
+Раскольников начинает разговор сам. В ходе беседы с Раскольниковым вы на 100% убеждаетесь в его виновности в произошедшем убийстве! Предъявить ему сейчас свои обвинения?
+}
+
+map event63 {
+Вы даёте Раскольникову лист бумаги для написания заявления о выкупе вещей и продолжаете вести с ним разговор. Вам уже не особо важны все детали разговора, так как уверены в его виновности, но интересно послушать что расскажет вам ваш собеседник. Вдруг к вам в кабинет врывается маляр Микола и сознается в убийстве старухи. Он срывает ваш разговор с Раскольниковым, и вы отправляете Родиона домой. Выслушав Миколу, вы отпускаете и его. Вернуться к своим делам?
+}
+
+map event7 {
+С остальными делами покончено, самое время погрузиться в дело об убийстве старушки. Отправиться прямо сейчас на место преступления?
+}
+
+map event8 {
+Место преступления - дом на набережной канала Грибоедова, путь неблизкий. Отправиться туда на повозке?
+}
+
+map event9 {
+Вы решили не спешить на место преступления, ведь необходимо тщательно подготовиться! Вы изучили всю известную на данный момент информацию и только теперь готовы в путь. Место преступления - дом на набережной канала Грибоедова, путь неблизкий. Отправиться туда на повозке?
+}
+
+map win1 {
+4 days later... Вы узнали, где живёт Раскольников и неспеша отправляетесь к нему… Вы сталкиваетесь с Родионом в дверях. Молодой человек вздрагивает на мгновенье, но тут же берёт над собой контроль. Он приглашает вас присесть и садиться рядом. Вы закуриваете папироску и начинаете непростой разговор... Раскольников сам не свой... "Так… кто же… убил?.. – спросил он, не выдержав, задыхающимся голосом.", "Как кто убил?... да вы убили, Родион Романыч!"
+}
+
+map win2 {
+Прибыв по адресу вы сталкиваетесь с Родионом в дверях. Молодой человек вздрагивает на мгновенье, но тут же берёт над собой контроль. Он приглашает вас присесть и садиться рядом. Вы закуриваете папироску и начинаете непростой разговор...Раскольников сам не свой... "Так… кто же… убил?.. – спросил он, не выдержав, задыхающимся голосом.", "Как кто убил?... да вы убили, Родион Романыч!"
+}
+
+map win3 {
+Не куда спешить! Раскольников думает, что вы теперь подозреваете Миколу, так что можно прогуляться неторопясь и обдумать разговор с Родионом… Прибыв по адресу вы сталкиваетесь с Родионом в дверях. Молодой человек вздрагивает на мгновенье, но тут же берёт над собой контроль. Он приглашает вас присесть и садиться рядом. Вы закуриваете папироску и начинаете непростой разговор...Раскольников сам не свой... "Так… кто же… убил?.. – спросил он, не выдержав, задыхающимся голосом.", "Как кто убил?... да вы убили, Родион Романыч!"
+}
+
+myth2 --> event1
+event1 --> "yes" event2
+event1 --> "no" event3
+event10 --> "yes" event11
+event10 --> "no" event12
+event11 --> "yes" event13
+event11 --> "no" die1
+event12 --> "yes" event13
+event12 --> "no" die1
+event13 --> "yes" event14
+event13 --> "no" event14
+event14 --> "yes" event15
+event14 --> "no" event16
+event15 --> "yes" event17
+event15 --> "no" event16
+event16 --> "yes" event24
+event16 --> "no" event36
+event17 --> "yes" event18
+event17 --> "no" event37
+event18 --> "yes" event19
+event18 --> "no" event39
+event19 --> "yes" event20
+event19 --> "no" event23
+event2 --> "yes" event4
+event2 --> "no" event5
+event20 --> "yes" event21
+event20 --> "no" die2
+event21 --> "yes" event22
+event21 --> "no" event22
+event22 --> "yes" die3
+event22 --> "no" die4
+event23 --> "yes" event21
+event23 --> "no" die2
+event24 --> "yes" event25
+event24 --> "no" event27
+event25 --> "yes" event26
+event25 --> "no" event28
+event26 --> "yes" die5
+event26 --> "no" event29
+event27 --> "yes" event26
+event27 --> "no" event28
+event28 --> "yes" die5
+event28 --> "no" event29
+event29 --> "yes" event30
+event29 --> "no" event35
+event3 --> "yes" event2
+event3 --> "no" die0
+event30 --> "yes" event31
+event30 --> "no" event34
+event31 --> "yes" event32
+event31 --> "no" event33
+event32 --> "yes" event42
+event32 --> "no" event41
+event33 --> "yes" event42
+event33 --> "no" event41
+event34 --> "yes" event42
+event34 --> "no" event41
+event35 --> "yes" event42
+event35 --> "no" event41
+event36 --> "yes" event42
+event36 --> "no" event41
+event37 --> "yes" event38
+event37 --> "no" event38
+event38 --> "yes" event42
+event38 --> "no" event41
+event39 --> "yes" event40
+event39 --> "no" die2
+event4 --> "yes" event6
+event4 --> "no" event7
+event40 --> "yes" event38
+event40 --> "no" event38
+event41 --> "yes" event43
+event41 --> "no" event44
+event42 --> "yes" event43
+event42 --> "no" event44
+event43 --> "yes" event45
+event43 --> "no" event46
+event44 --> "yes" event48
+event44 --> "no" event47
+event45 --> "yes" die6
+event45 --> "no" event46
+event46 --> "yes" event48
+event46 --> "no" event47
+event47 --> "yes" event49
+event47 --> "no" event50
+event48 --> "yes" event49
+event48 --> "no" event51
+event49 --> "yes" event50
+event49 --> "no" event52
+event5 --> "yes" event8
+event5 --> "no" event9
+event50 --> "yes" event53
+event50 --> "no" event54
+event51 --> "yes" event53
+event51 --> "no" event54
+event52 --> "yes" event53
+event52 --> "no" event54
+event53 --> "yes" event55
+event53 --> "no" die7
+event54 --> "yes" event60
+event54 --> "no" die9
+event55 --> "yes" die8
+event55 --> "no" event56
+event56 --> "yes" event57
+event56 --> "no" event59
+event57 --> "yes" win1
+event57 --> "no" event58
+event58 --> "yes" win2
+event58 --> "no" win3
+event59 --> "yes" win1
+event59 --> "no" event58
+event6 --> "yes" event8
+event6 --> "no" event9
+event60 --> "yes" event61
+event60 --> "no" event62
+event61 --> "yes" die10
+event61 --> "no" event63
+event62 --> "yes" die10
+event62 --> "no" event63
+event63 --> "yes" win1
+event63 --> "no" event58
+event7 --> "yes" event8
+event7 --> "no" event9
+event8 --> "yes" event10
+event8 --> "no" event10
+event9 --> "yes" event10
+event9 --> "no" event10
+
+@enduml
\ No newline at end of file
diff --git a/game.cpp b/game.cpp
new file mode 100644
index 0000000..f65defe
--- /dev/null
+++ b/game.cpp
@@ -0,0 +1,142 @@
+#include "game.h"
+
+#include
+
+bool result_mini_game = true;
+
+void Game::to_uml(int k) {
+ std::string path = "../diagram_uml/myth_" + std::to_string(k) + ".txt";
+ translation_from_json_to_uml(j, path);
+}
+
+void Game::change_resources(bool f) {
+ if (it.empty() || j["events"][it]["is_end"]){
+ return;
+ }
+ std::string b;
+ if (f) {
+ b = "yes";
+ }
+ else {
+ b = "no";
+ }
+ for (std::size_t i = 0; i < resource.size(); i++) {
+ resource[i] += static_cast(j["events"][it]["routes"][b]["resource_change"]["resource" + std::to_string(i + 1)]);
+ }
+ for (std::size_t i = 0; i < resource.size(); i++) {
+ if (resource[i] > resource_high || resource[i] < resource_low) {
+ resource[i] = j["resources"]["resource" + std::to_string(i + 1)]["start_value"];
+ }
+ }
+}
+
+bool Game::check_resources() {
+ for (std::size_t i = 0; i < resource.size(); i++) {
+ if (resource[i] >= j["resources"]["resource" + std::to_string(i + 1)]["highest_value"]) {
+ copy_it = it;
+ it = "chance_to_change_resource" + std::to_string(i + 1) + "_high";
+ return false;
+ }
+ }
+ for (std::size_t i = 0; i < resource.size(); i++) {
+ if (resource[i] <= j["resources"]["resource" + std::to_string(i + 1)]["lowest_value"]) {
+ copy_it = it;
+ it = "chance_to_change_resource" + std::to_string(i + 1) + "_low";
+ return false;
+ }
+ }
+
+ return true;
+}
+
+void Game::check_end() {
+ for (std::size_t i = 0; i < resource.size(); i++) {
+ if (resource[i] >= j["resources"]["resource" + std::to_string(i + 1)]["highest_value"]) {
+ it = "die_resource" + std::to_string(i + 1) + "_high";
+ return;
+ }
+ }
+ for (std::size_t i = 0; i < resource.size(); i++) {
+ if (resource[i] <= j["resources"]["resource" + std::to_string(i + 1)]["lowest_value"]) {
+ it = "die_resource" + std::to_string(i + 1) + "_low";
+ return;
+ }
+ }
+
+ if (!copy_it.empty()) {
+ it = copy_it;
+ copy_it.clear();
+ }
+}
+
+bool Game::is_game_ended() {
+ if (it.empty()) {
+ it = "event1";
+ }
+ return j["events"][it]["is_end"];
+}
+
+void Game::move(bool choice) {
+ if (it.empty()) {
+ it = "event1";
+ }
+ else {
+ if (choice) {
+ it = j["events"][it]["routes"]["yes"]["next_event"];
+ }
+ else {
+ it = j["events"][it]["routes"]["no"]["next_event"];
+ }
+ }
+}
+
+std::string Game::start_game() {
+ for (std::size_t i = 0; i < resource.size(); i++) {
+ resource[i] = j["resources"]["resource" + std::to_string(i + 1)]["start_value"];
+ }
+ for (std::size_t i = 0; i < resource.size(); i++) {
+ name_resource[i] = j["resources"]["resource" + std::to_string(i + 1)]["name"];
+ }
+ it = "event1";
+ return j["declaring_character"];
+}
+
+std::string Game::get_story() {
+ return j["events"][it]["text"];
+}
+
+int Game::mini_game() {
+ return j["events"][it]["mini_game"];
+}
+
+void Game::loss_in_mini_game(int k) {
+ if (k == arithmetic_problem) {
+ it = "die_arithmetic_problem";
+ }
+ else if (k == saper) {
+ it = "die_saper";
+ }
+}
+
+
+void Game::change_plot(int k) {
+ std::string path;
+ if (k == -1) {
+ path = "C:\\Users\\Roman\\Documents\\Lastone\\TESTS\\plot_selection.json";
+ }
+ else {
+ path = "C:\\Users\\Roman\\Documents\\Lastone\\TESTS\\myth_" + std::to_string(k) + ".json";
+ }
+ std::ifstream plots(path);
+ plots >> j;
+ plots.close();
+ // TODO close and exceptions
+}
+
+std::vector Game::resources() {
+ return resource;
+}
+
+std::vector Game::name_resources() {
+ return name_resource;
+}
diff --git a/game.h b/game.h
new file mode 100644
index 0000000..3dd4e90
--- /dev/null
+++ b/game.h
@@ -0,0 +1,76 @@
+#pragma once
+
+#include
+#include
+#include
+#include
+#include
+#include "uml.h"
+#include "json.hpp"
+
+#include
+
+using json = nlohmann::json;
+
+struct Game {
+private:
+ const int resource_high = 900;
+ const int resource_low = -900;
+ const int amount_of_resources = 4;
+ std::vector resource;
+ std::vector name_resource;
+ json j;
+ std::string it;
+ std::string copy_it;
+public:
+ const int arithmetic_problem = 1;
+ const int saper = 2;
+ void loss_in_mini_game(int k);
+ std::vector resources();
+ std::vector name_resources();
+
+ explicit Game(int k) {
+ std::string path;
+ if (k == -1) {
+ path = "C:\\Users\\Roman\\Documents\\Lastone\\TESTS\\plot_selection.json";
+ }
+ else {
+ path = "C:\\Users\\Roman\\Documents\\Lastone\\TESTS\\myth_" + std::to_string(k) + ".json";
+ }
+ std::ifstream plots(path);
+ plots >> j;
+ // TODO close and exceptions
+ plots.close();
+ resource.resize(amount_of_resources);
+ name_resource.resize(amount_of_resources);
+ }
+
+ explicit Game() {
+ std::string path;
+ path = "C:\\Users\\Roman\\Documents\\Lastone\\TESTS\\myth_0.json";
+ std::ifstream plots(path);
+ plots >> j;
+ plots.close();
+ // TODO close and exceptions
+ resource.resize(amount_of_resources);
+ name_resource.resize(amount_of_resources);
+ }
+
+ void to_uml(int k);
+
+
+ bool is_game_ended();
+ void move(bool);
+ std::string start_game();
+ std::string get_story();
+ void check_end();
+ bool check_resources();
+ void change_resources(bool f);
+
+ int mini_game();
+
+
+
+ void change_plot(int k);
+};
+
diff --git a/game_fwd.h b/game_fwd.h
new file mode 100644
index 0000000..e69de29
diff --git a/gamewindow.cpp b/gamewindow.cpp
new file mode 100644
index 0000000..e932b0b
--- /dev/null
+++ b/gamewindow.cpp
@@ -0,0 +1,35 @@
+#include "gamewindow.h"
+#include "ui_gamewindow.h"
+#include "second_main.h"
+#include "game.h"
+#include "controller.h"
+#include "view.h"
+#include "uml.h"
+#include
+#include
+
+//extern const int the_number_of_plots;
+//extern int number_plot;
+
+//extern Game game;
+//extern View view;
+//extern Controller controller;
+
+GameWindow::GameWindow(QWidget *parent) :
+ QDialog(parent),
+ ui(new Ui::GameWindow)
+{
+ ui->setupUi(this);
+ //game.to_uml(number_plot);
+ //std::string str = view.start_game(game.start_game());
+ //std::cout << str;
+ //QString("Welcome %1").arg(str);
+ //QString qstr(str[0]);
+ ui->label->setText("Started" /*qst*/);
+}
+
+GameWindow::~GameWindow()
+{
+ delete ui;
+}
+
diff --git a/gamewindow.h b/gamewindow.h
new file mode 100644
index 0000000..eb8eaf8
--- /dev/null
+++ b/gamewindow.h
@@ -0,0 +1,22 @@
+#ifndef GAMEWINDOW_H
+#define GAMEWINDOW_H
+
+#include
+
+namespace Ui {
+class GameWindow;
+}
+
+class GameWindow : public QDialog
+{
+ Q_OBJECT
+
+public:
+ explicit GameWindow(QWidget *parent = nullptr);
+ ~GameWindow();
+
+private:
+ Ui::GameWindow *ui;
+};
+
+#endif // GAMEWINDOW_H
diff --git a/global_struct_of_game.h b/global_struct_of_game.h
new file mode 100644
index 0000000..cb34671
--- /dev/null
+++ b/global_struct_of_game.h
@@ -0,0 +1,9 @@
+#ifndef GLOBAL_STRUCT_OF_GAME_H
+#define GLOBAL_STRUCT_OF_GAME_H
+#include "game.h"
+#include "controller.h"
+#include "view.h"
+#include "uml.h"
+#include
+
+#endif // GLOBAL_STRUCT_OF_GAME_H
diff --git a/images/settings_button.png b/images/settings_button.png
new file mode 100644
index 0000000..c138882
Binary files /dev/null and b/images/settings_button.png differ
diff --git "a/images/\320\221\320\265\320\267 \320\275\320\260\320\267\320\262\320\260\320\275\320\270\321\217 (1).jpg" "b/images/\320\221\320\265\320\267 \320\275\320\260\320\267\320\262\320\260\320\275\320\270\321\217 (1).jpg"
new file mode 100644
index 0000000..d06dbd6
Binary files /dev/null and "b/images/\320\221\320\265\320\267 \320\275\320\260\320\267\320\262\320\260\320\275\320\270\321\217 (1).jpg" differ
diff --git "a/images/\320\263\320\276\321\200\320\276\320\264.png" "b/images/\320\263\320\276\321\200\320\276\320\264.png"
new file mode 100644
index 0000000..04cc290
Binary files /dev/null and "b/images/\320\263\320\276\321\200\320\276\320\264.png" differ
diff --git a/include/controller.h b/include/controller.h
deleted file mode 100644
index fbea1a4..0000000
--- a/include/controller.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef PROJECT_CONTROLLER_H
-#define PROJECT_CONTROLLER_H
-
-#include "game.h"
-#include "plot.h"
-
-namespace macaftc {
- struct Controller {
- static bool Move();
- };
-}
-
-#endif //PROJECT_CONTROLLER_H
\ No newline at end of file
diff --git a/include/game.h b/include/game.h
deleted file mode 100644
index 18c7f2d..0000000
--- a/include/game.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef PROJECT_GAME_H
-#define PROJECT_GAME_H
-
-#include "game_fwd.h"
-#include "plot.h"
-#include "view.h" //?
-
-namespace macaftc {
- struct Game {
- bool end_of_game = false; //1 - game over
- int determination = 50; // resources
- std::string end_of_story;
- Event event = {"", 0, 0, 0};
-
- public:
- Game(int determination_) : determination(determination_) {
- }
- void Move(bool f);
- void Check_end();
- bool give_end_of_game() const;
- };
-}
-
-#endif //PROJECT_GAME_H
diff --git a/include/game_fwd.h b/include/game_fwd.h
deleted file mode 100644
index 3c7a8d9..0000000
--- a/include/game_fwd.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef PROJECT_GAME_FWD_H
-#define PROJECT_GAME_FWD_H
-
-namespace macaftc {
- struct Game;
-}
-
-#endif //PROJECT_GAME_FWD_H
diff --git a/include/plot.h b/include/plot.h
deleted file mode 100644
index f63850d..0000000
--- a/include/plot.h
+++ /dev/null
@@ -1,46 +0,0 @@
-#ifndef PROJECT_PLOT_H
-#define PROJECT_PLOT_H
-
-#include
-#include
-#include
-
-namespace macaftc {
- struct Event {
- std::string s;
- int determination_if_yes;
- int determination_if_no;
- bool is_it_the_end;
- Event(std::string s_, int determination_if_yes_,
- int determination_if_no_, bool is_it_the_end_)
- : s(std::move(s_)),
- determination_if_yes(determination_if_yes_),
- determination_if_no(determination_if_no_),
- is_it_the_end(is_it_the_end_) {
- }
- };
- struct Plot{
- std::vector events;
- size_t cnt = 0;
-
- Event last() {
- Event e = events[cnt];
- cnt++;
- return e;
- }
-
- void add_event(Event event) {
- events.push_back(event);
- }
-
- };
- struct Base{
- std::vector plots;
- Event give_a_story();
- void add_plot(Plot plot) {
- plots.push_back(plot);
- }
- };
-}
-
-#endif //PROJECT_PLOT_H
diff --git a/include/view.h b/include/view.h
deleted file mode 100644
index ba48d96..0000000
--- a/include/view.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef PROJECT_VIEW_H
-#define PROJECT_VIEW_H
-
-#include
-
-namespace macaftc {
- struct View {
- public:
- void Start_game();
- void Start_move(std::string move);
- void Result_move(std::string result);
- void End_game(std::string end);
- };
-}
-
-#endif //PROJECT_VIEW_H
\ No newline at end of file
diff --git a/json.hpp b/json.hpp
new file mode 100644
index 0000000..9bf2482
--- /dev/null
+++ b/json.hpp
@@ -0,0 +1,25973 @@
+/*
+ __ _____ _____ _____
+ __| | __| | | | JSON for Modern C++
+| | |__ | | | | | | version 3.9.1
+|_____|_____|_____|_|___| https://github.com/nlohmann/json
+
+Licensed under the MIT License .
+SPDX-License-Identifier: MIT
+Copyright (c) 2013-2019 Niels Lohmann .
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
+
+#ifndef INCLUDE_NLOHMANN_JSON_HPP_
+#define INCLUDE_NLOHMANN_JSON_HPP_
+
+#define NLOHMANN_JSON_VERSION_MAJOR 3
+#define NLOHMANN_JSON_VERSION_MINOR 9
+#define NLOHMANN_JSON_VERSION_PATCH 1
+
+#include // all_of, find, for_each
+#include // nullptr_t, ptrdiff_t, size_t
+#include // hash, less
+#include // initializer_list
+#include // istream, ostream
+#include // random_access_iterator_tag
+#include // unique_ptr
+#include // accumulate
+#include // string, stoi, to_string
+#include // declval, forward, move, pair, swap
+#include // vector
+
+// #include
+
+
+#include
+
+// #include
+
+
+#include // transform
+#include // array
+#include // forward_list
+#include // inserter, front_inserter, end
+#include