Spis treści:

Co potrafi, a czego nie potrafi to oprogramowanie?

Ten program został zaprojektowany do przeprowadzania seryjnej analizy w widne karty rozdań wygenerowanych na podstawie warunków zdefiniowanych przez użytkownika. Produkuje on, jako rezultat działania, średnią liczbę lew branych w widne karty w zdefiniowanych kontraktach (mianach + rozgrywających graczach).

Aplikacja przeznaczona jest dla graczy z minimalnymi umiejętnościami programistycznymi, więc jeśli uważasz ją za ograniczającą możliwości, być może łatwiej będzie Ci użyć bezpośrednio Dealera z wbudowanym wsparciem GIBa.

Ta aplikacja potrafi:

Ta aplikacja nie potrafi:

Pamiętaj proszę, że już sam Dealer pozwala na rozbudowaną analizę statystyczną generowanych rozdań. Więcej informacji udzielić może opis akcji "average" i "frequency" skryptów Dealera.

Przykłady użycia:

Pierwsze kroki

Aplikacja do uruchomienia wymaga obecności w komputerze środowiska .NET 3.5.

Instalacja programu ogranicza się to rozpakowania plików programu z archiwum do wybranego, docelowego folderu, oraz uruchomienia pliku Analizator9000.exe, zawartego w nim.

Przed uruchomieniem, upewnij się, że wypakowałeś z archiwum wszystkie podfoldery, wymagane do pracy programu:

Główne okno progamu dzieli się na trzy podstawowe sekcje (zaznaczone na grafice):

  1. sekcję generowania rozdań (lewa strona okna)
  2. sekcję analizy w widne karty (prawa górna stron okna)
  3. sekcję wyświetlania postępu i wyników (prawa dolna strona okna)

Obie częsci program mogą być używane zupełnie niezależnie od siebie (ale nie równolegle).

Generowanie

Analizator9000 używa programu Dealer do wygenerowania zestawu rozdań do analizy. Powinieneś zapoznać się z podstawową składnią skryptów Dealera. Ich opis dostępny jest w dokumentacji Dealera.

Ta sekcja aplikacji składa się z kontrolek wejściowych dla parametrów generowania zestawu rozdań. Poniższy opis posiłkuje się przykładem o złozoności wystarczającej do zademonstrowania większości funkcjonalności aplikacji.

  1. Sekcja kart wstępnie rozdanych. Wypełnij pola dla kart, których pozycja jest ustalona przed rozlosowaniem pozostałej częsci talii. Możesz użyć zarówno małych, jak i wielkich liter, symbolu 'T' dla dziesiątki, oraz zarówno angielskich (AKQJ), jak i polskich (AKDW) symboli figur. Przykład pokazuje przydzielenie N AK9854 AK942 8 9, bez ujawnienia pozycji żadnej innej karty.
  2. Sekcja warunków. Określ warunki sprawdzane dla każdego z rozlosowanych rozdań, zgodnie ze składnią Dealera. Tekst wprowadzony w to pole zostanie wstawiony jako zawartość instrukcji "condition" do wynikowego skryptu Dealera. Nie używaj instrukcji przypisania zmiennych. Przykład pokazuje uproszczony warunek nieforsującej odpowiedzi 1NT po wspólnojęzykowym otwarciu 1: 7-11 PC bez fitu pik, z sześciokartem tylko w sile 7-9 PC.
  3. Wyrażenia do obliczenia średniej wartości. Wprowadź każde wyrażenie w nowej linii, a Dealer obliczy średnią wartość dla każdego z nich w zestawie rozdań. Możesz poprzedzić wyrażenie etykietą, która zostanie później dodana również do wyjścia Dealera. Przykład określa jedno wyrażenie, "piki dłuższe od kierów", które określi procent rozdań, w których fit pikowy pary N-S jest dłuższy od kierowego.
  4. Limity liczby rozdań. Górna wartość określa maksymalną liczbę rozdań, jakie Dealer będzie losować. Dolna - maksymalną liczbę rozdań spełniających określone przez użytkownika warunki. Dealer kończy generowanie rozdań w momencie, gdy osiągnie którykolwiek z tych limitów. W naszym przykładzie chcemy, by Dealer wyprodukował 1.000 rozdań, losując przy tym nie więcej niż 100.000 rozdań.
  5. Przycisk generowania. Inicjuje generowanie rozdań.
  6. Pole wybory pliku wejściowego. Pozwala na wypełnienie pól formularza zawartością istniejącego pliku Dealera. Uwaga: nie wszystkie informacje zawarte w plikach Dealera zostają zachowane. Aplikacja uzupełni autmoatycznie pola wstępnie rozdanych kart informacją z instrukcji "predeal", przepisze instrukcję "condition", wartości "generate" i "produce", a także wszystkie akcje typu "average" z sekcji "ction" skryptu. Wszystkie pozostałe instrukcje, w tym przypisania zmiennych sprzed sekcji "predeal" i "condition" oraz akcje inne niż "average", zostaną zignorowane.

