Azərbaycan dili Bahasa Indonesia Bosanski Català Čeština Dansk Deutsch Eesti English Español Français Galego Hrvatski Italiano Latviešu Lietuvių Magyar Malti Mакедонски Nederlands Norsk Polski Português Português BR Românã Slovenčina Srpski Suomi Svenska Tiếng Việt Türkçe Ελληνικά Български Русский Українська Հայերեն ქართული ენა 中文
Subpage under development, new version coming soon!

Subject: »poradnik Baza zawodników

2022-04-11 23:18:15
Mikoos to All
Kilka osób prosiło mnie o utworzenie bazy ze wszystkimi zawodnikami z sokkera, więc ją zrobiłem. :) Ta baza zawiera ogólnodostępne dane, np. zawiera takie rzeczy jak wartość zawodnika, szacowaną wartość przy nadboskiej formie, oceny meczowe i formacje w jakich zawodnicy grali, dokładna lista niżej. Zawiera również skille zawodników w dniu ich ostatniego transferu, jeśli transfer ten odbył się po 2021-12-27.

Żeby skorzystać z bazy trzeba:

1. Pobrać na komputer z plik players.db z tą bazą: https://drive.google.com/uc?id=1df6KEz96f2LzUeia3B8OTvS65mP_kToK (zmieniłem z MEGA na Google Drive).

2. Pobrać i zainstalować (lub rozpakować jeśli wybraliśmy wersję .zip) program do przeglądania baz danych SQLite, ja korzystam z DB Browser for SQLite: https://sqlitebrowser.org/dl/, dalsza instrukcja będzie dotyczyła korzystania właśnie z tego programu

3. Otworzyć program DB Browser for SQLite, kliknąć w nim z menu "Plik", "Otwórz bazę danych...", wybrać pobrany wcześniej plik players.db

4. Przejść do zakładki "Przeglądarka danych", tam można wybrać jedną z dwóch tabel: players i players_compact

Pierwsza tabela, players, ma pola (kolumny):
- id - numer wiersza w tabeli
- pid - id zawodnika w sokkerze, doklejając to id do końca adresu https://sokker.org/player/PID/ można uzyskać stronę zawodnika w sokkerze
- team_id - id zespołu zawodnika
- name - imię i nazwisko zawodnika
- country - id kraju z którego pochodzi zawodnik, id kraju który nas interesuje można uzyskać np. na stronie Świat: https://sokker.org/world, to jest liczba na lewo od flagi kraju w tabeli na dole
- age - wiek zawodnika
- height - wzrost zawodnika
- weight - waga zawodnika, pomnożona przez 10 żeby nie było liczb po przecinku
- value - wartość zawodnika (w dolarach/euro, żeby uzyskać złotówki trzeba pomnożyć przez 4)
- value_adjusted - wartość zawodnika jaką by miał, gdyby był w nadboskiej formie (z dokładnością do ±2%)
- wage - pensja zawodnika (w dolarach/euro)
- form - forma zawodnika (liczbowo, 0 - tragiczna, 18 - nadboska)
- goals, assists, matches - zwykłe gole, asysty i liczba zwykłych meczów zawodnika
- nt_goals, nt_assists, nt_matches - reprezentacyjne gole, asysty i liczba reprezentacyjnych meczów zawodnika
- nt_status - informacja o tym, czy zawodnik jest aktualnie w reprezentacji; 0 - nie jest, 1 - jest w dorosłej reprezentacji, 2 - jest w młodzieżowej reprezentacji
- season - sezon w którym ostatnio zawodnik był na liście transferowej (NULL oznacza brak danych)
- week - tydzień sezonu w którym ostatnio zawodnik był na liście transferowej (NULL oznacza brak danych)
- weeks_ago - ile tygodni temu zawodnik był ostatnio na liście transferowej (NULL oznacza brak danych)
- stam - kondycja w momencie ostatniego transferu (NULL oznacza brak danych, tak jak dla pozostałych skilli)
- pace - szybkość w momencie ostatniego transferu
- tech - technika w momencie ostatniego transferu
- pass - podania w momencie ostatniego transferu
- gk - skill bramkarza w momencie ostatniego transferu
- def - obrona w momencie ostatniego transferu
- play - rozgrywanie w momencie ostatniego transferu
- str - strzał w momencie ostatniego transferu
- exp, tw, disc - doświadczenie, zgranie, dyscyplina taktyczna zawodnika
- best_note - najlepsza ocena zawodnika wśród ostatnich kilkunastu meczów rozegranych w jego klubie (NULL oznacza, że nie zagrał w żadnym z tych meczów)
- main_order - formacja w której zawodnik grał ostatnio najczęściej
- best_note_order - formacja w której zawodnik uzyskał najwyższą ocenę z ostatnio granych meczów
- avg_note - średnia ocena wśród ostatnio rozegranych meczów
- all_notes - wszystkie oceny z ostatnio rozegranych meczów (w kolejności od najnowszego)
- all_orders - wszystkie formacje w których zawodnik ostatnio zagrał, (w kolejności od najnowszego)
- match_ids - id meczów w których zawodnik ostatnio zagrał (w kolejności od najnowszego)

