-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
c8d35bf
commit ec5206e
Showing
3 changed files
with
91 additions
and
65 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,87 +1,117 @@ | ||
<meta name="viewport" content="width=device-width, initial-scale=1"> | ||
<link rel="stylesheet" href="github-markdown.css"> | ||
# QtMiner | ||
|
||
<style> | ||
![GitHub release (latest by date)](https://img.shields.io/github/v/release/BlasterAlex/QtMiner) ![GitHub](https://img.shields.io/github/license/BlasterAlex/QtMiner) | ||
|
||
.markdown-body { | ||
box-sizing: border-box; | ||
min-width: 200px; | ||
max-width: 980px; | ||
margin: 0 auto; | ||
padding: 45px; | ||
} | ||
**The best implementation of the famous game!** | ||
|
||
@media (max-width: 767px) { | ||
.markdown-body { | ||
padding: 15px; | ||
} | ||
} | ||
Игра Сапёр на Qt с хранением результатов предыдущих игры в базе данных PostgreSQL. | ||
|
||
.player-content { | ||
border-color: #aba7a7; | ||
border-radius: 10px; | ||
} | ||
# Использование | ||
|
||
.player-button { | ||
position: absolute; left: 41%; top: 35%; width: 100px | ||
} | ||
При запуске приложения открывается окно с игровым полем и меню. При первом нажатии на клетку поля, генерируется карта с заданными размерами и количеством мин (по умолчанию — карта 9x9 с 10-ю минами) и запускается таймер. Установка / снятие флага на клетку осуществляется нажатием правой кнопки мыши. При нажатии на ячейку из пустой области происходит отображение всей пустой области. В процессе игры выводится информация о количестве свободных клеток и доступных флагов, а также время текущей игры. | ||
|
||
.player:hover img { | ||
opacity: 0.9; | ||
} | ||
</style> | ||
<!-- For getting json http://vimeo.com/api/v2/video/ + video_id + .json --> | ||
<p align="center"> | ||
<a href="https://vimeo.com/356858685" target="_blank"> | ||
<img src="https://i.vimeocdn.com/video/810063753_640.webp" width="350"/> | ||
</a> | ||
</p> | ||
|
||
<article class="markdown-body"> | ||
Пользователь может перезапустить текущую игру, поставить её на паузу или изменить характеристики игрового поля. | ||
|
||
# QtMiner | ||
<p align="center"> | ||
<img src="./data/readme/gameplay-2.gif" width="580px"/> | ||
</p> | ||
|
||
**The best implementation of the famous game!** Игра Сапёр, написанная на Qt, с хранением результатов предыдущих игры в базе данных PostgreSQL. | ||
По нажатию на кнопку `Show results` открывается диалоговое окно с результатами предыдущих игр с характеристиками игрового поля равными текущим. | ||
|
||
# Использование | ||
<p align="center"> | ||
<img src="./data/readme/gameplay-3.gif" width="420px"/> | ||
</p> | ||
|
||
При запуске приложения открывается окно с игровым полем и меню. При первом нажатии на клетку поля генерируется карта с заданным количеством мин и запускается таймер. Установка / снятие флага на клетку осуществляется нажатием правой кнопки мыши. При нажатии на ячейку из пустой области происходит отображение всей пустой области. | ||
# Установка | ||
## Сборка | ||
|
||
В процессе игры отображается информация о количестве оставшихся пустых клеток и мин, а таккже время текущей игры. | ||
1. Установите Qt: | ||
- [`Ubuntu`](https://wiki.qt.io/Install_Qt_5_on_Ubuntu); | ||
- [`Arch`](https://www.archlinux.org/packages/extra/x86_64/qt5-base/); | ||
- [`Windows`](https://www.qt.io/download). | ||
|
||
Пользователь может перезапустить игру, поставить её на паузу или изменить характеристики игрового поля. | ||
2. Для сборки необходимо перейти в корневой каталог проекта и выполнить команду: | ||
```sh | ||
qmake && make | ||
# or | ||
qmake && make -j4 # for multicore | ||
``` | ||
|
||
**Compilation**: | ||
## Настройка базы данных | ||
|
||
From the main project folder run the following commands: | ||
1. Для работы с базой данных вам необходимо установить [PostgreSQL Core Distribution](https://www.postgresql.org/download/): | ||
|
||
```sh | ||
qmake | ||
make | ||
``` | ||
- [`Ubuntu`](https://timeweb.com/ru/community/articles/kak-ustanovit-postgresql-na-ubuntu-18-04-1); | ||
- [`Arch`](https://wiki.archlinux.org/index.php/PostgreSQL_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)); | ||
- [`Windows`](https://www.postgresql.org/download/windows/). | ||
|
||
**Database connection** | ||
2. Далее необходимо запустить сервер PostgreSQL: | ||
- Ubuntu: | ||
```sh | ||
# start the PostgreSQL server | ||
$ sudo service postgresql start | ||
For work with the database you need to install [PostgreSQL Core Distribution](https://www.postgresql.org/download/) | ||
and create new user using commands: | ||
# stop the PostgreSQL server | ||
$ sudo service postgresql stop | ||
``` | ||
- Arch: | ||
```sh | ||
# start the PostgreSQL server | ||
$ systemctl start postgresql | ||
```sh | ||
sudo -u postgres createuser qtminer # create user | ||
# check if it started | ||
$ systemctl status postgresql | ||
sudo -u postgres psql # change password | ||
ALTER USER qtminer WITH encrypted PASSWORD '123456'; | ||
# add to startup | ||
$ systemctl enable postgresql | ||
sudo -u postgres createdb -O qtminer qtminer # create db | ||
``` | ||
# stop the PostgreSQL server | ||
$ systemctl stop postgresql | ||
``` | ||
- Windows: | ||
```sh | ||
# start the PostgreSQL server | ||
pg_ctl -D "C:\Program Files\PostgreSQL\9.6\data" start | ||
For create the required table in the database you must run: | ||
# stop the PostgreSQL server | ||
pg_ctl -D "C:\Program Files\PostgreSQL\9.6\data" stop | ||
``` | ||
|
||
```sh | ||
src/db/createDB/createDB | ||
``` | ||
3. Создание пользователя qtminer и базы даных: | ||
- Linux: | ||
```sh | ||
$ sudo -u postgres createuser qtminer # create user | ||
<!-- [![IMAGE ALT TEXT HERE](https://i.vimeocdn.com/video/810044732_640.webp)](https://vimeo.com/356858685) --> | ||
$ sudo -u postgres psql # change password | ||
ALTER USER qtminer WITH encrypted PASSWORD '123456'; | ||
<p align="center" style="position: relative"> | ||
<a href="https://vimeo.com/356858685" target="_blank" class="player"> | ||
<img src="https://i.vimeocdn.com/video/810044732_640.webp" alt="IMAGE ALT TEXT HERE" width="300" border="10" class="player-content" /> | ||
<img src="data/readme/player.png" class="player-button" style="position: absolute; left: 41%; top: 35%; width: 100px" /> | ||
</a> | ||
</p> | ||
$ sudo -u postgres createdb -O qtminer qtminer # create db | ||
``` | ||
- Windows: | ||
```cmd | ||
REM connect to the DB server as the Postgres super user using the psql command | ||
psql -h <host_Name> -U <super_username> -d postgres | ||
REM create user and database | ||
create user qtminer password '123456' ; | ||
create database "qtminer" with owner qtminer; | ||
``` | ||
|
||
4. Для создания таблицы в базе данных для хранения результатов игр используется `createDB`. Для его сборки необходимо перейти в директорию [`src/Results/createDB/`](./src/Results/createDB/) и выполнить: | ||
|
||
```sh | ||
qmake && make | ||
# or | ||
qmake && make -j4 # for multicore | ||
``` | ||
|
||
Настройки подключения к базе данных хранятся в конфигурационном файле [`src/Results/connection/config`](./src/Results/connection/config). | ||
|
||
</article> | ||
|
Binary file not shown.