Po kliknięciu przycisku, zestaw rozdań zostaje wygenerowany. Możesz śledzić postęp oraz wyjście programu Dealer w sekcji wyświetlającej status w oknie programu. Każde wygenerowane rozdanie zostanie wypisane jako nowa linia w polu wyjściowym.

Gdy generator zakończy pracę, wyświetli zwięzłe podsumowanie z wyjścia Dealera. Będzie ono zawierać liczbę wylosowanych i wyprodukowanych rozdań, czas działania programu oraz wartości średnie wyrażeń określonych przez użytkownika. W przykładzie, Dealer wylosował 3.937 rozdań, z których pożądany 1.000 spełniał zdefiniowane warunki. W 27,1 procent rozdań fit pikowy pary N-S był dłuższy od kierowego. Wykonanie tego zadania zajęło Dealerowi 2 sekundy.

Proces generowania rozdań zakończył się dwoma dodatkowymi operacjami. Jak widać na zrzucie ekranu wyjścia programu, wygenerowane rozdania zostały zapisane do pliku tekstowego (*.deals) w katalogu "files". Wynikowy skrypt wejściowy Dealera, powstały z danych wprowadzonych przez użytkownika, również został zapisany (jako plik .dealer). Możesz uzyć go ponownie w celu odtworzenia tych samych warunków losowania innego zestawu rozdań. Oba pliki pokazano poniżej.

Drugim wynikiem zakończenia pracy generatora jest ułatwienie drugiej fazy korzystania z programu - analizy rozdań. APlikacja wstawiła świeżo wygenerowany plik z rozdaniami do pola wyboru pliku w drugiej części okna programu - sekcji analizy rozdań.

Analiza

Sekcja analizy rozdań jest mniej złożona od sekcji generowania. Składa się z:

  1. Pola wyboru pliku zestawu rozdań. Musisz załadować plik z rozdaniami. Jeśli właśnie wygenerowałeś rozdania przy pomocy aplikacji, pole to zostanie automatycznie wypełnione.
  2. Pól wyboru kontraktu. Możesz wybrać dowolną kombinację rozgrywającego i miana kontraktu do analizy. Kliknięcie w etykietę wiersza przełączy wszystkie pola wyboru w wierszu, kliknięcie w kolumnę przełączy wszystkie pola w danej kolumnie, a kliknięcie przycisku w narożniku przełączy wszystkie pola wyboru. Kontynuując przykład z poprzedniej części podręcznika, wybraliśmy dla BCalc analizę liczby lew branych przy grze w kolory starsze z ręki otwierającego oraz w bez atu z ręki odpowiadającego.
  3. Przycisku analizy. Rozpoczyna analizę rozdań.UWAGA! Analiza może zająć dużo czasu, jeśli wybierzesz zbyt ambitną liczbę kontraktów do przeanalizowania i/lub rozmiar próby. Eksperymentuj z umiarem!
  4. Przycisku przerwania. Pozwala on na zatrzymanie analizy, gdy się już rozpocznie. Anulowanie analizy zachowuje (zapisuje) częściowe wyniki, ale obecnie nie jest możliwe wznowienie analizy od punktu, w którym została przerwana.

Możesz wczytać dowolny z plików .deals, wygenerowanych przez Analizator9000 i zapisanych w katalogu "files". Możesz również dostarczyć własny zestaw rozdań, dopóki będzie on się trzymać następującego formatu (przynajmniej obecnie, do czasu rewizji pomysłu):

