Artykuł ma na celu pokazanie obsługi programu SquareDeal.

SquareDeal dostępny jest do ściągnięcia za darmo ze strony producenta.

Założenie turnieju, publikacja założeń (wystarczająco długo przed turniejem)

Uruchamiamy SquareDeal po raz pierwszy. Program nie wykrył żadnych turniejów, dla których mielibyśmy generować rozdania. Wybieramy opcję utworzenia nowego turnieju, wpisując +.
Nadajemy naszemu turniejowi nazwę - prefiks plików generowanych przez SquareDeal (ale nie prefiks generowanych plików z rozkładami): test.
Dostajemy możliwość ustawienia informacji o zawodach. Nadajemy turniejowi opis/nazwę, wybierając opcję 1 i podając: Testowy Turniej.
Opcja 2 pozwala ustawić opis informacji opóźnionej. My wybraliśmy wyniki losowania Lotto, zapisane jednym ciągiem, a opis ten zapisaliśmy bez polskich znaków. Uwaga: opis ten jest używany zamiast informacji opóźnionej jeśli nie ustawimy jej przed wygenerowaniem rozdań.
W końcu, opcja 3 pozwala na określenie struktury naszych zawodów. Nasz przykładowy turniej ma strukturę znaną z GPP Par - 50 rozdań, granych w kolejności 1-30, 1-20. Dodajemy pierwszą fazę, złożoną z 1 sesji (w nazewnictwie SquareDeal: jednego pliku PBN) liczącej 30 rozdań.
Uzupełniamy prefiks dla generowanych plików PBN (test1) oraz opis pierwszej fazy zawodów. Wszystkie wpisane tu informacje trafią do pliku upublicznianego przed wygenerowaniem rozkładów na zawody.
Znak # w prefiksie fazy zastępowany jest dla każdego kolejnego generowanego pliku PBN numerem sesji, czyli prefiks test-# dla fazy o 3 sesjach, wygeneruje pliki test-1.pbn, test-2.pbn i test-3.pbn.
Powtarzamy operację dla drugiej fazy turnieju - 1 sesja, licząca tym razem 20 rozdań.
W dowolnym momencie możemy zakończyć pracę programu, wybierając opcję 0 i potwierdzając ENTERem. Wszystkie zmiany zostaną zapisane.
SquareDeal utworzył dla naszego turnieju dwa pliki: test.sqd i test.sqk. Ten pierwszy zostanie niedługo podany do publicznej wiadomości, tego drugiego nie możemy ujawniać aż do rozegrania rozdań.
Plik SQD (SQuare deal Definition) zawiera ustalone przez nas, publicznie znane, parametry rozgrywanych zawodów: wybraną przez nas liczbę sesji, liczbę rozdań dla każdej sesji i ich opis oraz zadeklarowaną przez nas informację opóźnioną.
Plik SQK (SQuare deal Key) zawiera poufne dane losowe, które posłużą (w połączeniu z informacją opóźnioną) do wygenerowania rozdań w poszczególnych sesjach.
Jeśli zdecydowaliśmy, że struktura turnieju (i deklarowana przez nas informacja opóźniona) już się nie zmieni, przygotowujemy pliki turnieju do publikacji, wybierając opcję nr 4. Program automatycznie zakończy po tej operacji pracę.
W pliku SQD pojawiła się informacja (PU w linii 6), że plik jest gotowy do publikacji.

Wprowadzenie informacji opóźnionej, wygenerowanie rozdań (przed turniejem)

Ponowne uruchomienie programu i wybraniu naszego turnieju, otrzymujemy teraz (po ustawieniu flagi publikacji) zupełnie inny zestaw opcji do wyboru.
Wybór opcji nr 1 pozwala ustawić wartość naszej informacji opóźnionej. Wpisujemy więc wyniki zadeklarowanego przez nas wcześniej losowania Lotto: 62024334447.
Możemy przystąpić do generowanie rozdań. Wybieramy opcję nr 2. Generujemy najpierw plik dla pierwszej (1) fazy turnieju. Mamy w niej zdefiniowaną jedną sesję (plik PBN), więc możemy wygenerować wszystkie (*) sesje.
Przy pierwszej okazji program (właściwie: sam BigDeal) zapyta nas o parametry konfiguracji generowania rozdań. Najpierw - o formaty plików, jakie chcemy otrzymać. Domyślny wybór (dup,pbn) wygeneruje po dwa pliki dla każdego zestawu rozkładów i pozwoli obsłużyć oba popularne w Polsce typy maszyn do powielania. Jeśli potrzebujemy jedynie plików PBN, możemy wpisać na tym etapie tylko pbn.
Następnie BigDeal spyta, czy ma za każdym razem pytać o formaty plików, jakie chcemy generować. Domyślna wartość to no ("nie").
W końcu - BigDeal spyta nas o nasz identyfikator sędziego (np. imię i nazwisko). Wartość ta była używana w tradycyjnej wersji BigDeal jako część danych losowych służących do generowania rozdań. SquareDeal, dając możliwość wygenerowania (weryfikacji) tych samych rozdań wielu osobom, z tej wartości nie korzysta.
Analogicznie, generujemy rozdania dla wszystkich (*) sesji fazy turnieju nr 2.
W katalogu programu utworzone zostały pliki test1.pbn i test2.pbn - to nasze rozkłady na turniej, możemy je przekazać do powielarni.
Możemy też zakończyć działanie SquareDeal. Jeżeli nie zrobiliśmy tego wcześniej, program zapisze ustaloną już wartość informacji opóźnionej do pliku SQD.
Gdyby na tym etapie ktokolwiek poza generującym rozkłady (tj. posiadaczem pliku SQK) próbował uruchomić SquareDeal i wybrać do edycji ściągnięty plik SQD, program nie pozwoli na żadne operacje - brakuje bowiem pliku SQK, niezbędnego do wygenerowania rozdań.

