Skip to content
This repository was archived by the owner on Jul 2, 2024. It is now read-only.

Commit 2b53876

Browse files
author
Vlad Ponomarov
committed
fix styling
1 parent df15d44 commit 2b53876

File tree

1 file changed

+75
-58
lines changed

1 file changed

+75
-58
lines changed

OOP_task.md

Lines changed: 75 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -28,36 +28,41 @@
2828

2929
Должен содержать два класса
3030

31-
- Player
32-
- Enemy
31+
- `Player`
32+
- `Enemy`
3333

3434
#### Player
3535

3636
Аттрибуты:
3737

38-
- name - Имя игрока, задается пользователем через консоль
39-
- lives - Количество жизней, берется из константы из `settings.py`
40-
- score - Очки игрока, изначально 0
38+
- `name` - Имя игрока, задается пользователем через консоль
39+
- `lives` - Количество жизней, берется из константы из `settings.py`
40+
- `score` - Очки игрока, изначально 0
4141

4242
Методы:
4343

44-
- __init__ - для инициализации игрока, принимает только имя, назначает имя, кол-во жизней и очков.
45-
- select_attack - метод для ввода атаки игроком. Вводим до тех пор, пока пользователь не введет валидное значение (1, 2, 3), использует константы из файла `settings.py`
46-
- decrease_lives - метод, который будет вызываться если игрок проиграл "бой", уменьшает жизни на 1. Если жизни закончились, вызывает исключение `GameOver` из файла `exceptions.py`
47-
- add_score - метод для начисления очков игроку.
44+
- `__init__` - для инициализации игрока, принимает только имя, назначает имя, кол-во жизней и очков.
45+
- `select_attack` - метод для ввода атаки игроком. Вводим до тех пор, пока пользователь не введет валидное значение (1, 2,
46+
3), использует константы из файла `settings.py`
47+
- `decrease_lives` - метод, который будет вызываться если игрок проиграл "бой", уменьшает жизни на 1. Если жизни
48+
закончились, вызывает исключение `GameOver` из файла `exceptions.py`
49+
- `add_score` - метод для начисления очков игроку.
4850

4951
#### Enemy
5052

5153
Аттрибуты:
5254

53-
- lives - Кол-во жизней, изначально зависит от уровня соперника и уровня сложности, уменьшается на 1 когда соперник проигрывает "бой"
54-
- level - уровень соперника, будет увеличиваться с каждым новым соперником. Изначально 1.
55+
- `lives` - Кол-во жизней, изначально зависит от уровня соперника и уровня сложности, уменьшается на 1 когда соперник
56+
проигрывает "бой"
57+
- `level` - уровень соперника, будет увеличиваться с каждым новым соперником. Изначально 1.
5558

5659
Методы:
5760

58-
- __init__ - для инициализации соперника, принимает только уровень и сложность, что бы вычислить кол-во жизней, назначает кол-во жизней и уровень.
59-
- select_attack - метод для случайного выбора атаки (1, 2, 3), использует константы из файла `settings.py`
60-
- decrease_lives - уменьшает жизни при проигрыше "боя", вызывает исключение `EnemyDown` из файла `exceptions.py` если у соперника закончились жизни
61+
- `__init__` - для инициализации соперника, принимает только уровень и сложность, что бы вычислить кол-во жизней,
62+
назначает кол-во жизней и уровень.
63+
- `select_attack` - метод для случайного выбора атаки (1, 2, 3), использует константы из файла `settings.py`
64+
- `decrease_lives` - уменьшает жизни при проигрыше "боя", вызывает исключение `EnemyDown` из файла `exceptions.py` если у
65+
соперника закончились жизни
6166

6267
### game.py
6368

@@ -67,25 +72,29 @@
6772

6873
Аттрибуты:
6974

70-
- player - объект игрока
71-
- enemy - объект соперника, при убийстве будет создан новый, с более высоким уровнем
72-
- mode - уровень сложности, normal или hard, содержит либо 1, либо 2, которые определены константами
75+
- `player` - объект игрока
76+
- `enemy` - объект соперника, при убийстве будет создан новый, с более высоким уровнем
77+
- `mode` - уровень сложности, normal или hard, содержит либо 1, либо 2, которые определены константами
7378

