Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions .flake8
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
[flake8]
max-line-length = 120

ignore =
E203,
W503,
E501,

exclude =
.git,
__pycache__,
.venv,
.mypy_cache,
build,
dist,
migrations,
venv

filename = *.py

max-complexity = 12
5 changes: 5 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

28 changes: 28 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
repos:
- repo: https://github.com/PyCQA/isort
rev: 5.12.0
hooks:
- id: isort

- repo: https://github.com/pre-commit/mirrors-mypy
rev: v1.6.1
hooks:
- id: mypy

- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml

- repo: https://github.com/psf/black
rev: 23.10.1
hooks:
- id: black

- repo: https://github.com/PyCQA/flake8
rev: 6.1.0
hooks:
- id: flake8
args: [--max-line-length=120]
2 changes: 2 additions & 0 deletions .venv/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Created by venv; see https://docs.python.org/3/library/venv.html
.idea
88 changes: 87 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,87 @@
# Dots_Game
# 🎮 Точки - классическая стратегическая игра

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

как устанавливать? как запускать?


## 🚀 Установка и запуск

## 📋 Предварительные требования
- Python 3.9+
- [Poetry](https://python-poetry.org/docs/#installation) (менеджер зависимостей)

## ⚙️ Установка
```bash
git clone https://github.com/ваш-репозиторий/Dots_Game.git
cd Dots_Game
poetry install
```

## 🎮 Запуск игры
```bash
python main.py
```

## Для справки:

```bash
poetry run python main.py help
```

## 🌟 Особенности

- 🎯 Три режима игры: PvP, против простого ИИ и "умного" компьютера
- 🖌️ Гибкая настройка размера поля (до 30×33)
- 📊 Система рейтинга с JSON-таблицей лидеров
- 🎨 Интуитивный графический интерфейс на Tkinter
- ⚡ Оптимизированная игровая логика
- 🔍 Встроенная система помощи

## 🎮 Режимы игры

| Режим | Описание |
|:------------:|:---------------------------------------------:|
| **Игрок vs Игрок** | Классический вариант для двух игроков |
| **Простой ИИ** | Компьютер делает случайные ходы |
| **Умный ИИ** | Компьютер использует стратегию для победы |

## 🏆 Правила игры
- Игроки ходят по очереди, ставя точки на пересечения линий
- Цель - окружить точки противника непрерывной цепью
- Окруженные точки становятся вашими
- Игра продолжается, пока есть свободные места или пока игроки не завершат игру
- Побеждает тот, кто захватил больше точек!

## 🛠️ Структура проекта
Dots_Game/
├── main.py # Точка входа
├── dots_game.py # Основной игровой класс
├── game_logic.py # Логика игры и ИИ
├── leaderboard.py # Работа с рейтингом
├── interface.py # GUI элементы
├── constants.py # Константы игры
├── help.py # Система помощи
├── leaderboard.json # Таблица лидеров (JSON)
├── lkon.png # Скриншот игры
├── pre-commit-config.yaml # Настройки pre-commit
├── mypy.ini # Конфигурация mypy
├── poetry.lock # Зависимости Poetry
├── pyproject.toml # Конфигурация проекта
└── README.md # Документация
##📊 Таблица лидеров

Игра автоматически сохраняет результаты в JSON-файл leaderboard.json.
Для просмотра рейтинга используйте соответствующую кнопку в интерфейсе.

## 👥 Авторы
Самородова Александра

Назарова Инесса

Checklist:
- [x] Добавлен `.gitignore`. Убедитесь, что там есть `.venv` и `.idea`
- [x] Создано виртуальное окружение
- [x] Есть файл `requirements.txt` или `pyproject.toml`. Исключения: если у вас нет внешних зависимостей.
- [x] Настроены линтеры: `mypy` и `flake8`
- [x] Настроены форматтеры: `isort` и `black`
- [x] Написаны тесты
- [x] Написана документация к каждому методу, классу и функции
- [x] Написан красивый `README.md` (для форматирования можно использовать markdown), где есть информация о том, как проект установить и запустить, что он делает и умеет, какие фунции там есть
- [x] (Для консольных утилит) написан help
- [x] (Опционально) Есть прекоммит
10 changes: 10 additions & 0 deletions dots/constants.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
from typing import Final


CELL_SIZE: Final[int] = 20
WIDTH: Final[int] = 1200
HEIGHT: Final[int] = 750
OFFSET_X: Final[int] = 20
OFFSET_Y: Final[int] = 50
BLUE_TEAM: Final[int] = 1
RED_TEAM: Final[int] = 2
Loading