From 850ac50367ce81496c23b0d6a893d75b1215c65e Mon Sep 17 00:00:00 2001 From: wowlikon Date: Tue, 4 Nov 2025 20:59:47 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BB=D0=BE=D0=B3=D0=BE=20=D0=B8=20=D0=BE?= =?UTF-8?q?=D0=BF=D0=B8=D1=81=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=B1=D1=8D=D0=BA?= =?UTF-8?q?=D1=8D=D0=BD=D0=B4=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 21 +++++++++++++++++++-- logo.png | Bin 0 -> 5776 bytes 2 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 logo.png diff --git a/README.md b/README.md index e5b016c..0122c13 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,10 @@ +![logo](./logo.png) # oxTicTacToe Generator ## Описание Этот проект представляет собой простой Python-скрипт, который генерирует чистый HTML-код для игры "Крестики-нолики" (Tic-Tac-Toe). -С минимальным весом страницы и опциональным JS/CSS. +С минимальным весом страницы и опциональным JS/CSS. Также есть возможность использовать бэкэнд на golang для моментальной прогрузки страниц. ## Функции @@ -16,6 +17,7 @@ ## Требования - Python 3.x +- Golang 1.25 ## Установка @@ -27,7 +29,7 @@ 2. Убедитесь, что у вас установлен Python 3.x. -## Использование +## Использование в оффлайн режиме 1. Запустите скрипт `generate.py`: ``` @@ -38,9 +40,24 @@ 3. Откройте файл `static/index.html` в любом веб-браузере для игры. +## Использование в режиме сервера + +1. Запустите скрипт `generate.py` с следующими параметрами: + ``` + python generate.py server server/toe/ + ``` + +2. После создания статичных страниц состояний игрового поля соберите бэкэнд командой: + ``` + go build ./server/main.go + ``` + +3. Все необходимые для запуска файлы будут собраны в один исполняемый файл `./main`, готовый к запуску. + ## Структура проекта - `generator.py`: Основной скрипт, генерирующий HTML +- `server/main.go`: Опциональный бэкэнд ## Лицензия diff --git a/logo.png b/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d7bc3bba6ef210f74774c86def2b3dc14f7d303c GIT binary patch literal 5776 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 literal 0 HcmV?d00001