• Strona główna
  • Szachy - ilość wariantów
  • Debiuty szachowe
  • Miniatury szachowe
  • ChessExplorer
    PROGRAM DO ZADAŃ SZACHOWYCH
    Mat          Mat pomocniczy          Samomat
    Polskie strony szachowe

    Download:

     
    exp612pl.zip 394 KB   ChessExplorer v. 6.12 PL 22 listopada 2008
     



    / Poprawiona i rozszerzona obsługa zapisu zadań w plikach *.fen, *.pgn, *.epd /
      Explorer    explorer.zip  50 KB
    Maleńki programik, napisany w Turbo Pascalu, pracujący w trybie tekstowym ( DOS ), rozwiązujący zadania szachowe.
    Bardziej do zabawy, gdyż jest wybitnie wolny (ok. 10.000 posunięć/sek. ).
    Freeware.


    ChessExplorer jest programem pracującym w środowisku Windows (Win32), z pełnym graficznym interfejsem, przeznaczonym głównie do rozwiązywania typowych zadań szachowych: matów, samomatów, matów pomocniczych.
    Posiada dodatkowe opcje: Przy budowie modułu rozwiązywania zadań przyjęto generalną zasadę, że program ma testować wszystkie możliwe posunięcia i znajdować dokładnie wszystkie istniejące rozwiązania ( metoda "brute force" - korzystanie z dużych mocy obliczeniowych współczesnych komputerów ). Zasady tej nie naruszają wprowadzone pewne "dawki inteligencji": np. strona broniąca się przed matem, aby nie testować każdorazowo wszystkich możliwych posunięć, zapamiętuje swoje dobre, sprawdzone już wcześniej odpowiedzi.

    Program napisany został w C++, przy czym podstawowe procedury zostały zoptymalizowane w assemblerze w celu uzyskania możliwie dużej szybkości. Na standardowym komputerze program analizuje kilka ( a czasami kilkunaście ) milionów posunięć na sekundę.
    Te szybkości są możliwe do uzyskania na procesorach z rodziny Pentium i równoważnych. Ich architektura ( wielopotokowość przetwarzania rozkazów, zaimplementowane sprzętowo metody przewidywania skoków warunkowych w programie, itp. ) sprawia, że program jest wykonywany o wiele szybciej, niż wynikałoby to z sumowania cykli zegarowych procesora potrzebnych do wykonania zestawu instrukcji w "normalny" sekwencyjny sposób ( jak przy starszych procesorach i386 i i486 ).
    Przykładowo, na komputerze z procesorem P II Celeron 366 MHz, przy zliczaniu ilości wariantów w 6-ciu kolejnych posunięciach, z wyjściowej pozycji na szachownicy, program przetwarza ok. 3 miliony posunięć w ciągu sekundy. Wynika z tego, że na jedno posunięcie przypada ok. 120 cykli zegarowych procesora. Wykonanie posunięcia ( łącznie ze sprawdzeniem, czy jest prawidłowe, tzn. czy nie ma szacha i ew. wykonanie innego posunięcia wraz z dodatkowymi operacjami: zliczanie ilości posunięć, obliczanie szybkości, prezentowanie postępu analizy itp.) to przynajmniej kilkaset komend assemblera. Na wykonanie każdej z tych komend procesor potrzebuje od 1 do klikunastu cykli zegarowych ( trzeba tu zauważyć, że większość z tych komend to "czasochłonne" operacje odczytu i zapisu do pamięci ). Dla "tradycyjnego" procesora na wykonanie jednego posunięcia potrzeba byłoby przynajmniej kilka tysięcy cykli zegarowych.
    Swoją drogą, wydaje się, że te 120 cykli procesora na jedno posunięcie to chyba już mniej więcej graniczna wartość jaką można osiągnąć poprzez optymalizację algorytmu programu ( chyba, że ktoś wpadnie jeszcze na jakieś genialne rozwiązanie ! ).
    Program typu shareware - można używać w okresie jednego miesiąca od daty instalacji. W przypadku korzystania po tym terminie, program należy zarejestrować (szczegóły w opcji "Info" programu oraz tutaj ).



    Charakterystyka programu:

    Dodatkowe opcje:



    Opcja "Generator"


    Opcja "Pozycje" ( "Jak rozmieścić 8 hetmanów aby żaden nie był szachowany ?" ):


    Opcja "Pozycje" ( "Maksimum pól szachowanych" ):

    Dla wyjaśnienia:


    Z historii programu ChessExplorer

    7.08.2002r.v. 1.0 Pierwsza pracująca wersja pod Windows (anglojęzyczna). Dosyć skromna i jeszcze niezbyt szybka - kilkadziesiąt tysięcy posunięć na sekundę.
    19.10.2002r.v. 2.32 Dodana obsługa (import i eksport) plików *.fen, *.epd, *.pgn. Wybór języka notacji. "Silnik" programu w assemblerze - ok. 4-krotne przyśpieszenie.
    18.11.2002r.v. 2.34 Dodanie "szczypty" inteligencji i korekty kodu - ok. 2-krotne przyśpieszenie. Wyświetlanie szybkości testowania ruchów (pomocne przy optymalizacji kodu).
    10.01.2003r.v. 3.0 Opcja "Zliczanie wariantów". Dalsza optymalizacja kodu (kilkadziesiąt procent szybciej).
    10.02.2003r.v. 3.2 Wprowadzenie opcji "Pierwszy ruch". Narzędzia do manipulacji pozycją (przesuwanie, obroty). Przyśpieszenie o dalsze kilkanaście procent.
    Pierwsza polska wersja.
    5.03.2003r.v. 3.3 Dalsza optymalizacja kodu - przyśpieszenie o ok. 25%.
    14.05.2003r.v. 3.4 Usunięto kilka bugów w programie (dziękuję za przekazywane uwagi).
    Poszerzenie rozwiązań zadań typu mat oraz samomat o drugie posunięcie rozpoczynającego zależnie od odpowiedzi przeciwnika.
    27.07.2003r.v. 3.42 Zmieniony układ głównego okna programu (więcej miejsca na wyniki).
    Poprawiony moduł importu pozycji w formacie *.fen (zwiększenie odporności na błędy występujące w otwieranych plikach).
    11.11.2003r.v. 3.5 Dołączone informacje o programie.
    Przebudowa struktur danych w programie po kątem umożliwienia dalszego zwiększania szybkości.
    Na razie przyśpieszenie o ok. 15%.
    20.01.2004r.v. 3.6 Wzrost szybkości o ok. 30% w stosunku do v. 3.5. Zmieniona plansza tytułowa.
    20.04.2004r.v. 4.0 Generalna przebudowa kodu programu; ok. 2,5-krotne zmniejszenie wielkości "exe-ka".
    02.05.2004r.v. 4.1 Dodanie opcji: testowanie wszystkich możliwych drugich posunięć rozpoczynającego (mat, samomat).
    28.05.2004r.v. 4.2 Trzecia główna opcja programu - zadania typu "problem n hetmanów".
    2.07.2004r.v. 4.22 Usprawnienie prezentacji rozwiązań dla zadań typu "mat" (groźby).
    20.12.2004r.v. 4.3 Modyfikacja grafiki; przebudowa struktur danych w programie - wzrost szybkości o ok. 10%.
    26.01.2005r.v. 4.4 Zwiększenie "IQ" programu. W zadaniach typu "Mat" i "Mat pomocniczy" szybkość ( ilość posunięć na sekundę ) maleje ale czas rozwiązywania skrócony o ok. 25 - 45%.
    8.02.2005r.
    2.03.2005
    6.04.2005
    v. 4.5
    v. 4.6
    v. 4.61
    Dalszy znaczny wzrost "poziomu inteligencji" oraz optymalizacja procedur - czas rozwiązywania zadań skrócił się 2 - 6 razy. Usunięcie błędów.
    20.04.2005r. v. 5.0 Nowa opcja: "Generator zadań".
    10.12.2005r.
    24.01.2006r.
    v. 5.2
    v. 5.3
    Generator zadań rozbudowany.
    20.06.2007r. v. 6.0 Rozwiązywanie matów seryjnych. Generator matów pomocniczych i matów seryjnych.



    Szybkość działania poszczególnych wersji programu
    ( jednakowy zestaw zadań; procesor Pentium II Celeron, 366 MHz )







    początek strony