7479
Методы:
7580

76-
- __init__ - принимает объект игрока и уровень сложности, создает первого соперника
77-
- create_enemy - метод для создания нового соперника
78-
- play - метод запуска игры. Запускает бесконечный цикл в одной итерации которого происходит "бой". Для этого вызывает два метода, `fight` и `handle_fight_result`. Отслеживает не произошло ли одно из исключений при вызове второго метода `GameOver` или `EnemyDown`, при первом завершает игру и вызывает метод для записи очков, при втором создает нового, более сильного соперника.
79-
- fight - метод запрашивает у пользователя и соперника атаки, из констант получает результат боя (-1, 0, 1)
80-
- handle_fight_result - принимает результат боя, и в зависимости от результата отнимает жизни либо у игрока, либо у соперника.
81-
- save_score - вызывает сохранение очков при помощи вызова класса из файла `score.py`
81+
- `__init__` - принимает объект игрока и уровень сложности, создает первого соперника
82+
- `create_enemy` - метод для создания нового соперника
83+
- `play` - метод запуска игры. Запускает бесконечный цикл в одной итерации которого происходит "бой". Для этого вызывает
84+
два метода, `fight` и `handle_fight_result`. Отслеживает не произошло ли одно из исключений при вызове второго
85+
метода `GameOver` или `EnemyDown`, при первом завершает игру и вызывает метод для записи очков, при втором создает
86+
нового, более сильного соперника.
87+
- `fight` - метод запрашивает у пользователя и соперника атаки, из констант получает результат боя (-1, 0, 1)
88+
- `handle_fight_result` - принимает результат боя, и в зависимости от результата отнимает жизни либо у игрока, либо у
89+
соперника.
90+
- `save_score` - вызывает сохранение очков при помощи вызова класса из файла `score.py`
8291

8392
### exceptions.py
8493

85-
Классы
94+
Классы
8695

87-
GameOver - когда у игрока заканчиваются жизни
88-
EnemyDown - когда у соперника заканчиваются жизни
96+
- `GameOver` - когда у игрока заканчиваются жизни
97+
- `EnemyDown` - когда у соперника заканчиваются жизни
8998

9099
### settings.py
91100

