Форум сайта python.su
Извиняюсь заранее за терминологию, попробую объяснить проблему внятно.
Проект: Менеджер Чемпионата (футбол)
Проблема: Слишком динамичный и большой выбор режимов игры.
Описание: Проблема в том что выбор режимов огромный т.е процесса как именно проходит чемпионат.
Тут присутствует 40 режимов, вот несколько из них:
1 Группа (все против всех)
1 Группа - Лига - все против всех - несколько дней
2 Группы - Полуфинал - Матч за места 3, 1
2 Группы - Полуфинал - Матч для мест 5, 3, 1
2 Группы - Полуфинал - Матч для мест 7, 5, 3, 1
2 Группы - Полуфинал - Все места - Финал
2 Группы - Малый полуфинал - Полуфинал - Все места - Финал
2 Группы - Четвертьфинал - Полуфинал - Матч за 3-е место - Финал
По сути все эти режимы взяты из данного сайта https://www.meinturnierplan.de/ там можно войти как гость и пройти процесс создания турнира. Мой “клиент” использует эту платформу, но теперь хочет создать свою платформу.
Я не особо долго в разработке программ и мне сложно найти хорошее решение данной проблемы. Мой коллега по работе посоветовал мне создать что-то типа интерфейсов, но я честно говоря не пойму как именно. Он дал мне вот такой пример:
class Tournament(object): def handle_play(self, team1, team2): pass modes = { 'mode_1': Mode1Tournament, 'mode_2': Mode2Tournament, } class Mode1Tournament(Tournament): def handle_play(self, team1, team2): pass # do something with team1 and team2 according to # "tournament rules for mode1". (feel free to find a better name than Mode1) class Mode2Tournament(Tournament): def handle_play(self, team1, team2): pass # do something with team1 and team2 according to # "tournament rules for mode2". (feel free to find a better name than Mode2) Tournament.modes['mode_1']()
Tournament.modes['mode_1']()
Отредактировано khashashin (Март 25, 2020 12:24:07)
Офлайн
khashashin
вы забыли самое главное прикрепить к посту
в чем, собственно, вопрос?
Офлайн
khashashin
Проблема в том что выбор режимов огромный т.е процесса как именно проходит чемпионат.
khashashinЕсли режимов много и это мешает то надо найти обобщающие правила построения режимов (параметризовать подходы по количеству участников количеству этапов и т.п.) Правил должно стать существенно меньше.
Я не особо долго в разработке программ и мне сложно найти хорошее решение данной проблемы.
khashashinНачинать надо не с выбора схемы базы или выдумывания классов а с написания понятного технического задания.
Мой коллега по работе посоветовал мне создать что-то типа интерфейсов, но я честно говоря не пойму как именно
khashashinУ меня не возникло ни малейшего понимания что значит учитывать. Чисто формально метод вам не нужен, поскольку непонятно какому классу он принадлежит и зачем. Те надо делать функцию.
Как написать метод который будет учитывать количество команд и выбранный режим.
def Uchet(n_teams,mode): ......
Офлайн