-
Notifications
You must be signed in to change notification settings - Fork 0
/
chooser.py
50 lines (43 loc) · 1.79 KB
/
chooser.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import random
class Chooser:
def __init__(self, classes, sectors, alones):
self.classes = classes
self.sectors = sectors
self.alones = alones
self.assignments = dict()
self.receivers = []
if len(self.alones) % 2 == 1:
print(
"Warning : Odd number of students, the secret santa can't be done correctly !!!"
)
def assign_students(self):
for class_number in self.classes.keys():
copy = [stud for stud in self.classes[class_number]]
for student in self.classes[class_number]:
student2 = random.choice(copy)
while student2 == student:
student2 = random.choice(copy)
print(student, student2, copy)
self.receivers.append(student2)
copy.remove(student2)
self.assignments[student] = student2
for sector in self.sectors.keys():
copy = [stud for stud in self.sectors[sector]]
for student in self.sectors[sector]:
student2 = random.choice(copy)
while student2 == student:
student2 = random.choice(copy)
print(student, student2, copy)
self.receivers.append(student2)
copy.remove(student2)
self.assignments[student] = student2
copy = [stud for stud in self.alones]
for student in self.alones:
student2 = random.choice(copy)
while student2 == student:
student2 = random.choice(copy)
print(student, student2, copy)
self.receivers.append(student2)
copy.remove(student2)
self.assignments[student] = student2
return self.assignments