Merge pull request #6 from IgorL123/adada

New Func: /start_game
This commit is contained in:
IgorL123
2023-08-24 21:33:43 +03:00
committed by GitHub
4 changed files with 59 additions and 3 deletions
Binary file not shown.
+25 -1
View File
@@ -1,3 +1,6 @@
import random
def isEnd(cur, trueChatID):
# cur.execute(f"SELECT ChatID FROM Chats WHERE TrueChatID = '{trueChatID}'")
# row = cur.fetchall()
@@ -23,4 +26,25 @@ def isEnd(cur, trueChatID):
elif m >= len(roles) - m:
return "mafia"
return None
return ""
def role_distribution(userIDs): # Распределение ролей
user_count = len(userIDs)
# Сначала нам необходимо понять, сколько каких ролей будет в зависимости от кол-ва игроков
userIDs = list(userIDs)
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]):
# Ну и, пробегая по каждой роли, убираем из массива один ID,
resp[userIDs.pop()] = str(i)
# присваивая ему роль, добавляя в словарь вывода
return resp
+9 -1
View File
@@ -50,7 +50,15 @@ def create():
@app.route('/start_game', methods=["POST"])
def start(): # Команда принимает на вход
return '', 501
TCI = request.json['chatID']
userlist = request.json['userIDs']
cursor = db.connection.cursor()
for idi in userlist:
db.query_ins_user(id, cursor)
db.close(cursor)
resp = api_functions.role_distribution(userlist)
return "", resp
if __name__ == '__main__':
+24
View File
@@ -0,0 +1,24 @@
# for i in range(0):
# print(i)
# d = dict
# 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))