atarionline.pl MicroChess - 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: CommentAuthorxxl
    • CommentTime15 Apr 2020
     
    teraz jest inny schemat wyliczania najlepszego posuniecia. oryginalny byl lepszy?
    • 2: CommentAuthorzbyti
    • CommentTime15 Apr 2020 zmieniony
     
    @xxl jeżeli ten program widzi na pół-ruchu do przodu to algorytm oceny pozycji jest w praktyce bez znaczenia.

    Czasem losowy ruch będzie miał więcej sensu niż to co teraz jest grane.

    Musiałbyś zmodyfikować program tak by za pomocą mini-maxu dotrzeć chociaż 2 ruchy (4 pół-ruchy) do przodu, inaczej program gra i tak "na ślepo" co najwyżej posługując się szczątkowo wrzuconymi mu zasadami gry przy wyborze czy rozwijać figurę, czy grać pionem i czy instotne jest centrum czy też nie.

    Jeżeli nie dochodzi w drzewie (ma takie?) do 4 pół-ruchów, nawet niech będą 3 to on nie widzi nawet natychmiastowych konsekwencji swoich działań, więc jest ślepy.
    • 3: CommentAuthorxxl
    • CommentTime15 Apr 2020
     
    a ten:
    • 4: CommentAuthorzbyti
    • CommentTime15 Apr 2020 zmieniony
     
    A ten to oryginalny algorytm i po Twojej poprawce król teraz ucieka tak jak na Apple I zamiast atakować przez dwa pola mojego hetmana :]

    Ale ma wszystkie wady jakie opisałem swój post wcześniej.

    Jak nie zaimplementujesz minimaxu to już niewiele z tego programu wyciśniesz.

    Takie minimum z minimum algorytmów potrzebnych do jakiejś sensownej gry masz opisane tutaj ->link<-

    Z 4 algo tam wymienionych wydaje się, że masz tylko 2.
    • 5: CommentAuthorxxl
    • CommentTime15 Apr 2020
     
    no ale ktory lepszy z tych dwoch dostepnych.
    • 6: CommentAuthorzbyti
    • CommentTime15 Apr 2020 zmieniony
     
    To jak wybieranie między dżumą a cholerą ;P

    Oryginalnemu algorytmowi łatwo zagrozić szewskim matem i go pogonić, do tego dość często robi nieopłacalne wymiany jeżeli widzi zagrożenie, bo widzi tylko na pół ruchu do przodu i jak się może zasłonić czymś to już nie widzi, że to można zwyczajnie zbić. Za to sprawia wrażenie grania w "otwarte" szachy.

    Z twoim jak grałem to zachowawcze e6 pozwala uniknąć natychmiastowych gróźb za to wczesna wycieczka hetmanem sprawia, że albo całą resztę gry nim suwa albo łatwo tego hetmana złowić.

    Z mojego punktu widzenia to pytanie czy lepiej utykać na prawą czy lewą nogę ;)

    Zrób "drzewo z obcinaniem" to będzie z tego program, który może ograć te z końca tabeli ligi B turnieju @urborga :]



    Nawet jak teraz patrzę na tę tabelę to jakbyś zaimplementował wspomniane wyżej algorytmy (oraz brakujące zasady szachowe) miałbyś w tej tabeli szansę na 6 miejsce wśród tych programów, czyli całkiem wysoko. A przy odrobinie szczęścia (pamiętając jakie tam kwiatki leciały) to nawet na 1-wsze! :D
    • 7: CommentAuthorzbyti
    • CommentTime15 Apr 2020 zmieniony
     
    O ocenę oryginalnego algorytmu lub poprawionego przez Ciebie poproś jakiegoś o wiele słabszego szachistę ode mnie.

    Ja to na A8 dopiero widzę jakieś istotne różnice od SupeQuerga w górę, resztę programów ogrywa mi się równie łatwo, nie mam skali na tak słabe programy.

    @mono mówił ostatnio na kwasie ;) to jest na ostatnim kwasie :D że kogo nie nauczy grać w szachy to uczeń przerasta szybko mistrza, więc niech może on się wypowie ;)
    • 8: CommentAuthorzbyti
    • CommentTime15 Apr 2020 zmieniony
     
    Kolejna partia rozegrana od A-Z z MiniChess z oryginalnym algorytmem MicroChess.

    Pod tym względem chyba można uznać, że program został przeniesiony z sukcesem.

    A8 wzbogaciło się w takim razie o najsłabszy program z jakimi dane było mi grać :]

    To jeszcze zagram z tym programem coś kompletnie z d... i kończę testy, no chyba, że @xxl porwie się na coś ambitniejszego z tym programem ;)
    • 9: CommentAuthorzbyti
    • CommentTime15 Apr 2020 zmieniony
     
    No cóż... Ewaluacja pozycji mocno kuleje i bez drzewa o odpowiedniej głębokości (przynajmniej do 3 ply) nic się z tym nie da zrobić.
    • 10: CommentAuthorxxl
    • CommentTime15 Apr 2020
     
    odwroc tabele MiniChess na czele.
    • 11: CommentAuthorzbyti
    • CommentTime15 Apr 2020
     
    Pierwszych od końca jest bez końca :D
    • 12: CommentAuthorurborg
    • CommentTime16 Apr 2020 zmieniony
     
    Czyli jest nowy program szachowy na małe Atari :) Szkoda że nie załapał się na rozgrywany przeze mnie turniej. Jak rozumiem bazuje na Microchess, który akurat w moim turnieju przegrywa wszystko co się da i skutecznie broni swojego ostatniego miejsca w tabeli ;) choć za przeciwników ma np komputery szachowe bazujące na 4-bitowych mikrokontrolerach. Niemniej jednak w tak prostym algorytmie niewielkie nawet zmiany algorytmu mogą zrobić duża różnicę. Program jeszcze będzie rozwijany? Jak skończę turniej to mogę go skonfrontować z różnymi low-endowymi przeciwnikami.

    Obecnie turniej mam już rozegrany do końca 6 rundy. Jak znajdę dziś chwilę to powrzucam wyniki. Planuję turniej rozegrać do pełnych 7 rund.
    • 13:
       
      CommentAuthorKaz
    • CommentTime16 Apr 2020
     
    Urborg - o, będzie 6 runda! Dzięki Urborg za ten turniej, bo naprawdę cała ta dyskusja o szachach jest bardzo interesująca, a przy okazji takiego turnieju można się dowiedzieć naprawdę dużo.
    • 14: CommentAuthorzbyti
    • CommentTime16 Apr 2020 zmieniony
     
    @urborg w turnieju masz Microchess 2.0 ->link<- który jest o klasę lepszy od swojego protoplasty na KIM-1 z 1976 a to ten starożytny kod przerzucił @xxl.

    Więc jeżeli Microchess 2.0 przegrywa wszystko to Minichess przegrał by jeszcze więcej :D

    Michrochess 2.0 wygra z Minichess 100 partii na 100 rozegranych.

    Chyba nie przyjrzałeś się partiom jakie rozegrałem z MiniChess. Tam jest tylko generator ruchów tak naprawdę z wadliwą oceną pozycji ze względu na bark minimaxu chociaż na 3ply.

    Jeżeli @xxl zaimplementuje 4 podstawowe algorytmy (czyli jeszcze 2 mu zostały, bo jakąś ocenę pozycji ma i generator także) oraz zaimplementuje bicie w przelocie oraz roszadę to można by program potestować. @xxl jednak na początku pisał, że traktuje to tylko jako ciekawostkę i nie wyglądało, że będzie chciał ambitnej podejść do tematu.
    • 15: CommentAuthorzbyti
    • CommentTime16 Apr 2020 zmieniony
     
    Zacząłem czytać źródła MicroChess.

    Widać źle zgadywałem, że to widzi tylko na pół ruchu bo przynajmniej ma 2-ply a NOMAX zdaje się sugerować większe możliwości przy odpowiednim ustawieniu.

    ;
    ; IF A PIECE HAS BEEN CAPTURED BY
    ; A TRIAL MOVE, GENERATE REPLIES &
    ; EVALUATE THE EXCHANGE GAIN/LOSS
    ;
    TREE: BVC RETJ ; NO CAP
    LDY #$07 ; (PIECES)
    LDA SQUARE
    LOOPX: CMP BK,Y
    BEQ FOUNX
    DEY
    BEQ RETJ ; (KING)
    BPL LOOPX ; SAVE
    FOUNX: LDA POINTS,Y ; BEST CAP
    CMP BCAP0,X ; AT THIS
    BCC NOMAX ; LEVEL
    STA BCAP0,X
    NOMAX: DEC STATE
    LDA #$FB ; IF STATE=FB
    CMP STATE ; TIME TO TURN
    BEQ UPTREE ; AROUND
    JSR GENRM ; GENERATE FURTHER
    UPTREE: INC STATE ; CAPTURES
    RTS

    Jeżeli jest "TRIAL MOVE" to pytanie dlaczego to tak do dupy działa, że zostawia hetmana pod biciem?! Było za mało czasu by "wygenerować" ten TRIAL MOVE?

    @xxl czy ty MiniChess ustawiłeś na jego max możliwości?
    • 16: CommentAuthorxxl
    • CommentTime17 Apr 2020
     
    tak, ustawiony jest na max. zreszta to sa defaultowe ustawienia.

    binarka podmieniona, dodalem user interfejsa
    • 17: CommentAuthorzbyti
    • CommentTime17 Apr 2020 zmieniony
     
    @xxl nieźle to wygląda, byłem ciekaw kiedy użyjesz tego menu co wymodziłeś.

    ---------------------------------------------------

    Jak masz ochotę to sprawdź dlaczego TRIAL MOVE (w poniższej pozycji) nie wpadł na c3-a4 czyli biały skoczek bije czarnego hetmana, do tego, dlaczego wykonanym ruchem było pobicie przez czarne gońcem piona na b4. Kupy się nie trzyma ten EVALUATE THE EXCHANGE GAIN/LOSS.

    Jakimi drogami szły "myśli" tego programu??

    • 18: CommentAuthorxxl
    • CommentTime17 Apr 2020
     
    poukladalem figury jak na planszy i dalem P zeby biale ruszly i ruchem bylo c3-a4 wiec... nie wiem co sprawdzales.
    • 19: CommentAuthorzbyti
    • CommentTime17 Apr 2020 zmieniony
     
    Na ekranie czarne są na posunięciu, opisałem to w #9 na tej stronie.

    Ustawa pozycję i ruch jest czarnych, na ekranie widać jak czarne szukają ruchu.

    Oprócz jednej (gdy o nią zapytałeś) wszystkie partie jakie tutaj zamieściłem grałem białymi.

    Ustaw tę pozycję ze skoczkiem na b1 i wykonaj b1-c3 i daj wtedy P jak już nie chcesz dać X i P.

    -----------------

    Pytanie było dlaczego w tej pozycji czarne nie chroniły hetmana i wymieniły gońca za piona.
    • 20: CommentAuthorxxl
    • CommentTime17 Apr 2020
     
    nie wynieniaja laufra za piona bo laufer nie bedzie bity.

    pytanie dlaczego nisko oceniaja bicie krolowki...
    • 21: CommentAuthorzbyti
    • CommentTime17 Apr 2020 zmieniony
     
    To prawda, faktycznie jakby hetman nie był pod biciem to byłby sensowny ruch.

    Nie umiem myśleć jak wadliwy algorytm ;)

    On naprawdę widział że po Gxb4, ab4 mógłby brać wieżę?! To było by 3ply.
    • 22: CommentAuthorxxl
    • CommentTime17 Apr 2020
     
    mnie bardziej interesuje czy oryginal tak robil.
    • 23: CommentAuthorzbyti
    • CommentTime17 Apr 2020
     
    Przyjąłem już do wiadomości, że masz 0 ambicji by to to grało lepiej od oryginału :P
    • 24: CommentAuthorzbyti
    • CommentTime18 Apr 2020 zmieniony
     


    Dopiero na większej szachownicy zobaczyłem, że pole d7 jest kontrolowane przez białe. Dlatego Microchess na Apple I ani Minichess na A8 nie potrafiły znaleźć drogi do uratowania hetmana kosztem gońca z e6 i oba grały Gxb4 czyli Minichess A8 i Microchess na Apple I to ten sam program ;)

    Colossuss Chess 4.0 właściwy wariant z Gg4 liczył już po paru sekundach i po przyznanej minucie na ruch go wykonał wybierając wariant rekomendowany przez najnowsze silniki szachowe ;)

    • 25: CommentAuthorxxl
    • CommentTime19 Apr 2020
     
    aktualizacja. pokazuje ostatni ruch komputera
    • 26: CommentAuthorzbyti
    • CommentTime19 Apr 2020 zmieniony
     
    Będzie zapis partii widoczny po prawej?

    Zagrałem białymi, po 12 ruchach miałem już dwie figury przewagi, nie mogłeś przenieść na A8 Sargona I?

    Nie wiem jak on ocenia pozycję ale 10 ruch czarnych jest idiotyczny (o 9 ruchu czarnych lepiej nie wspominać), aż tak wysoko oceniane jest danie szacha, że robi to za cenę figury?

    1. e4 e5 2. f4 Qh4+ 3. g3 Qf6 4. d3 Bb4+
    5. c3 Bc5 6. Bg2 exf4 7. Bxf4 Nc6 8. d4 Bb6
    9. e5 Qe6 10. d5 Bf2+ 11. Kxf2 Qf5 12. dxc6 dxc6

    • 27: CommentAuthorxxl
    • CommentTime20 Apr 2020
     
    dodane w menu:
    Load State
    Save State

    zapis i odczyt planszy
    • 28: CommentAuthorxxl
    • CommentTime21 Apr 2020
     
    gotowe. do pobrania w pierwszym poscie
    • 29: CommentAuthorzbyti
    • CommentTime21 Apr 2020 zmieniony
     
    Bez kolumny gdzie byłby widoczny zapis partii (w dowlonej notacji) to do kitu te GUI.

    Jakby był zapis partii mógłbyś np. wyłączyć rysowanie bierek i zrobić tryb gry "na ślepo", co było by fajną opcją treningową z tak słabym programem.
    • 30: CommentAuthorzbyti
    • CommentTime2 May 2020 zmieniony
     
    Dlaczego nie iść za ciosem? ->link<- emulator KIM-1 na C64.

    A tutaj wersja C64 ->link<-