Skip to content

Commit

Permalink
Наполнение readme
Browse files Browse the repository at this point in the history
  • Loading branch information
BlasterAlex committed Aug 30, 2019
1 parent c8d35bf commit ec5206e
Show file tree
Hide file tree
Showing 3 changed files with 91 additions and 65 deletions.
6 changes: 1 addition & 5 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,4 @@ Makefile*

/* Executable files */
src/Results/createDB/createDB
qtminer

/* npm */
node_modules
package-lock.json
qtminer
150 changes: 90 additions & 60 deletions README.md
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 removed data/readme/player.png
Binary file not shown.

0 comments on commit ec5206e

Please sign in to comment.