Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make random task query more friendly to users #520

Closed
vtm9 opened this issue Jul 10, 2019 · 12 comments
Closed

Make random task query more friendly to users #520

vtm9 opened this issue Jul 10, 2019 · 12 comments

Comments

@vtm9
Copy link
Contributor

vtm9 commented Jul 10, 2019

defp get_random_task(level, user_ids) do

@vtm9
Copy link
Contributor Author

vtm9 commented Jul 10, 2019

Rewrite sql query to make task query more random

@vtm9
Copy link
Contributor Author

vtm9 commented Sep 30, 2019

@igor-i
Hi

@vtm9
Copy link
Contributor Author

vtm9 commented Sep 30, 2019

функция sql Rand часто не однозначно работает. Поэтому я написал штуку, которая выбирает наименее популярный таск для двух игроков. Но проблема в том, что если добавить новый, то он будет всегда выбираться.

@vtm9
Copy link
Contributor Author

vtm9 commented Sep 30, 2019

У меня была идея сдлеть отдельны GenServer, который грузит таски и раз в 15 минут перетаыовывает их. И работает как рандомный плейлист. ТОесть по кругу выдает таски по запросу, для каждой сложности свой

@igor-i
Copy link
Collaborator

igor-i commented Sep 30, 2019

то есть каждые 15 минут создаётся новый рандомный плейлист по каждой сложности и оттуда выдаются последовательно задачи без учёта истории конкретных игроков
так?

@igor-i
Copy link
Collaborator

igor-i commented Sep 30, 2019

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

@vtm9
Copy link
Contributor Author

vtm9 commented Sep 30, 2019

Ну мжоно не в 15 минут, а как прошел полностью цикл задач для одного уровня сложности.
Идея такая, то нам нужно сделать так, чтобы все задачи выбирались с одинаковой вероятностью, а количество посторений у одного игрока было минимальным

@vtm9
Copy link
Contributor Author

vtm9 commented Sep 30, 2019

Плейлист кажется прикольной идеей

@vtm9
Copy link
Contributor Author

vtm9 commented Sep 30, 2019

Можно не делать раз в 15 минут пересборку. А просто делать по истечению плейлиста. Просто List.shuffle

@igor-i
Copy link
Collaborator

igor-i commented Sep 30, 2019

ага, cool, так и сделаю - построение нового плейлиста не по таймеру, а по исчерпанию всех задач в текущем плейлисте

@vtm9
Copy link
Contributor Author

vtm9 commented Sep 30, 2019

Можно сделать один генСервер, который содержит 4 списка, и как только он заканчивается, то перемешивает его заново.

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

@vtm9
Copy link
Contributor Author

vtm9 commented Sep 30, 2019

И надо тесты подумать как написать

vtm9 added a commit that referenced this issue Oct 12, 2019
#520 Make random task query more friendly to users
@igor-i igor-i closed this as completed Oct 12, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants