Jak działa zegar szachowy i czym różni się od minutnika
Zegar szachowy to dwa niezależne odliczania, z których w danym momencie chodzi dokładnie jedno. Gracz wykonuje ruch, po czym naciska swój przycisk. Własny zegar staje, rusza zegar przeciwnika. Przekroczenie czasu kończy grę na korzyść drugiej strony, nawet gdy pozycja na szachownicy była wygrana.
Zwykły minutnik odmierza jedno wspólne okno czasu. Zegar do gry prowadzi osobny budżet czasu dla każdego gracza i przełącza się między nimi po każdym ruchu, dlatego sięgają po niego szachiści, gracze w Scrabble i sędziowie przy stolikach turniejowych.
W tym narzędziu przycisk zastępuje cały obszar ekranu przypisany graczowi. Przy dwóch osobach obszary są obrócone względem siebie o 180 stopni, bo gracze siedzą naprzeciw. Każdy widzi swój czas prawą stroną do góry i kwituje ruch dotknięciem albo kliknięciem po swojej stronie telefonu, tabletu lub monitora.
Inkrement, Bronstein i opóźnienie, czyli trzy sposoby doliczania
Inkrement Fischera dolicza stałą wartość po każdym ruchu, niezależnie od tego, ile ruch zajął. Przy pięciu sekundach inkrementu gracz odpowiadający natychmiast powoli zwiększa swój zapas czasu. W szachach szybkich rozgrywa się dziś w ten sposób większość partii w serwisach internetowych.
Tryb Bronsteina zwraca po ruchu tylko tyle, ile faktycznie na niego zeszło, ale nie więcej niż ustawiony inkrement. Zapas czasu nigdy nie rośnie powyżej wartości początkowej, można go co najwyżej utrzymać. Efekt przypomina opóźnienie, z tą różnicą, że rozliczenie następuje po ruchu, a nie przed nim.
Opóźnienie, w anglojęzycznych zegarach opisywane jako delay, działa przed ruchem. Przez pierwsze sekundy tury zegar w ogóle nie odlicza, więc kto zagra w tym oknie, nie traci nic, a kto nie zdąży, zaczyna zużywać swój budżet. Niewykorzystane opóźnienie przepada i tym różni się od inkrementu, przy którym nadwyżka zostaje na koncie.
Limit na turę to funkcja spoza szachów. Zegar dostaje sztywny czas na pojedynczy ruch i wraca do pełnej wartości na początku każdej tury. W grach planszowych ustawia się go po to, żeby jedna osoba nie analizowała pozycji przez kwadrans.
Skąd bierze się dokładność odliczania
Najczęstszy błąd prostych zegarów wygląda tak, że co sto milisekund odejmuje się sto milisekund od pozostałego czasu. Kłopot w tym, że setInterval odpala się z tolerancją, której nikt nie kontroluje. Przeglądarka spowalnia liczniki w kartach w tle, przy obciążeniu procesora i przy oszczędzaniu energii na telefonie. Po godzinie takiej partii różnica sięga kilkunastu sekund, zawsze na niekorzyść gracza.
U nas czas gracza to prosta różnica. Od bieżącego wskazania performance.now() odejmujemy zapamiętany znacznik startu tury, więc liczba odświeżeń ekranu w międzyczasie niczego nie zmienia. Odświeżanie rysuje cyfry i nic poza tym. Nawet gdyby przeglądarka nie narysowała ani jednej klatki przez minutę, po powrocie zegar pokaże poprawną wartość.
Licznik „odchylenie zegara” w pasku pod planszą pokazuje, o ile suma czasu odliczonego wszystkim graczom różni się od czasu, który upłynął od startu partii, i przy godzinnej rozgrywce ta różnica trzyma się rzędu milisekund, więc dokładność sprawdzisz w trakcie gry, zamiast wierzyć nam na słowo.
Więcej niż dwóch graczy i wygaszanie ekranu
Zegar obsługuje od dwóch do sześciu graczy. Przy trzech i więcej obszary układają się w siatkę, a ruch przechodzi po kolei, więc dotknięcie własnego pola kończy turę i uruchamia zegar następnej osoby. Tak gra się w planszówki, w których każdy ma własny budżet czasu, od Diplomacy po długie partie euro.
W trakcie partii ekran nie ma prawa zgasnąć, bo odblokowanie telefonu zabiera czas graczowi. Blokadę wygaszania włączamy przez navigator.wakeLock, gdy tylko zegar ruszy, i zwalniamy ją po pauzie albo końcu partii. Część przeglądarek tego mechanizmu nie obsługuje. Jeśli Twoja go nie ma, zobaczysz o tym informację pod ustawieniami, zamiast fałszywego poczucia, że wszystko działa.
Zegar cyfrowy w przeglądarce a fizyczny czasomierz
Sprzętowy zegar do gier kosztuje w sklepach od kilkudziesięciu do kilkuset złotych. Modele analogowe z chorągiewką odmierzają czas mechanizmem zegarkowym, cyfrowe pokazują sekundy na wyświetlaczu ciekłokrystalicznym i same doliczają inkrement. W sklepach i w opisach aplikacji ten sam przedmiot występuje pod angielskimi nazwami chess clock i game clock, a wersje dla planszówek jako board game timer.
Turniej rozgrywany według przepisów FIDE wymaga zegara stojącego przy stoliku, w modelu dopuszczonym przez sędziego, i telefon go tam nie zastąpi. Na klubowym blitzu i przy domowej planszy ta różnica przestaje mieć znaczenie, a zegar w przeglądarce ma tę przewagę, że jest pod ręką, uruchamia się jednym kliknięciem i obsługuje sześć osób bez instalowania aplikacji.