atarionline.pl Gry w szachy na Atari - Forum Atarum

    Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

    • :
    • :

    Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

      • 1: CommentAuthorzbyti
      • CommentTime10 Oct 2025 14:06
       
      napisałem kiedyś program liczący to samo w różnych trybach graficznych ale ewidetnie zapomniałem wnioski
      • 2: CommentAuthorzbyti
      • CommentTime10 Oct 2025 14:11 zmieniony
       
      ```
      program GrandTheftAntic;

      uses crt, graph;

      var
      i : byte absolute $d8;
      scores : array[0..16] of word absolute $da;
      rtclok : byte absolute $14;
      sdmct : word absolute $22f;
      x : single;

      begin
      for i := 0 to 15 do begin
      InitGraph(i + 16);
      Pause; rtclok := 0;
      while rtclok < 100 do
      Inc(scores[i]);
      end;

      sdmct := 0; i := 16; Pause; rtclok := 0;
      while rtclok < 100 do
      Inc(scores[i]);
      sdmct := $22; InitGraph(0);

      for i := 0 to 15 do begin
      x := (100 * scores[i]) / scores[16];
      writeln(scores[i], ' GR.', i, ' ', x, '%');
      end;
      writeln(scores[16], ' ANTIC OFF');

      ReadKey;
      end.
      ```


      [img]https://media.invisioncic.com/r322239/monthly_2020_09/GrandTheftAntic.png.d3e13b73469eb236104c72cb7f57bc38.png[/img]

      znalazłem, 5 lat temu coś mi takiego wyszło
      • 3: CommentAuthorurborg
      • CommentTime10 Oct 2025 14:32 zmieniony
       
      Czyli wychodzi na to że tryb tekstowy zabiera najwięcej cykli, nawet więcej niż hi-res. W sumie to by pasowało do tego co zmierzyłem.

      W takim razie albo kod na małe Atari jest dobrze zoptymalizowany, lepiej niż na C64 i C+4 albo architektura tamtych komputerów tez ma spory narzut na wydajność procesora.

      Ps sprawdziłem jeszcze wynik przy widoku szachownicy 2d na Atari -48500. Czyli 2D czy 3D nie ma znaczenia.
      • 4: CommentAuthorzbyti
      • CommentTime10 Oct 2025 14:47
       
      @urborg też przeprowadzę test. scenariusz:

      Na A8 po wgraniu CC4 daję SHIFT+Q. Wyłączam książkę debiutową, wyłączam myślenie na ruchu przeciwnika, ustawiam głębokość ruchu na 3, włączam stół 2D, gram d2-d4 i SPACJA, wchodzę na ekran ewaluacji.

      podam wyniki.
      • 5: CommentAuthorurborg
      • CommentTime10 Oct 2025 14:52
       
      Mierzyłem czas trzech minut zegarem gry, a może Atari oszukuje na zegarze?
      • 6: CommentAuthorzbyti
      • CommentTime10 Oct 2025 15:04 zmieniony
       
      mój test nie uwzględnił SHIFT+T bo nawet jak kazałem C64 doliczyć do głębokości 3 to zatrzymał się po 11 sekundach mając tylko 2 pełne ruchy obliczone.

      A8 natomiast, ustawiony takie samo ustawienie domyśle dla pojedynczego ruchu (10 sek) popracował 24 sekundy a nie 10, i doliczył 3 pełne ruchy w tym czasie.

      C64 ustawione na 30 sekund na ruch i 3 pełne ruchy doliczył ich się w 36 sekund.

      ===

      z tego widać, że algorytm zawiadujący czasem i nadający priorytet warunkom z ustawień jest inny.

      jeszcze nie poznałem programisty który nawet robiąc port własnego kodu, jakby mógł coś ulepszyć to by tego nie zrobił, zwłaszcza w czasach gdy własny program grający w szachy był powodem do dumy ;)
      • 7: CommentAuthorzbyti
      • CommentTime10 Oct 2025 15:13 zmieniony
       
      ok. ustawiłem tak jak pisałem wyżej, tylko zostawiłem domyślną głębokość na 2 i czas na ruch obu dałem 30 sek i zagrałem d2-d4

      C64 - pracował 36 sekund i obliczył 4364 pozycji na głębokość 3 pełnych ruchów
      A8 - pracował 30 sekund i obliczył 6161 pozycji na głębokość 3 pełnych ruchów
      C+4 - pracował 29 sekund i obliczył 4364 pozycji na głębokość 3 pełnych ruchów

      ===

      dla mnie to zdecydowanie nie ten sam program na obu komputerach, za to na C64 i C+4 już być może, poprawił sprawę z czasem ale nie obliczanie wariantów.

      EDIT: nie oznacza to, że 3 pełne ruchy obliczył wszystkie ale ruch który uważał za obiecujący miał 3 pełne ruchy wypisane.
      • 8: CommentAuthorgregor2
      • CommentTime10 Oct 2025 19:03 zmieniony
       
      Szachy na komputerze to przede wszystkim algorytmy, dopiero później jest wydajność.
      W sumie programy szachowe były pierwszymi, gdzie rozpętała się duża konkurencja między ich autorami, ba, od połowy lat 70. były nawet organizowane europejskie i światowe mistrzostwa programów komputerowych.
      Jeśli chciałoby się zrobić jakieś porównanie, to bardziej należałoby spojrzeć na daty powstania danego programu, a nie konkretną platformę.
      Jeśli weźmiemy różne programy szachowe na tej samej platformie, to różnice w ich sile będą znaczne.
      Co ciekawe, algorytmy na 6502 rozwijane przez wiele lat były znacznie silniejsze niż na inne procesory.
      Dlatego też czasami poważne programy nawet na komputery 16-bitowe działały na specjalnych akceleratorach na 6502, a z czasem 65C02.
      Dla c64 byla np. dostepna karta THE FINAL CHESSCARD firmy TASC B. V z 65c02 4MHz ktora byla tez dostepna w wersji na PC ISA.
      • 9: CommentAuthorurborg
      • CommentTime11 Oct 2025 18:54
       
      Oglądnąłem tą drugą pojedynku szachowego Atari i C64 i już wiem co tam się odwaliło i jak to możliwe że słabszy teoretycznie komputer ograł mocniejszy. Poniżej moja analiza:

      Grana jest partia angielska. W pierwszych posunięciach obie strony wymieniają się dwukrotnie skoczkami i a także pionkami. Gra jest dosyć wyrównana. W 11 ruchu Atari przeprowadza roszadę, C64 zwleka z roszadą aż do 18 posunięcia. Do 20 ruchu Atari wypracowuje sobie lekką przewagę pozycyjną. Od 21 do 26 dochodzi do masowej rzezi figur ciężkich – w wyniku wymiany z szachownicy znikają wszystkie hetmany i wieże. W toku wymiany Atari zdobywa piona przewagi i ma lepszą strukturę pionów, bo C64 na skrzydle hetmańskim ma aż dwa izolowane piony. Innymi słowy Atari wyrobiło sobie przewagę którą zdolny szachista miałby szansę zamienić na zwycięstwo w końcówce. Problem w tym że wszystko wskazuje na to że partia zakończy się końcówką pionkową, a Colosuss Chess jak i inne 8-bitowe programy kompletnie nie potrafią takich końcówek rozgrywać. Wracając zaś do partii, w dalszej części partii widać że Atari nie ma pomysłu na to jak wykorzystać przewagę piona, aby dokonać jakiegoś przełomu pionowego i doprowadzić piona do linii przemiany. C64 zaś dosyć rozsądnie rozstawia swoje dwa gońce w centrum szachownicy i generalnie czeka co dalej zrobi Atari, wykonując często ruchy pozorne, typu goniec jedno pole w lewo czy prawo tam i z powrotem. Gońce Atari stoją znacznie gorzej gdzieś na obrzeżach i nie mają za bardzo możliwości manewru. No i Atari wpada na pomysł aby te gońce powymieniać, co w tej sytuacji jak najbardziej ma sens. W 40 ruchu Atari wymienia się gońcami ciemnopolowymi, lecz to sprawia że C64 zyskuje pionka przejściowego na kolumnie e. Stockfish który pomagał mi w analizie uznał to za dobry ruch i wskazał na przewagę czarnych, no bo przecież czarny król był w pozycji w której mógł powstrzymać białego piona na linii e. Tyle że Colossus Chess nie zna teorii końcówek i nie rozumie czym jest pionek przejściowy ani co się stanie gdy tenże dojdzie do linii przemiany. No chyba że ten pionek znajdzie się już blisko linii przemiany i program będzie w stanie doliczyć pozycję do momentu samej przemiany. No i Atari najwyraźniej nie jest świadomy jakie zagrożenie stanowi pionek na linii e, więc w kolejnych ruchach Atari beztrosko odchodzi królem zostawiając białemu pionowi wolną drogę do linii przemiany. No i gdy C64 rusza pionem na przód to właściwie jest już pozamiatane. Atari wymienia się jeszcze gońcami jasnopolowymi, ale chwilę później C64 zyskuje hetmana, potem kolejnego i kończy partię matem po 57 ruchach. Tak więc ze strony Atari dobra gra w debiucie i grze środkowej, która pozwoliła na wypracowanie niewielkiej przewagi i na koniec niestety katastrofa w końcówce.
      • 10: CommentAuthorurborg
      • CommentTime12 Oct 2025 13:35
       
      @gregor2
      Ciekawy sprzęt ten final chess card. Znalazłem informację że tam był procesor 5MHz czyli sprzętowo to był komputer szachowy zbliżony do Mephisto Milano, czy Mephisto Nigel Short. Były dwie wersje, jako kartridż do C64 i karta ISA do PC. Jeśli chodzi siłę gry to chess wiki podaje wartość 1852 Elo, czyli dosyć słabo jak na taki hardware, bo np Mephisto Milano miał 2003 Elo a Mephisto Nigel Short 2012 Elo. Niemniej jednak w porównaniu do Colossus Chess który pewnie osiąga koło 1400-1500 to przepaść.
      ->link<-
      • 11: CommentAuthorgregor2
      • CommentTime12 Oct 2025 20:41 zmieniony
       
      Tu jest ciekawy ranking roznych programow.
      ->link<-
      Okazuje sie ze 6502 przy 3 MHz Fidelity Excellence 3MHz
      ->link<-
      mial wyzszy ranking niz Mephisto III Glasgow na 68000 12MHz. ;)

      ->link<-

      Czyli jednak nie szybkosc byla decydujaca ;)
      • 12:
         
        CommentAuthorPeri Noid
      • CommentTime12 Oct 2025 20:46
       
      Algorytm ma ogromne znaczenie. Prędkość - tylko przy rozwiązaniach typu "brute force". I to dotyczy nie tylko szachów.
      • 13: CommentAuthorurborg
      • CommentTime12 Oct 2025 21:56 zmieniony
       
      Motorola 68000 to procesor typu Cisc, a przy programach szachowych procesory typu Risc lepiej się sprawdzały. 6502 porównując taktowanie był pewnie ze 3 razy szybszy od Motoroli 68000 z tym samym zegarem w takim zastosowaniu. Mephisto III Glasgow to tez stary dosyć komputer jak i program stąd siła gry niższa niż późniejszych komputerów i programów.

      Dużo większa lista rankingowa komputerów szachowych jest tutaj:
      ->link<-
      • 14:
         
        CommentAuthornogorg
      • CommentTime13 Oct 2025 00:45
       
      Zrobiłem zapis drugiej partii jako PGN:

      1. c4 e5 2. Nc3 Nf6 3. Nf3 Nc6 4. e4 Bc5 5. Nxe5 Nxe5 6. d4 Bb4 7. dxe5 Nxe4 8. Qd4 Nxc3 9. bxc3 c5 10. Qd3 Ba5 11. f4 O-O 12. Bd2 Bc7 13. Rd1 d6 14. exd6 Re8+ 15. Be3 Bxd6 16. Be2 Qh4+ 17. g3 Qf6 18. O-O Bh3 19. Rf2 Rad8 20. Bc1 Bc7 21. Qc2 Rxd1+ 22. Qxd1 Qxc3 23. Rf3 Qa1 24. Re3 Rxe3 25. Bxe3 Qxd1+ 26. Bxd1 b6 27. Kf2 f5 28. Bf3 Kf7 29. Bd5+ Kf6 30. Bd2 a5 31. Bc3+ Kg6 32. a4 h5 33. Be5 Bd8 34. Bc6 h4 35. Ke3 Kh6 36. Bd5 g6 37. Bc6 Bf1 38. Bd5 h3 39. Bc3 Bc7 40. Be5 Bxe5 41. fxe5 Kg5 42. Bf7 Bg2 43. Bd5 Kg4 44. e6 Bxd5 45. cxd5 f4+ 46. gxf4 g5 47. fxg5 Kxg5 48. e7 c4 49. Kd4 c3 50. Kd3 c2 51. Kxc2 b5 52. e8=Q Kf6 53. d6 bxa4 54. d7 Kf5 55. d8=Q a3 56. Qd5+ Kf6 57. Qde5#

      I jako filmik z ewaluacją pozycji oraz sugerowanymi najlepszymi ruchami przez silnik z chess.com.
      ->link<-

      (Nie wiem czy autor kanału tutaj czyta, ale pozwalam sobie wrzucić tu, bo YT prawdopodobnie odfiltruje komentarz z linkiem jako spam więc tam nawet nie próbuję. Taką ewaluację warto dodać do samego filmu podczas partii - wtedy każdy oglądający od razu widzi jaka jest dynamika partii i kto w danej chwili ma przewagę.)
      • 15:
         
        CommentAuthornogorg
      • CommentTime13 Oct 2025 13:17
       
      Aby był komplet, to samo dla pierwszej partii:

      1. e4 e5 2. Bc4 Nf6 3. d3 c6 4. Qe2 Be7 5. f4 d6 6. Nc3 Be6 7. Bxe6 fxe6 8. fxe5 dxe5 9. Nf3 Nbd7 10. Ng5 Nc5 11. Be3 h6 12. Bxc5 hxg5 13. Bxe7 Qxe7 14. O-O-O O-O-O 15. h3 Rd4 16. Qf3 Rh4 17. Ne2 Ra4 18. a3 Qf7 19. Rhf1 Ra5 20. Qe3 Qg6 21. Rf2 Kb8 22. Rdf1 Qh6 23. Rf3 c5 24. R1f2 Qg6 25. g4 Rb5 26. Nc3 Ra5 27. a4 Qh6 28. Nb5 b6 29. b3 Ra6 30. Nd6 Qg6 31. Qe2 Nd7 32. Rf7 Nf6 33. d4 Ra5 34. Rb7+ Ka8 35. Rc7 Rh8 36. dxe5 Nh7 37. Rff7 Rg8 38. Nb5 a6 39. Nd6 Qxf7 40. Rxf7 Rf8 41. Rxg7 Rh8 42. Nc4 Rxa4 43. Nxb6+ Kb8 44. Nxa4 a5 45. Qb5+ Kc8 46. Qb7+ Kd8 47. Qb8#

      ->link<-
      • 16:
         
        CommentAuthorPeri Noid
      • CommentTime13 Oct 2025 14:05
       
      Nie czyta. Ale przekażę :-)