Weryfikacja wiarygodności rozdań (po turnieju)

Po turnieju przekazaliśmy zawodnikom również plik SQK. Po umieszczeniu go w katalogu programu, tym raze SquareDeal pozwala operować na nim dokładnie tak samo, jak pozwalał dotychczas rozdającemu. Wita nas dokładnie to samo menu.
Możemy (a nawet: musimy) ustawić ustaloną informację opóźnioną, za pomocą opcji nr 1.
Możemy również, w dokładnie taki sam sposób, wygenerować rozkłady dla poszczególnych sesji turnieju. Jak dotychczas, służy do tego opcja nr 2.
Dla naszego hipotetycznego zawodnika sprawdzającego wiarygodność rozkładów, jest to pierwsze uruchomienie programu, więc również i on musi przejść przez konfigurację BigDeala, opisaną powyżej.
Wybieramy najmniej natarczywą opcję...
...a także ustawiamy inne niż dla rozdającego dane identyfikujące - pokażemy, że nie wpływają one na możliwość weryfikacji rozkładów.
Generujemy również rozkłady dla fazy turnieju nr 2.
Po wygenerowaniu rozdań, jesteśmy w stanie stwierdzić, że są one identyczne z tymi, które wygenerował i powielił na turniej organizator.
Możemy również sprawdzić, co by było, gdyby w Lotto wypadły inne numery. Udowodni to, że organizator nie był w stanie przewidzieć (więc: zmanipulować) rozkładów turnieju. Założmy, że w losowaniu padły numery: 4, 8, 15, 16, 23, 42. Zgodnie z przyjętą konwencją, informacja opóźniona przyjmuje wtedy wartość 4815162342.
Generujemy teraz ponownie rozdania...
...i widzimy, że faktycznie różnią się od tych, którymi grany był turniej!

Uniemożliwienie sędziemu podmiany rozdań na inny wygenerowany zestaw

Sekcja dodana 04.01.2019

Sprawdźmy jeszcze, co by się stało, gdyby nieetyczny sędzia próbował manipulować rozkładami turnieju. Powyżej pokazaliśmy, że z danego pliku SQK i danej informacji opóźnionej da się wygenerować tylko jeden, zawsze ten sam zestaw rozdań. A co gdyby sędzia wygenerował kilka par plików SQK i SQD i próbował wybrać, które rozkłady powielić na turniej?

Załóżmy, że powtórzyliśmy operacje z powyższych sekcji i otrzymaliśmy drugi zestaw plików SQD i SQK. Widzimy, że losowe klucze, służące do generowania rozdań, w nowym pliku SQK są różne, pomimo tego, że wybraliśmy takie same parametry turnieju.
Pliki SQD również się różnią - wszystkie parametry są identyczne, ale pole KH, wyliczane na podstawie zawartości wygenerowanego pliku SQK ma inną wartość. Pamiętajmy, że plik SQD został już, wcześniej, opublikowany - więc jedyna właściwa wartość pola KH jest już publicznie znana, i to zanim sędzia miał możliwość wygenerowania rozkładów na turniej (bo nieznana wtedy była jeszcze informacja opóźniona).
Jeżeli sędzia po turnieju spróbuje opublikować inny plik SQK niż ten, którego powinien użyć z opublikowanym wcześniej plikiem SQD (np. inny plik SQK użyty niezgodnie z procedurą do powtórzenia wygenerowania rozdań), program nie pozwoli wygenerować rozdań, zwracając uwagę na niezgodność wartości pola KH. Oznacza to, że opublikowane przed turniejem informacje nie poświadczają wiarygodności rozkładów turnieju i rozkłady te mogły być podatne na manipulacje.