-
Notifications
You must be signed in to change notification settings - Fork 0
/
Ranking.py
71 lines (61 loc) · 1.95 KB
/
Ranking.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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import openpyxl
from operator import itemgetter
import datetime
wb = openpyxl.load_workbook('C:/Users/Damian/Desktop/ranking.xlsx')
ws = wb['Arkusz1']
ws_wyniki = wb['Wyniki']
range_nicki = ws['A3':'A51']
lista_graczy = []
for cell in range_nicki:
lista_graczy.append(cell[0].value)
typowanie = {}
for nick in lista_graczy:
typowanie[nick] = {}
range_w_dol = range(3, 65)
for row in range_w_dol:
nick = ws.cell(row=row, column=1).value
col = 2
for nr_meczu in range(1, 100):
if not ws.cell(row=row, column=col).value:
break
typowanie[nick][nr_meczu] = ws.cell(row=row, column=col).value
col += 1
wyniki = {}
col = 2
for nr_meczu in range(1, 100):
if not ws_wyniki.cell(row=3, column=col).value:
break
wyniki[nr_meczu] = ws_wyniki.cell(row=3, column=col).value
col += 1
ranking = {}
for gracz in typowanie:
ranking[gracz] = 0
for nr_meczu in range(1, len(wyniki) + 1):
wynik = ''
typ = ''
if wyniki[nr_meczu][0] > wyniki[nr_meczu][2]:
wynik = 'A'
elif wyniki[nr_meczu][0] < wyniki[nr_meczu][2]:
wynik = 'B'
elif wyniki[nr_meczu][0] == wyniki[nr_meczu][2]:
wynik = 'AB'
if typowanie[gracz][nr_meczu][0] > typowanie[gracz][nr_meczu][2]:
typ = 'A'
elif typowanie[gracz][nr_meczu][0] < typowanie[gracz][nr_meczu][2]:
typ = 'B'
elif typowanie[gracz][nr_meczu][0] == typowanie[gracz][nr_meczu][2]:
typ = 'AB'
if typowanie[gracz][nr_meczu] == wyniki[nr_meczu]:
ranking[gracz] += 3
if wynik == typ:
ranking[gracz] += 2
lista_koncowa = sorted(list(ranking.items()), key=itemgetter(1))
lista_koncowa.reverse()
miejsce = 1
data_aktualna = datetime.datetime.now()
print('Data aktualizacji: ', end='')
print(data_aktualna.strftime('%Y-%m-%d %H:%M:%S'))
for i in lista_koncowa:
print(miejsce, end='. ')
print(i)
miejsce += 1