Tabela players się mocno rozrosła po dodaniu skilli, dlatego dodałem też tabelę players_compact, która zawiera tylko najważniejsze informacje, powinna być przyjemniejsza do przeglądania:
- pid - id zawodnika w sokkerze, doklejając to id do końca adresu https://sokker.org/player/PID/ można uzyskać stronę zawodnika w sokkerze
- name - imię i nazwisko zawodnika
- team_id - id zespołu zawodnika
- ctry - id kraju z którego pochodzi zawodnik, id kraju który nas interesuje można uzyskać np. na stronie Świat: https://sokker.org/world, to jest liczba na lewo od flagi kraju w tabeli na dole
- age - wiek zawodnika
- nt_status - informacja o tym, czy zawodnik jest aktualnie w reprezentacji; 0 - nie jest, 1 - jest w dorosłej reprezentacji, 2 - jest w młodzieżowej reprezentacji
- value - wartość zawodnika (w dolarach/euro, żeby uzyskać złotówki trzeba pomnożyć przez 4)
- value_adj - wartość zawodnika jaką by miał, gdyby był w nadboskiej formie (z dokładnością do ±2%)
- form - forma zawodnika (liczbowo, 0 - tragiczna, 18 - nadboska)
- weeks_ago - ile tygodni temu zawodnik był ostatnio na liście transferowej (NULL oznacza brak danych)
- stam - kondycja w momencie ostatniego transferu (NULL oznacza brak danych, tak jak dla pozostałych skilli)
- pace - szybkość w momencie ostatniego transferu
- tech - technika w momencie ostatniego transferu
- pass - podania w momencie ostatniego transferu
- gk - skill bramkarza w momencie ostatniego transferu
- def - obrona w momencie ostatniego transferu
- play - rozgrywanie w momencie ostatniego transferu
- str - strzał w momencie ostatniego transferu
- disc - dyscyplina taktyczna zawodnika
- avg - średnia ocena wśród ostatnio rozegranych meczów
- best - najlepsza ocena zawodnika wśród ostatnich kilkunastu meczów rozegranych w jego klubie (NULL oznacza, że nie zagrał w żadnym z tych meczów)
- main_order - formacja w której zawodnik grał ostatnio najczęściej
- best_order - formacja w której zawodnik uzyskał najwyższą ocenę z ostatnio granych meczów

5. Aby przefiltrować dane należy wpisać odpowiedni tekst w pole Filtr pod nazwą odpowiedniej kolumny:
- jeśli chcemy uzyskać wyniki z dokładnie tą wyszukiwaną wartością należy poprzedzić tę wartość znakiem =, np. jeśli chcemy uzyskać tylko zawodników z Polski należy w filtrze w kolumnie country / ctry wpisać tekst: =1
- jeśli chcemy uzyskać tylko zawodników młodzieżowych należy wpisać w kolumnie age <=21 (albo <22), podobnie jak chcemy tylko starszych to należy tam wpisać >=22 (albo >21), tak samo się wszędzie indziej filtruje wartości mniejsze-równe / mniejsze / większe-równe / większe
- jeśli nie chcemy mieć w wynikach bramkarzy to należy w polach main_order i best_note_order wpisać tekst: /^((?!GK).)*$/
- jeśli chcemy wyniki tylko z jakiegoś zakresu, np. wiek od 25 do 30 lat to należy wpisać w filtr age tekst: 25~30

6. Aby sortować wyniki po danej kolumnie należy kliknąć na nazwę tej kolumny, jedno kliknięcie spowoduje sortowanie od najniższej wartości, a drugie kliknięcie od najwyższej wartości

7. Aby usunąć wprowadzone filtry / sortowanie należy kliknąć nad tabelą na przyciski: "Wyczyść wszystkie filtry", "Przywróć porządek wierszy do domyślnego"

