en pl

Generator rozkładów bdeal

Dokumentacja do programu bdeal dostępna jest w osobnym dokumencie (tylko w wersji anglojęzycznej).

API dla programistów

Dokumentacja znajduje się tutaj.

Uwagi wstępne

W programie obowiązuje angielskojęzyczne nazewnictwo.

Gracze oznaczeni są symbolami (od północnego w kolejności zegarowej):
N (North), E (East), S (South) i W (West).

Oznaczenie kart (od najstarszej):
A (As), K (King - król), Q (Queen - dama), J (Jack - walet), T (Ten - 10), 9, 8, 7, 6, 5, 4, 3, 2.

Symbole kolorów (od najstarszego):
S (Spades - piki), H (Hards - kiery), D (Diamonds - kara), C (Clubs - trefle).
Symbol N oznacza bez atu (No trump).

Wersja z Graficznym Interfejsem Użytkownika (GUI)

Skrypty pobierające rozkłady

Wstęp

Bridge Calculator umie automatycznie pobrać rozdania z turniejów. W tym celu korzysta z dedykowanych poszczególnym turniejom skryptów których zadaniem jest ściągnięcie z Internetu adresów plików (URLi) z których program będzie mógł pobrać rozkłady rozdań. Każdy skrypt jest plikiem z rozszerzeniem .lua.

Gdzie umieścić skrypty?

Jak napisać skrypt?

Bridge Calculator obsługuje skrypty napisane w języku Lua.

Lua jest jednym z najbardziej popularnych języków skryptowych. W Internecie dostępne są liczne materiały szkoleniowe i samouczki. Napisano na jego temat wiele książek. Jedną z nich, jest dostępna on-line Programming in Lua - znakomita pozycja autorstwa Roberto Ierusalimschy. Przed przystąpieniem do pracy warto też zapoznać się ze skryptami dystrybuowanymi wraz z Bridge Calculatorem.

Plik ze skryptem powinien być zapisany przy użyciu kodowania UTF-8 albo ASCII i w pierwszej linii powinien zawierać komentarz z nazwą turnieju (najlepiej w formacie: <nazwa miasta w którym odbywają się zawody>, <nazwa turnieju>).

W skryptach dedykowanych do Bridge Calculatora można korzystać ze wszystkich standardowych bibliotek Lua.

Lista rozdań do analizy, kopiowanie z wydruków KoPSa

Lista rozdań do analizy (bezpośrednio po włączeniu programu pusta) znajduje się w lewej części okna. By dodać do niej rozdanie użyj pierwszego od lewej przycisku znajdującego się pod listą. Program zapyta o: nazwę rozdania (ang. name) (jej podanie nie jest konieczne), kolor atutowy (ang. trump suit), wistującego (ang. on lead) lub rozgrywającego (ang. declarer) i rozkład kart (ang. distribution).

Rozkład kart możesz przykleić z pliku z rozkładami wygenerowanymi przez KoPSa.‪‎ W tym celu zaznacz w dokumencie z rozkładami odpowiedni rozkład, skopiuj go (zwykle za pomocą menu Edycja > Kopiuj lub skrótu klawiszowego ctrl+c) i wklej w pole rozkładu dodawanego rozdania (np. za pomocą skrótu klawiszowego ctrl+v).

Możesz też pobrać rozkłady bezpośrednio z Internetu lub pliku z frekansami KoPSa (drugi przycisk od lewej).

Przykłady dopuszczalnych formatów dla wpisywanego rozkładu

Wszystkie poniższe przykłady dotyczą tego samego rozkładu.

Format pełny (dla wpisania renonsu można użyć "-" lub "=="):

         8
         Q96
         AJT32
         AJ92
QJ53              AK962
AKT542            J8
-                 9654
KQ3               T8
         T74
         73
         KQ87
         7654

Format wzorowany na PBN (domyślna kolejność podawania rąk to: N, W, E, S). Spacje rozdzialają kolejne ręce, zaś kropki kolejne kolory (pisanie "-" dla renonsu nie jest więc konieczne):

8.Q96.AJT32.AJ92 QJ53.AKT542..KQ3 AK962.J8.9654.T8 T74.73.KQ87.7654

Format wzorowany na PBN z jawnym wskazaniem, że pierwszą ręką jest S (dalej w kolejności zegarowej, tj. S, W, N, E). Podanie ostatniej ręki jest opcjonalne (we wszystkich formatach) gdy podajemy rozkład pełnego rozdania, tj. gracze mają po 13 kart:

S:T74.73.KQ87.7654 QJ53.AKT542..KQ3 8.Q96.AJT32.AJ92

Wersja konsolowa

Polskie znaki w konsoli pod Windows

Aby polskie znaki były prawidłowo wyświetlane, należy kliknąć prawym przyciskiem myszy na górny pasek okna z konsolą i z menu kontekstowego wybrać: Właściwości -> Czcionka. Następnie wybrać czcionkę Lucida Console.

