Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 2, 2021 16:08:19

uecm
Зарегистрирован: 2021-09-02
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

От новичка

Начал изучать python с нуля. Предыдущий опыт только basic в школе. Да, я не молод. Лучшее обучение это постоянное применение новых знаний. Вот такой проект планирую. Создать список игроков любителей в один из командных видов спорта. У каждого игрока свой рейтинг. Программа будет разбивать игроков на команды в зависимости от рейтинга игрока. Соответственно программа будет редактировать рейтинг игроков в зависимости от результата игры. Список желающих играть в определенный день формировать через какой нибудь телеграмм-бот. При полном наборе запись заканчивается. Далее буду фантазировать.
Реальные задачи я перед собой ставлю? Начинаю с создания списка с атрибутами. Или нужен словарь, массив?
Наставьте на путь истинный

Офлайн

#2 Сен. 2, 2021 17:20:08

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10022
Репутация: +  857  -
Профиль   Отправить e-mail  

От новичка

uecm
Наставьте на путь истинный
Ну, ты её как себе представляешь в качестве пользователя? Если предположить, что эта программа уже полностью готова и ты ей пользуешься, то как ты ей пользуешься? Вот с этого и надо начинать.

uecm
Начинаю с создания списка с атрибутами. Или нужен словарь, массив?
А это уже потом решается. Сначала нужно представить не то, что у неё под капотом, а то, что у неё с внешней стороны, - то, как её видит пользователь, как её видишь ты, запуская её в операционной системе.

Для начала создаёшь пустую программу, которая запускается. В ней при запуске выводишь пользователю сначала просто сообщение про игроков. Когда всё работает и сообщение выводится, заменяешь вывод сообщения на чтение игроков откуда-то и вывод сообщения про прочитанных игроков. И так потихоньку пишешь её.



Офлайн

#3 Сен. 2, 2021 17:47:06

uecm
Зарегистрирован: 2021-09-02
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

От новичка

py.user.next
Сначала нужно представить не то, что у неё под капотом, а то, что у неё с внешней стороны
Я это сейчас представляю как список игроков с рейтингом, историей рейтинга всё это возможно на сайте, мобильном приложении.
Но, начать хочу с бэкенда. Меня сейчас заводит именно рандомное условно деление на основании рейтинга и фиксация результатов и корректировка рейтинга. Такой путь не правильный? Обязательно с фронта начинать?

Офлайн

#4 Сен. 2, 2021 20:13:42

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1394
Репутация: +  124  -
Профиль   Отправить e-mail  

От новичка

uecm
напишите сюда какая информация имеется,т.е чем оперируем
напишите что должно получиться после обработки информации(хотя бы примерно как эта информация должна изменится)

Офлайн

#5 Сен. 2, 2021 20:24:01

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10022
Репутация: +  857  -
Профиль   Отправить e-mail  

От новичка

uecm
Обязательно с фронта начинать?
Это не фронт, а абстракция. Начинать надо с абстракции, а заканчивать реализацией этой абстракции. Не наоборот.

Например: я хочу построить дом, чтобы в нём жить. И вот мы думаем снаружи: а должно там быть тепло? а должно там быть светло? а должно там быть сухо? а должно там вкусно пахнуть? И после ответов на эти вопросы мы ставим следующие вопросы: что нужно сделать, чтобы в доме было тепло? что нужно сделать, чтобы в доме было светло? что нужно сделать, чтобы в доме было сухо? что нужно сделать, чтобы в доме вкусно пахло? И так мы получаем ответы: мы должны сделать систему отопления; мы должны сделать окна; мы должны сделать канализацию; мы должны сделать вентиляцию. Таким образом, спускаясь всё ниже и ниже к подробностям, ты приходишь к тому, что кирпичи дома должны быть в форме одинаковых параллелепипедов, а не в форме тетраэдров да ещё и разного размера.

А сейчас ты начинаешь то ли с треугольных кирпичей строить дом, то ли с круглых. Закончится это известно чем - ничем.



Отредактировано py.user.next (Сен. 2, 2021 20:26:06)

Офлайн

#6 Сен. 3, 2021 11:04:58

uecm
Зарегистрирован: 2021-09-02
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

От новичка

py.user.next
py.user.next
Логика понятна. С логикой согласен.

xam1816
напишите сюда какая информация имеется,т.е чем оперируем
напишите что должно получиться после обработки информации(хотя бы примерно как эта информация должна изменится)
Сейчас игроки записываются в чате вотсапп. Потом вручную данные вносятся в эксель. Макрос разбивает игроков на команды. По результату игр меняется рейтинг игроков и это всё фиксируется в виде списка игроков с рейтингом на сайте-конструкторе. Например,
  1. Иванов 50
  • Петров 46
и т.д.
Хочу всё это связать и автоматизировать.

Офлайн

#7 Сен. 3, 2021 11:52:45

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1394
Репутация: +  124  -
Профиль   Отправить e-mail  

От новичка

uecm
Потом вручную данные вносятся в эксель
какие данные вводятся,напишите пример
uecm
Макрос разбивает игроков на команды
по какой логике макрос разбивает на команды?
uecm
По результату игр меняется рейтинг игроков
по какой логике меняется рейтинг игроков?

Офлайн

#8 Сен. 3, 2021 12:15:09

uecm
Зарегистрирован: 2021-09-02
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

От новичка

xam1816
какие данные вводятся,напишите пример
Иванов 50
Петров 47
Сидоров 45
и т.д. 15 человек
xam1816
по какой логике макрос разбивает на команды?
Разбивает игроков близких по рейтингу на корзины (5 корзин) и рандомно из каждой корзины по одному человеку в каждую команду. Общий рейтинг игроков каждой команды должен быть приблизительно равным.
xam1816
по какой логике меняется рейтинг игроков?
После игры считается количество побед и поражений каждой команды и игрокам лучшей команды рейтинг повышается, а худшей снижается.

Офлайн

#9 Сен. 3, 2021 16:28:14

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1394
Репутация: +  124  -
Профиль   Отправить e-mail  

От новичка

я понял это вот так

 ключи имена игроков:значение рейтинг
{'A': 43, 'B': 46, 'C': 45, 'D': 40, 'E': 42, 'F': 44, 'G': 41, 'H': 44, 'I': 43, 'J': 45, 'K': 40, 'L': 45, 'M': 40, 'N': 47, 'O': 48}
разбиты на 5 корзин по 3 игрока получается
[['D', 'K', 'M'], ['G', 'E', 'A'], ['I', 'F', 'H'], ['C', 'J', 'L'], ['B', 'N', 'O']]
пермешиваем каждую корзину
[['D', 'K', 'M'], ['G', 'A', 'E'], ['H', 'F', 'I'], ['J', 'C', 'L'], ['B', 'N', 'O']]
по одному человеку в каждую команду
[['D', 'G', 'H', 'J', 'B'], ['K', 'A', 'F', 'C', 'N'], ['M', 'E', 'I', 'L', 'O']]
Process finished with exit code 0

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version