|
0 / 0 / 0
Регистрация: 04.05.2020
Сообщений: 11
|
||||||
Как сэкономить время на разработку!? Python07.05.2020, 07:11. Показов 968. Ответов 10
Метки python 3.x (Все метки)
Здравствуйте как сэкономить время, может кто нибудь знает какие нибудь лайфхаки по разработке?
Вот например: Василий считает ООП великолепным подходом к программированию различных систем. Сегодня он хочет, чтобы вы начали разрабатывать основу для pyRPG (Python role-playing game). Представьте себе мир, в котором у игрока (Player) есть три основных характеристики: сила (strength), ловкость (agility) и интеллект (intelligence). По умолчанию у каждого героя игры все характеристики равны нулю. Для увеличения (или уменьшения) характеристики в игре используются зелья (Potion), которые накладывают определённый эффект на игрока и действуют определённое количество ходов. Перед вами стоит задача создать два класса Player и Potion, описывающие данную механику. Класс Potion описывает эффект от зелья. Конструктор класса Potion должен иметь вид: Potion(duration, strength, agility, intelligence). Параметр duration описывает длительность эффекта в «шагах» и является позиционным. Параметры strength, agility, intelligence описывают силу, ловкость и интеллект, получаемые от зелья, и являются необязательными. Класс Potion должен иметь методы: duration() — возвращает длительность эффекта зелья; strength() — возвращает силу, получаемую от зелья; agility() — возвращает ловкость, получаемую от зелья; intelligence() — возвращает интеллект, получаемую от зелья; copy() — возвращает копию объекта. Над объектами класса Potion должна быть возможность производить следующие операции: potion1 == potion2 — возвращает True, если все параметры зелий равны, иначе False; next(potion) — снижает продолжительность эффекта на 1 и возвращает None, если продолжительность снизилась до 0, иначе возвращает принимаемый объект; potion1 + potion2 — странным образом смешивает два зелья: параметры зелий складываются, а продолжительность эффекта нового зелья равна минимальной из переданных; potion1 - potion2 — странным образом смешивает два зелья: параметры зелий вычитаются, а продолжительность эффекта нового зелья равна максимальной из переданных; potion * number — странным образом модифицирует зелье: параметры зелья умножаются на number, а продолжительность эффекта нового зелья остаётся такой же; str(potion) — возвращает строку, описывающую зелье в формате Potion(duration=D, strength=S, agility=A, intelligence=Intel). Класс Player описывает состояние пользователя. У конструктора класса Player не должно быть позиционных параметров. Класс Player должен иметь методы: strength() — возвращает суммарную силу героя; agility() — возвращает суммарную ловкость героя; intelligence() — возвращает суммарный интеллект героя; append(potion) — накладывает эффект (копию зелья potion) на героя. Над объектом класса Player должна быть возможность производить следующие операции: player += potion — накладывает эффект (копию зелья potion) на героя; next(player) — имитирует ход, снижает длительность всех наложенных на героя зелий на 1; str(player) — возвращает строковое представление героя в виде: Player { strength: S agility: A intelligence: Intel }
Эту программу я делал 3 часа, но на его разработку давалось менее 1 часа. Она полностью рабочая, но ГДЕ И КАК Я МОГ СЭКОНОМИТЬ ВРЕМЯ НА РАЗРАБОТКУ? Надеюсь на ваши советы.
0
|
||||||
| 07.05.2020, 07:11 | |
|
Ответы с готовыми решениями:
10
Как сэкономить время?
Как сэкономить время и ресурсы при выполнении кода VBA |
|
Модератор
|
|
| 07.05.2020, 07:58 | |
|
NikiforovDV, странный вопрос, тут трата времени идет из за вашей сообразительности. Быстрее понимаешь, быстрее делаешь, подобные задачи занимают меньше времени с опытом. В этом коде куча ошибок, таких как: название методов совпадает с названием атрибутов, функции возвращают не существующие атрибуты, копипаст.
1
|
|
|
1293 / 677 / 367
Регистрация: 07.01.2019
Сообщений: 2,300
|
||||||||
| 07.05.2020, 08:17 | ||||||||
|
Кстати метод copy реализован неверно, он возвращает не копию, а сам объект
1
|
||||||||
|
Модератор
|
||||||
| 07.05.2020, 08:29 | ||||||
|
NikiforovDV, 25 мин, при этом одна рука занята кофе и вафельками:
0
|
||||||
|
0 / 0 / 0
Регистрация: 04.05.2020
Сообщений: 11
|
|
| 07.05.2020, 08:55 [ТС] | |
|
Вопрос!
Является ли критической ошибкой совпадения имен методов и атрибутов в коде? Вроде как бы работает. Они не должны совпадать из-за какого-то негласного правила? p.s. Спасибо что указали про ошибку метода копирования, я уже исправил его после вашего замечания.
0
|
|
|
Модератор
|
||||||
| 07.05.2020, 08:59 | ||||||
|
NikiforovDV,
0
|
||||||
|
Автоматизируй это!
|
||||||||
| 07.05.2020, 09:08 | ||||||||
|
предлагаю провести вот такой эксперимент
1
|
||||||||
|
Автоматизируй это!
|
||||||
| 07.05.2020, 10:47 | ||||||
|
DmFat, нет, если взять твой пример то после 13 строки у тебя больше нет метода аджилити) ты его перезаписал интом. Ну нельзя называть атрибуты и методы одинаково, потому что метод это тоже атрибут, просто он вызываемый (коллабл).
Плюс возможное (при определенных ситуациях) но не самое верное решение сделать аджилити атрибутом самого класса, а не объектов. Изменив его мы получим изменение во всех объектах, а это не всегда ожидаемо.
0
|
||||||
|
Автоматизируй это!
|
||
| 07.05.2020, 11:02 | ||
|
не верная абстракция для Питья (если я верно понял), оно может дать какие то характеристики но само не обладает ими, то есть у Зелья не может быть силы или ловкости. Оно не должно быть наследником характеристик Игрок получается -набор зелий? раз его можно итерировать некстом по зельям? Это скорее можно сказать про пояс героя, на котором зелья висят, но сам то герой точно не набор зелий.
0
|
||
| 07.05.2020, 11:02 | |
|
Помогаю со студенческими работами здесь
11
Сколько требуется время на разработку? C# или как сэкономить Как сэкономить память? Как сэкономить топливо - бензин? i7 4770-4770k Как сэкономить? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга,
Ты же видел моря и метели.
Как сменялись короны и стяги,
Как эпохи стрелою летели.
- Этот мир — это крылья и горы,
Снег и пламя, любовь и тревоги,
И бескрайние. . .
|
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1
У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\
А в самом низу файла-профиля. . .
|