Po rozpoczęciu analizy, aktualne wyniki wyświetlane są w polu poniżej, jak pokazuje zrzut ekranu. Wyniki przyjmują postać tabeli ze wszystkimi parami miano-rozgrywający. Wyświetlana jest aktualna średnia liczba lew oraz odchylenie standardowe. Każdy pojedynczy wynik analizy zapisywany jest do pola statusu oraz zachowywany do pliku.

Poniższe zrzuty ekranu przedstawiają wyniki anulowanej oraz zakończonej analizy rozdań. Pamiętaj, że aplikacja analizuje równolegle wiele rozdań (aktualnie do 10) i że analiza każdego z nich może zająć różną ilość czasu, w zależności od rozkładu.

Po zakończeniu (bądź anulowaniu) analizy, rezultaty zapisywane są w katalogu "files" do przejrzenia. Wszystkie cząstkowe wyniki analizy w widne karty (każdego kontraktu każdego rozdania) zapisywane są na bieżąco. Ostateczny wynik (podsumowanie średnich wartości) dołączony jest na końcu pliku. Poniższe zrzuty ekranu pokazują zawartość folderu "files" dla naszej przykładowej analizy: N bierze w kiery średnio 10.4 lewy, w piki - 10.0 lewy, a S bierze średnio 7.6 lewy w bez atu.


Analiza kontraktów (nowość w wersji 0.10)

W wersji 0.10 udostępniono nową funkcjonalność: analizę kontraktów z punktu widzenia zapisu oraz wyniku maksowego i impowego.

Zakładka "Analiza kontraktów" [1] w sekcji analizy pozwala oszacować średni rezultat dla zdefiniowanych kontraktów, wyznaczony dla każdego rozdania z analizowanego zbioru.

Kontrakty definiowane są przez:

Po określeniu kontraktów przeznaczonych do analizy i określeniu założeń rozdania, można rozpocząć analizę. Postęp analizy wyświetlany jest na wspólnym pasku postępu w sekcji analizy okna aplikacji. Dodatkowo, w trakcie analizy, aktualizowane są bieżące jej wyniki, po prawej stronie zakładki kontraktów. [6]

Analiza przeprowadzana jest poprzez wyznaczenie liczby lew w widne i zapisu rozdania dla każdego zdefiniowanego kontraktu. Zapisy przeliczane są na punkty turniejowe oraz IMPy, dla każdego kontraktu w protokole rozdania. W końcu, wyniki te są uśredniane dla wszystkich wygenerowanych rozdań.

Jako przykład analizy, powyższa ilustracja przedstawia problem słabej ręki z 5-6 kierami do klasycznego, silnego otwarcia bez atu. Mamy dwa alternatywne kontrakty: 1BA i 2, oba rozgrywane z silniejszej ręki.

Wygenerowaliśmy [1] 300 rozdań pobieżnie spełniających warunki dla obu rąk (15-17 PC bez pięciokartu w ręce otwierającego, 0-4 PC z 5-6 kierami w ręce odpowiadającego; analiza nie bierze pod uwagę możliwości silnego przyjęcia transferu).

Następnie zdefiniowaliśmy oba kontrakty [2], rozgrywane przez N, w protokole rozdania. Jako że nie potrzebujemy symulacji zachowania sali, a skupiamy się tylko na decyzji "pas czy transfer", porównując oba kontrakty bez szerszego kontekstu, ich częstości pozostawiamy jako 1.

Po rozpoczęciu analizy [3], wszystkie wymagane kombinacje miana i rozgrywającego są automatycznie ustawiane w module analizy w widne. Postęp analizy wyświetla się w obszarze statusu okna aplikacji.

Po zakończeniu analizy możemy zobaczyć jej wyniki obok zdefiniowanych kontraktów (ilustracja po prawej): transfer wygrywa na maksy w ok. 83% rozdań i zyskuje (przed partią) średnio 2.7 IMPa względem pasa.

Szczegoły analizy dostepne są w obszarze statusu okna aplikacji oraz są zapisywane do pliku wyjściowego, wraz z podsumowaniem analizy.

Od wersji 0.10.1, wyliczana jest również szansa realizacji kontraktów.