diff --git a/api_functions.py b/api_functions.py index 5ecd831..67571e1 100644 --- a/api_functions.py +++ b/api_functions.py @@ -29,19 +29,22 @@ def isEnd(cur, trueChatID): return "" -def role_distribution(userIDs): +def role_distribution(userIDs): # Распределение ролей user_count = len(userIDs) + # Сначала нам необходимо понять, сколько каких ролей будет в зависимости от кол-ва игроков userIDs = list(userIDs) - resp = {} + resp = {} # Инициализируем будущий ответ(в формате словаря {ID : Роль}) ls = [0, 0, 1, 1, 0] + # Массив с ролями, где индекс - роль (0 - inactive, 1 - civil, 2 - doc, 3 - comm, 4 - maf), док и ком всегда один ls[4] = user_count//4 + # Мафии вычисляются, как кол-во игроков//4, остальные мирные ls[1] = user_count - ls[4]-2 + # Перемешиваем массив чтоб постоянно одни и те же роли не выпадали random.shuffle(userIDs) for i in range(5): for j in range(ls[i]): - print(type(userIDs)) + # Ну и, пробегая по каждой роли, убираем из массива один ID, resp[userIDs.pop()] = str(i) + # присваивая ему роль, добавляя в словарь вывода return resp - - # [0, 4, 1, 1, 2] diff --git a/app.py b/app.py index 2b84a0b..91d8dc1 100644 --- a/app.py +++ b/app.py @@ -54,12 +54,11 @@ def start(): # Команда принимает на вход userlist = request.json['userIDs'] cursor = db.connection.cursor() for idi in userlist: - db.query_ins_user(id, curs) - db.close() + db.query_ins_user(id, cursor) + db.close(cursor) resp = api_functions.role_distribution(userlist) return "", resp - if __name__ == '__main__': app.run() diff --git a/db.py b/db.py index 72cf6d7..15d0a02 100644 --- a/db.py +++ b/db.py @@ -50,4 +50,4 @@ def query_change(x): def close(cur): - cursor.close() + cur.close() diff --git a/test.py b/test.py index 5ac60fe..ad3103c 100644 --- a/test.py +++ b/test.py @@ -5,7 +5,20 @@ # print(d) import random +def role_distribution(userIDs): + user_count = len(userIDs) + userIDs = list(userIDs) + resp = {} # resp = {userIDs[i]: 0 for i in range(len(userIDs))} + ls = [0, 0, 1, 1, 0] + ls[4] = user_count//4 + ls[1] = user_count - ls[4]-2 + random.shuffle(userIDs) + for i in range(5): + for j in range(ls[i]): + print(type(userIDs)) + resp[userIDs.pop()] = str(i) + return resp a = ["a", "b", "c", "d", "e", "f", "g"] print(role_distribution(a))