Skip to content

Commit

Permalink
Удаление СКВ из программы
Browse files Browse the repository at this point in the history
  • Loading branch information
syrtcevvi committed Jan 3, 2024
1 parent fbcec3a commit 4c288f8
Show file tree
Hide file tree
Showing 20 changed files with 42 additions and 815 deletions.
124 changes: 7 additions & 117 deletions Cargo.lock

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

5 changes: 2 additions & 3 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[package]
name = "checkers"
authors = ["Сырцев Вадим Игоревич <syrtcevvi@gmail.com>"]
description = "Шашки с системой контроля версий"
description = "Игра Шашки"
version = "0.1.0"
edition = "2021"

Expand All @@ -10,8 +10,7 @@ edition = "2021"
[dependencies]
bincode = "1.3.3"
derive_more = "0.99.17"
iced = "0.10.0"
iced_aw = { version = "0.7.0", features = ["menu", "modal"] }
iced = { version = "0.10.0", features = ["canvas"] }
itertools = "0.12.0"
once_cell = "1.18.0"
serde = { version = "1.0.193", features = ["derive"] }
Expand Down
16 changes: 3 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
[![Разработчик](https://img.shields.io/badge/%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA-%D0%A1%D1%8B%D1%80%D1%86%D0%B5%D0%B2%20%D0%92%D0%B0%D0%B4%D0%B8%D0%BC%20%D0%98%D0%B3%D0%BE%D1%80%D0%B5%D0%B2%D0%B8%D1%87-9933FF?labelColor=4c0099&style=flat&link=https://github.com/iced-rs/iced_aw)](https://github.com/iced-rs/iced_aw)
[![build](https://github.com/syrtcevvi/checkers/actions/workflows/rust.yml/badge.svg)](https://github.com/syrtcevvi/checkers/actions/workflows/rust.yml)
[![iced](https://img.shields.io/badge/iced-%D0%91%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B0%20GUI-blue?labelColor=00008B&style=flat&link=https://github.com/iced-rs/iced)](https://github.com/iced-rs/iced)
[![iced_aw](https://img.shields.io/badge/iced_aw-%D0%A0%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%B1%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B8%20GUI-blue?labelColor=00008B&style=flat&link=https://github.com/iced-rs/iced_aw)](https://github.com/iced-rs/iced_aw)
[![serde](https://img.shields.io/badge/serde-%D0%91%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B0%20%D1%81%D0%B5%D1%80%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8-orange?labelColor=yellow&style=flat&link=https://github.com/serde-rs/serde)](https://github.com/serde-rs/serde)

# Шашки с системой контроля версий (СКВ)
Expand All @@ -18,7 +17,6 @@
- [Примеры работы](#примеры-работы)
- [Управление](#управление)
- [Взаимодействие с игровой доской](#взаимодействие-с-игровой-доской)
- [Взаимодействие с СКВ](#взаимодействие-с-скв)
- [Правила](#правила)
- [Зачем это было создано?](#зачем-это-было-создано)
- [В чем польза ознакомления с проектом](#в-чем-польза-ознакомления-с-проектом)
Expand Down Expand Up @@ -58,15 +56,6 @@ cargo run --release

При выборе фигуры на доске **зелеными** клеточками подсвечиваются позиции, в которых может быть размещена данная фигура (*передвижение*), а **красными** клеточками - возможные взятия фигур.

### Взаимодействие с СКВ
В любой момент игрового процесса пользователь может создать снимок текущего состояния доски, с помощью меню верхнего уровня (СКВ). С каждым снимков связано некоторое сообщение, описывающее его.

Ветка - обычный указатель на некоторый снимок. Если необходимо сделать развилку в процессе игры, это то, что нужно.

После создания снимка, к нему можно вернуться, выбрав его в списке снимков для выбранной ветки.

> В ближайшее время СКВ может быть устранена из программы
## Правила
### Общие положения
Данная программа не полностью следует всем общепринятым правилам шашек. Так, правило принудительного взятия фигур не реализовано.
Expand All @@ -93,18 +82,19 @@ cargo run --release
- все объекты СКВ в течение работы программы хранятся в оперативной памяти ЭВМ.
- используется один файл для сохранения СКВ между перезапусками. При запуске программы происходит считывание, а перед закрытием - запись.

На данный момент СКВ удалена из программы.

На данном этапе польза от проекта чисто теоретическая

## В чем польза ознакомления с проектом?
В данном проекте активно используется:
- создание GUI с помощью iced, показан один из возможных подходов к разбиению сообщений (Messages) на подтипы
- graceful shutdown, позволяющий перехватить событие закрытия программы и провести некоторые дополнительные действия перед этим, в данном случае, записать в файл СКВ
- graceful shutdown, позволяющий перехватить событие закрытия программы и провести некоторые дополнительные действия перед этим (нет дополнительных действий)
- работа с *shared ownership* (Rc<RefCell>), позволяющая изменять один и тот же участок памяти из разных структур
- продвинутые концепции для работы с итераторами([itertools](https://docs.rs/itertools/latest/itertools/)), в частности, для формирования положений фигур и различных проверок по ходу игры

## Дальнейшие планы?
На момент написания этого файла, планируется сделать следующие улучшения:
- Решить судьбу внедрённой СКВ (скорее всего, просто от нее избавиться)
- Покрыть игровую логику автотестами
- Оптимизировать использование программой оперативной памяти
- Расширить доступный инструментарий программы
Expand Down
Loading

0 comments on commit 4c288f8

Please sign in to comment.