@@ -138,67 +147,75 @@ ATTACK_PAIRS_OUTCOME = {
138147

139148
Классы:
140149

141-
- ScoreHandler - класс для обработки очков
142-
- GameRecord - класс содержащий записи об игроках
143-
- PlayerRecord - класс для хранения записи об одном игроке
150+
- `ScoreHandler` - класс для обработки очков
151+
- `GameRecord` - класс содержащий записи об игроках
152+
- `PlayerRecord` - класс для хранения записи об одном игроке
144153

145154
#### ScoreHandler
146155

147156
Аттрибуты:
148157

149-
- game_record - объект класса GameRecord, туда мы будем считывать сохраненные очки и записывать таблицу с новыми
150-
- file_name - имя файла откуда и куда мы записываем очки
158+
- `game_record` - объект класса GameRecord, туда мы будем считывать сохраненные очки и записывать таблицу с новыми
159+
- `file_name` - имя файла откуда и куда мы записываем очки
151160

152161
Методы:
153162

154-
- __init__ - принимает только имя файла и сохраняет его. Вызывает метод для чтения файла.
155-
- read - метод, который будет читать файл и каждую его строку сохранять в PlayerRecord, которые будут сохранятся в GameRecord.
156-
- save - метод, который нужен, что бы записать новые результаты в файл (предварительно отсортировать и обрезать, если нужно)
157-
- display - метод для отображения очков
163+
- `__init__` - принимает только имя файла и сохраняет его. Вызывает метод для чтения файла.
164+
- `read` - метод, который будет читать файл и каждую его строку сохранять в `PlayerRecord`, которые будут сохранятся в
165+
`GameRecord`.
166+
- `save` - метод, который нужен, что бы записать новые результаты в файл (предварительно отсортировать и обрезать, если
167+
нужно)
168+
- `display` - метод для отображения очков
158169

159170
#### GameRecord
160171

161172
Аттрибуты:
162173

163-
- records - список объектов типа PlayerRecord
174+
- `records` - список объектов типа PlayerRecord
164175

165176
Методы:
166177

167-
- __init__ - создает объект с пустым списком записей
168-
- add_record - метод для добавления записи об одном игроке. Должен проверять нет ли у нас уже такого игрока, и если есть, то перезаписывать его результат. Тот же самый игрок проверяется по имени и уровню сложности (игрок может быть представлен в таблице два раза на разном уровне сложности). (Можно использовать меджик метод __eq__ для поиска через `in`)
169-
- prepare_records - метод для сортировки существующих результатов и обрезки до максимального кол-ва указанного в настройках
170-
178+
- `__init__` - создает объект с пустым списком записей
179+
- `add_record` - метод для добавления записи об одном игроке. Должен проверять нет ли у нас уже такого игрока, и если
180+
есть, то перезаписывать его результат. Тот же самый игрок проверяется по имени и уровню сложности (игрок может быть
181+
представлен в таблице два раза на разном уровне сложности). (Можно использовать меджик метод `__eq__` для поиска
182+
через `in`)
183+
- `prepare_records` - метод для сортировки существующих результатов и обрезки до максимального кол-ва указанного в
184+
настройках
171185

172186
#### PlayerRecord
173187

174188
Аттрибуты:
175189

176-
- name - имя игрока
177-
- mode - уровень сложности
178-
- score - кол-во очков
190+
- `name` - имя игрока
191+
- `mode` - уровень сложности
192+
- `score` - кол-во очков
179193

180194
Методы:
181195

182-
- __init__ - для создания объекта принимает все три параметра
183-
- __gt__ - для того что бы можно было отсортировать записи по очкам
184-
- __str__ - для удобного вывода данных
196+
- `__init__` - для создания объекта принимает все три параметра
197+
- `__gt__` - для того что бы можно было отсортировать записи по очкам
198+
- `__str__` - для удобного вывода данных
185199

186200
### main.py
187201

188202
Содержит функции:
189203

190-
- main - для запуска всего кода, внутри этой функции должен быть запущен процесс выбора из трех пунктов (Запуск игры, посмотреть очки и выйти из игры (1,2,3))
191-
- play_game - вызывается если игрок выбрал начать игру, в этой функции будет запущен процесс создания игрока, создание объекта игры и запуск самой игры
192-
- create_player - спросить игрока имя и сложность, создать объект игрока с указанным именем, и передать объект игрока и сложность в класс игры.
193-
- show_scores - показать очки, используя класс `ScoreHandler`
194-
- exit - выйти из игры
204+
- `main` - для запуска всего кода, внутри этой функции должен быть запущен процесс выбора из трех пунктов (Запуск игры,
205+
посмотреть очки и выйти из игры (1,2,3))
206+
- `play_game` - вызывается если игрок выбрал начать игру, в этой функции будет запущен процесс создания игрока, создание
207+
объекта игры и запуск самой игры
208+
- `create_player` - спросить игрока имя и сложность, создать объект игрока с указанным именем, и передать объект игрока и
209+
сложность в класс игры.
210+
- `show_scores` - показать очки, используя класс `ScoreHandler`
211+
- `exit` - выйти из игры
195212

196213
## Пример как выглядит содержимое файла с очками
197214

198-
199-
Name Mode Score
200-
Vlad Normal 14
201-
Test Hard 12
202-
Jack Normal 12
203-
Vlad Hard 10
204-
Jack Hard 9
215+
| Name | Mode | Score |
216+
|------|--------|-------|
217+
| Vlad | Normal | 14 |
218+
| Test | Hard | 12 |
219+
| Jack | Normal | 12 |
220+
| Vlad | Hard | 10 |
221+
| Jack | Hard | 9 |

0 commit comments

Comments
 (0)