Obsługa

Zaraz po uruchomieniu program zapyta kolejno o: rozkład kard (karty posiadane przez kolejnych graczy), kolor atutowy i gracza do którego należy pierwszy wist.

Karty gracza należy podać w formacie: {piki}.{kiery}.{kara}.{trefle} (znak . separuje kolejne kolory) albo {piki} {kiery} {kara} {trefle} (używając symbolu - do wskazania renonsu), np. AKQJT2..642.AQT9 albo AKQJT2 - 642 AQT9. Wybór (ten i  wszystkie kolejne) zatwierdzić ENTERem.

Kolor atutowy oraz wistującego wskazujemy wpisując ich symbole (zgodnie z wcześniejszymi uwagami).

Program (po dokonaniu obliczeń, co może chwile potrwać) powinien wyświetlić wpisany wcześniej rozkład kart. Liczby znajdujące się przy kartach wistującego oznaczają ilość lew jaką weźmie on po zadysponowaniu każdej z kart (przy założeniu bezbłędnej gry wszystkich graczy w dalszej części rozdania).

Można teraz wskazać kartę wistu wpisując jej miano i kolor (w dowolnej kolejności). Program przeanalizuje i wyświetli sytuację po zagraniu danej karty (i umożliwi wskazanie dalszych zagrań). Opcjonalnie można wpisać x jako miano, lub w ogóle je pominąć co oznacza najniższą z kart posiadanych w danym kolorze. Kolor zagrywanej karty też często można pominąć (program zagra w jedyny posiadany kolor lub dołoży do koloru).

Można też specyfikować kilka instrukcji jednocześnie rozdzielając je spacjami, np. AC x x x może oznaczać nakaz zagrania asa trefl i dołożenia przez pozostałych graczy najmniejszych trefli.

Praca nieinteraktywna (na potrzeby skryptów, itd.)

Program może pracować bez interakcji z użytkownikiem (takie zachowanie pożądane jest np. przy wykorzystaniu programu w różnych skryptach do przeprowadzenia większej ilości analiz). Wystarczy uruchomić go z odpowiednimi opcjami, np.:

bcalconsole -e e -t <atu> -l <wistujący> -q -d <format> -c <rozkład>

By uzyskać więcej informacji i wyświetlić opis wszystkich możliwych parametrów wywołania wystarczy skorzystać z przełącznika --help:

bcalconsole --help

Wklejanie rozdań z wydruków programu KoPS

Uruchamiając program z odpowiednimi parametrami zysukjemy możliwość łatwego wklejenia do niego (ze schowka systemowego) rozkładów rozdań pochodzących z pliku wygenerowanego programem KoPS. Jeśli rozdanie które chcemy przeanalizować pochodzi ze strony html wygenerowanej KoPSem powinniśmy uruchomić program Bridge Calculator za pomocą kops_web.bat, jeśli zaś z pliku tekstowego to za pomocą kops_txt.bat

Na wydruku z KoPSa należy zaznaczyć rozkład interesującego nas rozdania i je skopiować (zwykle za pomocą menu Edycja > Kopiuj lub skrótu klawiszowego ctrl+c). Następnie wkleić rozkład w okno z programem (pod Windows można to zrobić klikając na ikonkę znajdującą się w lewym górnym rogu okna i z wyświetlonego menu wybrać Edytuj > Wklej). Po udanej operacji program zapyta nas o kolor atutowy, itd.

Najczęściej zadawane pytania

Dlaczego w przypadku niektórych rozdań obliczenia trwają bardzo długo?

Problem długiego czasu obliczeń dotyczy rozdań w których bardzo często, we wczesnych fazach gry, gracze muszą dokładać nie do koloru (głównie są to rozdania w których wszyscy gracze posiadają 3 kolorowe ręce - każdy ma renons w innym kolorze). W takich rozdaniach gracz ma przeciętnie do wyboru znacznie więcej zagrań (często dokłada nie do koloru i wybiera np. 1 z 13 kart, zamiast 1 z 3). Złożoność problemu rośnie wykładniczo (kolejne wielkości decyzji przemnażają się przez siebie) i ostatecznie w przypadku tatkich rozdań jest znacznie (miliardy razy!) większy niż w przypadku rozdań "bardziej statystycznych".

W efekcie znacznie rośnie czas obliczeń i potrzebna do nich ilość pamięci operacyjnej. W skrajnych przypadkach ilość pamięci w komputerze może okazać się nie wystarczająca, co może doprowadzić nawet do błędów wykonania programu.

Szczęśliwie problematyczne rozkłady są mało prawdopodobne, praktycznie nie możliwe do uzyskania w drodze rozdawania (w tym "rozdawania" przy użyciu komputera).