8. Kolumny można ukrywać (prawym przyciskiem myszy na kolumnę -> Ukryj kolumnę/y), ale po wprowadzeniu jakiegokolwiek filtra kolumny ukryte kolumny pojawiają się na nowo, więc polecam korzystać z ukrywania kolumn jak już wprowadzimy wszystkie filtry i sortowanie

Przykładowe wyszukanie zawodników U21 z Polski, nie-bramkarzy, posortowanych po średniej nocie meczowej, z ukrytymi niektórymi kolumnami:



9. Jeśli chcemy mieć wszystkie wartości w złotówkach zamiast w euro/dolarach to przechodzimy do zakładki "Polecenia SQL", w polu "SQL 1" wpisujemy:

UPDATE players SET value = value*4, value_adjusted = value_adjusted*4, wage = wage*4

klikamy RAZ (i nigdy więcej na tej bazie) przycisk uruchomienia polecenia:

przechodzimy z powrotem do zakładki "Przeglądarka danych", odświeżamy widok (np. naciskając F5 na klawiaturze), wartości będą w tej bazie już zawsze w złotówkach (do momentu pobrania pliku z bazą od nowa)

10. Jak ktoś ma jakiekolwiek pytania to proszę je pisać tutaj, nie będę odpisywał na wiadomości prywatne dotyczące tej bazy
- plik z bazą danych będzie aktualizowany co tydzień, w poniedziałki. Po tym jak ten plik zaktualizuję trzeba go sobie oczywiście pobrać na nowo żeby mieć aktualną bazę.
(edited)
(edited)
2022-04-11 23:43:35
Fantastyczna robota!!!!!
2022-04-11 23:44:30
Super robota, dla selekcjonerów na pewno będzie przydatne :)
2022-04-11 23:59:59
Super, jutro będę ogarniał temat! Zobaczymy czy jacyś Anglicy się przede mną nie ukryli :)
(edited)
2022-04-12 00:01:08
Jakbyś czytał to byś nie zadawał takich pytań... :p
2022-04-12 00:01:31
W pracy jestem więc ma szybko przejrzałem:P
(edited)
2022-04-12 00:07:04
Super robota, nie jeden z nas skorzysta jak nie teraz to w przyszłości.
Dziękujemy:)
Fajnie że cały czas coś się dzieje, i powstają nowe inicjatywy. Oby tak dalej.
2022-04-12 00:08:53
A ja nie mogłem sobie odmówić :)
2022-04-12 00:08:59
Super robota Mikoosa, ale kolejny raz user wykonuje robotę za właścicieli tego serwisu. To powinno być zaimplementowane w grę.

@Loczek, ogarnij się!
2022-04-12 00:11:40
ej tam już nie narzekajmy, chociaż mamy co robić w wolnej chwili
Liczy się fan:)
2022-04-12 08:30:17
super, podziękować dobry człowieku :)

wszystko ładnie działa :)
2022-04-12 08:37:30
I mnie uprzedzil :D tez nad czyms podobnym pracowalem :D
2022-04-12 08:52:26
Dobra robota, ile Ci to zajęło? 5 minut?;p
2022-04-12 09:13:01
a aktualizacja jest na pewno na 11.04?, bo mi się sporo wartości rozjeżdżają
2022-04-12 09:46:08
Pięknie! może przypniemy do tematu obecnie dostępny marker "poradnik"? Będzie łatwiej filtrować.
2022-04-12 10:41:14
@Jurro, @Borwoy, @Damianek1410, @crisr Spoko :)

@mangol Było szybciej robić, ja to już od miesiąca na później odkładałem :P

@Axaros Samo napisanie skryptu do zbierania zajęło może z 6 godzin. Skrypt ma 383 linie, z czego 30% zajmuje lista lig we wszystkich krajach. :P Tak do z oddali wygląda:


Dane się ze 2-3 godziny zbierają, jakieś sto tysięcy XMLi się musi pobrać, z czego 80% to XMLe z meczów

@crisr Wziąłeś pod uwagę że wartości są w euro i trzeba je przez cztery pomnożyć? I to, że value_adjusted to jest tylko przewidywana wartość gdyby zawodnik miał formę nadboską? U mnie się wszystko pokrywa, więc powinno być dobrze.



@Arkady Spoko, może być taki marker, pewnie nikt po tym wyszukiwać nie będzie, ale będzie ładniej wyglądało :P
na Sokker International zrobiłem temat w języku angielskim, tam możesz NT przypiąć, tak ma tam przypięte podobna baza "Scouting database"
(edited)