Niedawno w sieci pojawił się ciekawy programik, napisany przez gracza o nazwisku Benjamin Peebles-Mundy. Pozwala on szybko przetworzyć informacje zawarte w profilu na stronie Planeswalker Points (https://www.wizards.com/Magic/PlaneswalkerPoints) w taki sposób, aby otrzymać raport pokazujący skuteczność danego gracza w zależności od formatu oraz od typu turnieju. W wyniku działania aplikacji dostajemy informacje na temat ilości rozegranych gier, ilości naszych zwycięstw, porażek oraz remisów, a także od razu wyliczoną procentową skuteczność w danej kategorii. Wszystko to zostaje podane w schludnej i przejrzystej tekstowej formie, a opisane zostało na stronie autora: http://www.zizibaloob.com/pwps.html.
Autor powyższego programu poskąpił niestety czasu na dokładniejsze wyjaśnienie obsługi swego dzieła, przez co okazuje się ono dla niektórych trochę nieprzystępne. Poniżej prezentuję Wam krótki tutorial jak sobie poradzić z tym ustrojstwem, a na końcu macie przykład, jak wyglądają takie statystyki.
PWPScraper
Po pierwsze, zamiast ściągać pliki ze strony autora, możecie wejść tutaj: http://www.sendspace.com/file/lmvv32. Wrzuciłem tam program już skompilowany, co pozwoli Wam zaoszczędzić troszkę roboty (uwaga: jeśli z jakiegoś powodu ściągnięta wersja nie zadziała, pod koniec artykułu znajduje się sekcja 'Co może pójść źle’. Znajdziecie tam min. instrukcję samodzielnego skompilowania programu). Klikamy poniższy link:Po czym zapisujemy sobie archiwum gdzieś na dysku i rozpakowujemy folder 'pwp’ WinRarem. Uwaga: aby w dalszej części zaoszczędzić sobie trochę czasu związanego wyszukiwaniem folderu, sugeruję od razu zapisać go w następującej lokalizacji: C:\Użytkownicy\Twój_profil.
Teraz czas na przygotowanie swoich wyników tak, aby program je zrozumiał. Odpalamy przeglądarkę (najlepiej Google Chrome. Dlaczego? Patrz sekcja 'Co może pójść źle’) i logujemy się do swojego profilu na stronie Planeswalker Points, przechodzimy do zakładki 'History’ i w prawym górnym rogu wybieramy 'View: Events Only’:
Następnie odpalamy JavaScript Console (można użyć skrótu klawiszowego Ctrl + Shift + I albo wejść w Narzędzia → JavaScript Console), wklejamy następujący kod: $(„a.Expand”).click(), klikamy enter i czekamy aż wszystkie turnieje nam się otworzą, co może zająć nawet kilka minut jeśli macie dużo eventów na swym koncie (uwaga: jeśli powyższa komenda z jakiegoś powodu nie działa – musicie ręcznie rozwinąć każdy turniej). Następnie klikamy Ctrl + A żeby wszystko zaznaczyć, Ctrl + C żeby skopiować, otwieramy notatnik (Start → Wszystkie Programy → Akcesoria → Notatnik) i wklejamy (Ctrl + V). Taki oto plik zapisujemy sobie gdzieś na dysku, przy czym najlepiej zrobić to opcją 'Zapisz jako”, upewniając się, że wybrane jest domyślne kodowanie ANSI:
Po otrzymaniu ostrzeżenia o utraconych znakach w wyniku zapisu w ANSI klikamy OK (acz nadal mogą się w tekście pojawić znaki nieobsługiwane – patrz dalej sekcja 'Co może pójść źle’). Rozszerzenie zachowujemy domyślne, tj. ’.txt’.
Uwaga: podobnie jak przy folderze pwp, tak i tutaj sugeruję dokonać zapisu w C:\Użytkownicy\Twój_profil
Czas odpalić program i przygotować swoje statystyki. Wchodzimy w wiersz poleceń w Windowsie (Start → wpisujemy 'cmd’ w oknie wyszukiwania → klikamy enter, ew. wciskamy jednocześnie przycisk z logiem Windows i klawisz R, wpisujemy 'cmd.exe’ w konsoli 'Uruchamianie’ i naciskamy enter):
Przed naszymi oczami pojawia się czarna konsola z domyślną lokalizacją ustawioną na C:\Users\Twój_profil. Jeżeli folder pwp zapisaliśmy właśnie tam, to wpisujemy następującą komendę: java pwp.PWPScraper ścieżka_do_pliku_z_wynikami jak na przykładzie poniżej:
Uwaga: wiersz poleceń rozróżnia wielkość znaków
Uwaga 2: jeśli jednak zapisałeś folder pwp gdzie indziej niż sugerowałem wcześniej, to musisz go teraz poszukać – powyższe polecenie należy odpalać z folderu zawierającego tenże folder pwp. Nawigacja w wierszu poleceń: 'cd nazwa_folderu’ – otwiera dany folder, 'cd ..’ wychodzi folder w górę. Jak się zgubimy, można wpisać 'dir’ i otrzymamy zawartość folderu w którym się obecnie znajdujemy. Przeskoki można łączyć, np. 'cd ..\..’ przeniesie nas od razu 2 foldery w górę. Czyli przykładowo, jeśli rozpakowałeś folder pwp do folderu 'Program Files’ na dysku C, to powyższą komendę wpisujesz dopiero po następującej sekwencji:
Rezultatem powinny być Wasze wyniki w formie tekstowej wyświetlone w konsoli:
Aby skopiować z konsoli, klikamy prawym przyciskiem myszy na wolnym polu, wybieramy 'Zaznacz wszystko’, następnie wciskamy Ctrl + C i wklejamy dane do dowolnego edytora (np. notatnika). Zwróćcie uwagę, że w ten sposób skopiujemy także polecenia na początku i końcu wydruku, więc warto je usunąć przed puszczeniem swoich statystyk w świat.
Można też od razu zapisać dane do pliku podczas uruchamiania programu – wtedy wystarczy dodać na końcu polecenia > nazwa_pliku.txt. (np.:
java pwp.PWPScraper C:\Users\Endrju\myevents.txt > stats.txt
utworzy plik stats.txt w folderze C:\Users\Endrju). Niestety taki plik traci trochę na przejrzystości, bo gubi podział linijek (tj. wszystkie wyniki są wypisane w jednym ciągu) i trzeba sobie potem ręcznie podorabiać 'entery’.
Celem zwiększenia przejrzystości swoich statystyk, polecam wykorzystać stronkę http://pastebin.mozilla.org/ – po wklejeniu swoich wyników stronka przedstawi je w bardzo sympatycznej formie z automatycznie ponumerowanymi wierszami.
Proste? Proste. O ile po drodze nie wyskoczył żaden błąd :) Jeśli tak się stało, nie panikuj tylko szukaj rozwiązania poniżej:
Co może pójść źle?
1. Po wpisaniu java pwp.PWPScraper ścieżka_do_pliku_z_wynikami w wierszu poleceń otrzymujemy komunikat:
Nazwa 'java” nie jest rozpoznawana jako polecenie wewnętrzne lub zewnętrzne, program wykonywalny lub plik wsadowy.
Rozwiązanie: Szukamy instalacji Java Runtime Environment na naszym komputerze (domyślnie: C:\Program Files\Java\jreX, gdzie X to numer wersji). Otwieramy tenże folder, a w nim folder 'bin’ i kopiujemy ścieżkę do niego, np.: C:\Program Files\Java\jre7\bin. Następnie wchodzimy do menu Start, klikamy prawym przyciskiem myszy na Komputer, wybieramy Właściwości, następnie Zaawansowane Ustawienia Systemu, a tam Zmiennie Środowiskowe (dla Windowsa XP we Właściwościach wybieramy zakładkę Zaawansowane i tam Zmienne Środowiskowe).
Wybieramy 'Nowa’ i następnie w nazwie wpisujemy PATH, a w wartości – skopiowaną wcześniej ścieżkę:
Zapisujemy zmiany i otwieramy wiersz poleceń na nowo – polecenie Java powinno już być rozpoznawane.
Uwaga: Po takim zabiegu domyślne komendy systemowe jak 'ping’ czy 'ipconfig’ przestaną być rozpoznawalne – aby je później odzyskać, musimy zmiennej PATH przywrócić domyślną ścieżkę, czyli 'C:\Windows\System32 dla systemu Windows zainstalowanego na dysku C.
2. Po uruchomieniu programu otrzymujemy następujący komunikat:
Exception in thread „main” java.lang.StringIndexOutOfBoundsException: String index out of range: 1
Oznacza to w skrócie, że nasz plik tekstowy zawiera informacje, których program nie potrafi ogarnąć. Przykładowo, mogliśmy przypadkowo wybrać także jakiś achievement a nie tylko eventy na stronie Planeswalker Points, lub format zapisu nie odpowiada temu, czego się programik spodziewał. Niestety ta druga opcja może być spowodowana użyciem innej przeglądarki niż zalecana – autor napisał kod pod zapis z Google Chrome, w przypadku innych efekt końcowy troszkę się różni. Przykładowo, Chrome prezentuje każdy wynik w formie:
2Win(+24) Kowalski, Jan
Podczas gdy np. Firefox zrobi to następująco:
1
Win
(+3)
Malinowski, Michał
Gdzie każdy enter okazuje się niespodziewanym znakiem dla programu i powoduje wywalenie komunikatu o błędzie. Nie wiem jak będzie w przypadku IE, Opery czy jakichkolwiek innych przeglądarek – możecie spróbować, ale jeśli otrzymacie powyższy błąd to po prostu przesiądźcie się na Chrome’a.
3. Po uruchomieniu programu otrzymujemy Lifetime Record 0-0 i brak jakichkolwiek szczegółów:
Jest to spowodowane błędnym zakodowanie pliku .txt – dane zapisane z kodowaniem Unicode dawały mi taki właśnie rezultat, podczas gdy zmiana kodowania do ANSI bez żadnego modyfikowania zawartości pozwalała już uzyskać prawidłowe rezultaty. Celem zmiany kodowania otwieramy nasz plik w notatniku, wybieramy Plik → Zapisz Jako → kodowanie ustawiamy na dole okna.
4. Po uruchomieniu programu otrzymujemy błąd
Exception in thread „main” java.nio.charset.UnmappableCharacterException: Input
length = 1
W plik .txt wdał nam się jakiś znaczek, którego program nie umie przetworzyć. Trzeba poszukać nietypowych znaczków i zamienić je na coś innego – na pewno problemy są z '&’, nie wiem czy z czymś jeszcze.
5. Skompilowany program nie chce się uruchomić (albo po prostu chcecie wiedzieć jak sobie to skompilować samodzielnie):
- Ściągamy pliki .java ze strony autora programu: http://www.zizibaloob.com/pwps.zip
- Rozpakowujemy je do pliku pwp
- Upewniamy się, że posiadamy Java Development Kit zainstalowany na komputerze (jeśli nie → http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html pobieramy odpowiednią wersję)
- W zmiennych środowiskowych zmieniamy wartość PATH na folder bin w jdk, nie jre (czyli przykładowo C:\Program Files\Java\jdk1.7.0_25\bin)
- W wierszu poleceń wchodzimy do folderu pwp i uruchamiamy następującą komendę:
javac *.java
- Powyższe polecenie powinno skompilować program i utworzyć pliki .class w folderze pwp. Wychodzimy folder w górę (’cd ..’) i uruchamiamy program zgodnie z wcześniejszym opisem (’java pwp.PWPScraper ścieżka_do_pliku_z_wynikami > ewentualny_plik_do_zapisu’)
Oczywiście nie gwarantuję, że to wszystkie problemu z jakimi możecie się spotkać – w razie czego piszcie w komentarzach, a jeśli uda Wam się też od razu znaleźć rozwiązanie, to tym bardziej się nim podzielcie!
Dla przykładu, w spoilerze są lifetime statsy Obera:
Booster Draft:
Overall record: 81-36-5
Win percentage ignoring draws: 69.23076923076923
Win percentage including draws: 66.39344262295081
Standard:
Overall record: 209-111-18
Win percentage ignoring draws: 65.3125
Win percentage including draws: 61.834319526627226
Sealed:
Overall record: 335-112-27
Win percentage ignoring draws: 74.9440715883669
Win percentage including draws: 70.67510548523207
Modern:
Overall record: 11-5-3
Win percentage ignoring draws: 68.75
Win percentage including draws: 57.89473684210527
Legacy:
Overall record: 1-2
Win percentage ignoring draws: 33.33333333333333
Win percentage including draws: 33.33333333333333
Extended:
Overall record: 79-37-15
Win percentage ignoring draws: 68.10344827586206
Win percentage including draws: 60.30534351145038
Trios – Limited:
Overall record: 3-6-1
Win percentage ignoring draws: 33.33333333333333
Win percentage including draws: 30.0
2 HG Sealed:
Overall record: 11-4-2
Win percentage ignoring draws: 73.33333333333333
Win percentage including draws: 64.70588235294117
Vintage:
Overall record: 2-3
Win percentage ignoring draws: 40.0
Win percentage including draws: 40.0
Block Constructed:
Overall record: 36-20-4
Win percentage ignoring draws: 64.28571428571429
Win percentage including draws: 60.0
——————————
Magic Tournament:
Overall record: 32-13-5
Win percentage ignoring draws: 71.11111111111111
Win percentage including draws: 64.0
Magic Grand Prix:
Overall record: 54-29-3
Win percentage ignoring draws: 65.06024096385542
Win percentage including draws: 62.7906976744186
Magic Grand Prix Trial:
Overall record: 74-50-6
Win percentage ignoring draws: 59.67741935483871
Win percentage including draws: 56.92307692307692
Magic Pro Tour Qualifier:
Overall record: 125-44-26
Win percentage ignoring draws: 73.96449704142012
Win percentage including draws: 64.1025641025641
World Magic Cup Qualifier:
Overall record: 26-14
Win percentage ignoring draws: 65.0
Win percentage including draws: 65.0
Friday Night Magic:
Overall record: 8-3
Win percentage ignoring draws: 72.72727272727273
Win percentage including draws: 72.72727272727273
Magic Prerelease:
Overall record: 192-54-10
Win percentage ignoring draws: 78.04878048780488
Win percentage including draws: 75.0
Magic WPN Premium Tournament Qualifier:
Overall record: 1-2
Win percentage ignoring draws: 33.33333333333333
Win percentage including draws: 33.33333333333333
Public Event at Grand Prix:
Overall record: 3-5
Win percentage ignoring draws: 37.5
Win percentage including draws: 37.5
Magic Launch Party:
Overall record: 24-9-1
Win percentage ignoring draws: 72.72727272727273
Win percentage including draws: 70.58823529411765
Magic National Championship – Closed:
Overall record: 17-12
Win percentage ignoring draws: 58.620689655172406
Win percentage including draws: 58.620689655172406
Magic Event (TO Level 2 and Higher):
Overall record: 34-10-3
Win percentage ignoring draws: 77.27272727272727
Win percentage including draws: 72.3404255319149
Magic National Championship:
Overall record: 32-14-3
Win percentage ignoring draws: 69.56521739130434
Win percentage including draws: 65.3061224489796
Magic Pro Tour:
Overall record: 19-15
Win percentage ignoring draws: 55.88235294117647
Win percentage including draws: 55.88235294117647
Magic Worlds Team Competition:
Overall record: 1-3
Win percentage ignoring draws: 25.0
Win percentage including draws: 25.0
Magic World Championships (1996-2011):
Overall record: 10-8
Win percentage ignoring draws: 55.55555555555556
Win percentage including draws: 55.55555555555556
Magic European Championship:
Overall record: 5-1-1
Win percentage ignoring draws: 83.33333333333334
Win percentage including draws: 71.42857142857143
Magic:
Overall record: 103-47-17
Win percentage ignoring draws: 68.66666666666667
Win percentage including draws: 61.67664670658682
8 players Side Events:
Overall record: 6-0
Win percentage ignoring draws: 100.0
Win percentage including draws: 100.0
Magic National Qualifier:
Overall record: 2-3
Win percentage ignoring draws: 40.0
Win percentage including draws: 40.0
——————————
Lifetime record: 768-336-75
Win percentage ignoring draws: 69.56521739130434
Win percentage including draws: 65.13994910941476
P.S. – Taka opcja dla leniwych – jako alternatywa, macie też ten serwis: http://www.kavu.ru/
Andrzej „Łysy” Łysek – gracz z Krakowa, pojawiający się na turniejach od wyjścia Shadowmoora. Regularny bywalec wszelakich większych imprez magicowych, jak dotąd bez dużych sukcesów na koncie. Na MtGNews kryjący się pod nickiem Swierknieta_jodla, na MTGO występujący jako Endrju, a i tak dla wszystkich znany jako Łysy.
Poza Magiciem głównym jego konikiem jest rock progresywny i gra na gitarze basowej.