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
    • CommentTime10 Apr 2020 zmieniony
     
    przepisalem na atari microchess z KIM. zrodlo:

    ->link<-

    niestety ten program nie dzialal prawidlowo - lista poprawionch juz bledow ma kilka pozycji a i ciagle nie jestem pewny czy wszystko jest ok.

    jak ktos ma cierpliwosc moze zagrac, sterowanie jest upierdliwe.

    c - clear (reset planszy)
    p - play / continue (przeciwnik)
    e - exchange - zmiana stron czarne/biale
    f - graj (my)

    przyklad:
    c return - reset planszy
    p return - komputer wykona ruch
    6 return
    1 return
    5 return
    1 return - ruch pionem 61-51
    f return - wykonaj
    p return - komputer wykona ruch
    itd.

    plansza ponumerowana jest tez upierdliwie:
    00 01 02 03 04 05 06 07
    10 11 12 ....
    ...
    70 71 72 73 74 75 76 77

    autor chwali sie ze proram jest kompaktowy - to prawda ale zawsze da sie cos optymalizowac ;-)

    oto przyklad:

    REVERSE
    LDX #$0F
    ETC
    SEC
    LDY BK,X
    LDA #$77
    SBC BOARD,X
    STA BK,X
    STY BOARD,X
    SEC
    LDA #$77
    SBC BOARD,X
    STA BOARD,X
    DEX
    BPL ETC
    RTS

    po optymalizacji
    REVERSE
    ldx #$0f
    @ lda BOARD,x
    ldy BK,x
    eor #$77
    sta BK,x
    tya
    eor #$77
    sta BOARD,x
    dex
    bpl @-
    rts

    5 bajtow krocej :-)

    ---
    . - pionek
    = - wieza
    ( - konik
    ^ - laufer
    * - krolowka
    + - krol

    ============

    P - play
    R - reset (bylo C)
    x - eXchange (bylo E)
    M - move (bylo F)

    fonty stworzyl kolega QTZ

    w menu opecje SAVE i LOAD

    skroty klawiszowe.
  1.  
    Hmmmm,

    + is king ? To me it looks like the king stands on field "D1" and "D8" where normally the queen would stand...?!?
    • 3: CommentAuthorlaoo
    • CommentTime10 Apr 2020
     
    O w mordę, ale mieli syntax w tym oryginalnym źródle.
    • 4: CommentAuthorxxl
    • CommentTime10 Apr 2020
     
    tak... na szczescie znalazlem to w cztelniejszej formie :-)

    ->link<-
    • 5: CommentAuthorzbyti
    • CommentTime10 Apr 2020 zmieniony
     
    @xxl no ładnie, a dopiero co przedwczoraj mówiłem, że nikomu z obecnych programistów się nie będzie chciało tego robić.

    "przepisane" źródła udostępnisz?

    Jeżeli u dołu są białe to tak jak zauważył @CharlieChaplin źle dałeś legendę do figur.

    EDIT: białe są u góry, wiec legenda jest OK.
    • 6: CommentAuthorzbyti
    • CommentTime10 Apr 2020 zmieniony
     
    To jakby co można przerzucić jeszcze takie historyczne cudo ;)
    • 7: CommentAuthorzbyti
    • CommentTime10 Apr 2020 zmieniony
     
    Już widzę pierwszy błąd:

    Wykonałem ruch e2-e4 i dałem P licząc na odpowiedź czarnych a tutaj dostałem kolejny ruch białych.

    Można grać tylko czarnymi?
    • 8: CommentAuthorxxl
    • CommentTime10 Apr 2020 zmieniony
     
    potwierdzenie wprowadzonego przez ciebie ruchu to "F" a nie "P". "P" to zawsze komputer wykonuje ruch.

    obrot planszy (czarne/biale) to "E" i return.

    jak chcesz zeby komputer gral sam ze soba to:
    P return
    E return
    P return
    E .... i tak dalej.

    ---
    ---
    program bedzie dzialal tylko na XL OS (dowolnej rewizji) korzysta z procedur:

    INPUT: EGETCH equ $F24A

    PRINT: OUTCH equ $F1A4
    • 9: CommentAuthorzbyti
    • CommentTime10 Apr 2020 zmieniony
     
    @xxl faktycznie nie zobaczyłem, że można zmienić strony, już się "oswoiłem" ze sterowaniem.

    Na ten moment gram czarnymi by zobaczyć, czy pogra poprawnie całą partię.

    No niestety wykonując szacha źle wbiłem ruch hetmana i już nie mam pojęcia jak to odkręcić, dojechałem czarnymi do tej pozycji.

    • 10: CommentAuthorxxl
    • CommentTime10 Apr 2020 zmieniony
     
    C return
    i poukladaj figury swoje i przeciwnika za pomoca "F".
    jak plansza bedzie ulozona jak chcesz zacznij grac - P - ruch przeciwnika.

    ---
    przdalby sie normalny interfejs
    • 11: CommentAuthorzbyti
    • CommentTime10 Apr 2020 zmieniony
     
    A co do tego jak wbijałem:

    1 return 3 return 3 return 3 return F return P return

    wtedy mam dwa ruchy białych na planszy. Jak rozumiem, przed P muszę jeszcze dać E.

    Gdy zacznę od P return to gram czarnymi i wtedy wszystko OK.

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

    Figury możesz pożyczyć (pewnie @urborg jako autor bierek nie ma nic przeciwko, byle byś kswyki nie przekręcił ;D) z tego co robiłem w Mad Pascalu.



    {* White square, invert Black square *}
    WHITE_SQUARE : TChessman = (
    $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,
    $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,
    $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$ff
    );
    {* White pawn on black, invert Black pawn on white *}
    PAWN_SE : TChessman = (
    $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$3C,$00,$00,$7E,$00,$00,
    $7E,$00,$00,$3C,$00,$00,$18,$00,$00,$3C,$00,$00,$7E,$00,$00,$3C,$00,$00,$3C,
    $00,$00,$3C,$00,$00,$3C,$00,$00,$7E,$00,$00,$FF,$00,$01,$FF,$80,$01,$FF,$80
    );
    {* Black pawn on black, invert White pawn on white *}
    PAWN_EE : TChessman = (
    $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$3C,$00,$00,$42,$00,$00,$81,$00,$00,
    $81,$00,$00,$42,$00,$00,$24,$00,$00,$42,$00,$00,$81,$00,$00,$42,$00,$00,$42,
    $00,$00,$42,$00,$00,$42,$00,$00,$81,$00,$01,$00,$80,$02,$00,$40,$02,$00,$40
    );
    {* White king on black, invert Black king on white *}
    KING_SE : TChessman = (
    $00,$00,$00,$00,$00,$00,$00,$18,$00,$00,$18,$00,$00,$7E,$00,$07,$7E,$E0,$0F,
    $99,$F0,$1F,$DB,$F8,$1F,$FF,$F8,$1F,$FF,$F8,$1F,$E7,$F8,$1F,$DB,$F8,$0F,$BD,
    $F0,$07,$BD,$E0,$07,$DB,$E0,$02,$66,$40,$03,$FF,$C0,$01,$00,$80,$01,$FF,$80
    );
    {* Black king on black, invert White king on white *}
    KING_EE : TChessman = (
    $00,$00,$00,$00,$0E,$00,$00,$11,$80,$03,$16,$40,$04,$E1,$A0,$08,$04,$50,$08,
    $00,$50,$07,$00,$50,$08,$00,$50,$04,$E0,$50,$03,$20,$A0,$00,$41,$40,$00,$81,
    $40,$01,$22,$80,$02,$42,$80,$04,$82,$80,$04,$81,$40,$04,$00,$A0,$02,$00,$50
    );
    {* White queen on black, invert Black queen on white *}
    QUEEN_SE : TChessman = (
    $00,$00,$00,$00,$00,$00,$00,$00,$00,$11,$18,$88,$1B,$BD,$D8,$1B,$BD,$D8,$1B,
    $BD,$D8,$1F,$FF,$F8,$1F,$FF,$F8,$1F,$FF,$F8,$1F,$FF,$F8,$0F,$FF,$F0,$0F,$FF,
    $F0,$0C,$00,$30,$07,$FF,$E0,$06,$00,$60,$03,$FF,$C0,$03,$00,$C0,$01,$FF,$80
    );
    {* Black queen on black, invert White queen on white *}
    QUEEN_EE : TChessman = (
    $00,$00,$00,$00,$00,$00,$11,$18,$88,$2A,$A5,$54,$24,$42,$24,$24,$42,$24,$24,
    $42,$24,$20,$00,$04,$20,$00,$04,$20,$00,$04,$20,$00,$04,$10,$00,$08,$10,$00,
    $08,$13,$FF,$C8,$08,$00,$10,$09,$FF,$90,$04,$00,$20,$04,$FF,$20,$02,$00,$40
    );
    {* White rook on black, invert Black rook on white *}
    ROOK_SE : TChessman = (
    $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$03,$BD,$C0,$03,$BD,$C0,$03,
    $BD,$C0,$03,$FF,$C0,$01,$FF,$80,$00,$FF,$00,$00,$FF,$00,$00,$FF,$00,$00,$FF,
    $00,$00,$FF,$00,$00,$FF,$00,$01,$FF,$80,$01,$FF,$80,$07,$FF,$E0,$07,$FF,$E0
    );
    {* Black rook on black, invert White rook on withe *}
    ROOK_EE : TChessman = (
    $00,$00,$00,$00,$00,$00,$00,$00,$00,$03,$BD,$C0,$04,$42,$20,$04,$42,$20,$04,
    $42,$20,$04,$00,$20,$02,$00,$40,$01,$00,$80,$01,$00,$80,$01,$00,$80,$01,$00,
    $80,$01,$00,$80,$01,$00,$80,$02,$00,$40,$06,$00,$60,$08,$00,$10,$08,$00,$10
    );
    {* White knight on black, invert Black knight on white *}
    KNIGHT_SE : TChessman = (
    $00,$00,$00,$00,$00,$00,$00,$0E,$00,$00,$09,$80,$03,$1E,$40,$07,$FB,$A0,$07,
    $FF,$A0,$00,$FF,$A0,$07,$FF,$A0,$03,$1F,$A0,$00,$1F,$40,$00,$3E,$80,$00,$7E,
    $80,$00,$DD,$00,$01,$BD,$00,$03,$7D,$00,$03,$7E,$80,$03,$FF,$40,$01,$FF,$A0
    );
    {* Black knight on black, invert White knight on withe *}
    KNIGHT_EE : TChessman = (
    $00,$00,$00,$00,$0E,$00,$00,$11,$80,$03,$16,$40,$04,$E1,$A0,$08,$04,$50,$08,
    $00,$50,$07,$00,$50,$08,$00,$50,$04,$E0,$50,$03,$20,$A0,$00,$41,$40,$00,$81,
    $40,$01,$22,$80,$02,$42,$80,$04,$82,$80,$04,$81,$40,$04,$00,$A0,$02,$00,$50
    );
    {* White bishop on black, invert Black bishop on white *}
    BISHOP_SE : TChessman = (
    $00,$00,$00,$00,$00,$00,$00,$18,$00,$00,$7E,$00,$00,$FF,$00,$01,$E7,$80,$01,
    $E7,$80,$03,$E7,$C0,$03,$E7,$C0,$03,$18,$C0,$03,$E7,$C0,$03,$E7,$C0,$03,$E7,
    $C0,$01,$E7,$80,$01,$FF,$80,$00,$E7,$00,$00,$7E,$00,$0F,$66,$F0,$19,$DB,$98
    );
    {* Black bishop on black, invert White bishop on withe *}
    BISHOP_EE : TChessman = (
    $00,$00,$00,$00,$18,$00,$00,$66,$00,$00,$81,$00,$01,$00,$80,$02,$18,$40,$02,
    $18,$40,$04,$18,$20,$04,$18,$20,$04,$E7,$20,$04,$18,$20,$04,$18,$20,$04,$18,
    $20,$02,$18,$40,$02,$00,$40,$01,$18,$80,$0E,$81,$70,$10,$99,$08,$26,$24,$64
    );
    • 12: CommentAuthorzbyti
    • CommentTime10 Apr 2020 zmieniony
     
    Zagrałem białymi. W tym jakiś poziom można było ustawić? Gdzieś mam instrukcję do tego programu...

    Na domyślnych ustawieniach trudno nazwać to programem szachowym. Raczej program który potrafi wykonywać ruchy w obrębie prawideł szachowych.

    W mojej nomenklaturze program który nie widzi mata w 1 posunięciu nie zasługuje na miano szachowego.

    Co ciekawe, jak dostał mata to o tym wiedział bo P już nie wprawiało go w zadumę.

    Na dowód, że to raczej coś znające zasady ale bez elementarnej wiedzy szachowej poniższa partia.

    @xxl stać Cię na więcej niż przepisanie najprostszego programu ;)

    Może weź na warsztat Sargon I, jest książka na sieci ->link<- jak to było pisane oraz listingi wraz z diagramem dobrze opracowane w innym miejscu. Dodałem też jako załącznik, tylko 3 w nazwie dodał automat, to listing Sargona I napisany w ZASM z komentarzem.

    Od tej książki i tego linstingu oraz pomysłów na jego usprawnienie zaczął najlepszy programista szachowy złotej epoki elektronicznych szachów :]



    • 13: CommentAuthorxxl
    • CommentTime10 Apr 2020
     
    ale po co. Microchess to ciekawostka.

    a jak gra czarnymi (nie korzysta z otwarcia) to tez daje sie tak zalatwic?
    • 14: CommentAuthorzbyti
    • CommentTime10 Apr 2020 zmieniony
     

    xxl:

    ale po co. Microchess to ciekawostka.

    Tak sądziłem, że na powstanie kolejnego programu szachowego w Polsce na A8 jest szansa 5% i, że na 95% autorem będę ja :D

    A dlaczego nie miało by się go tak załatwić czarnymi? Zajmie to jedno posunięcie więcej ;)
    • 15: CommentAuthorxxl
    • CommentTime10 Apr 2020 zmieniony
     
    teraz go zagnij. moze niczego nie spierniczylem ;-)
    • 16: CommentAuthorzbyti
    • CommentTime10 Apr 2020 zmieniony
     
    No to jeszcze czarnymi w pierwszej wersji, za jakiś czas sprawdzę tą nową wersję co właśnie zamieściłeś.

    Przecież jak program nie widzi mata w 1 ruchu (do tego podstawia figury) to ja mogę grać cokolwiek...



    • 17: CommentAuthorzbyti
    • CommentTime10 Apr 2020 zmieniony
     
    W nowej wersji wydłużyłeś czas na ruch.

    Jest błąd. W ostatnim ruchu czarne pobiły mi hetmana królem co jest ruchem nielegalnym. Z resztą 85 nie ma takiego pola, w Sargon I, w kodzie, widziałem, że linia 8 jest "pomocnicza".
    • 18: CommentAuthorxxl
    • CommentTime10 Apr 2020
     
    e tam nielegalnm ;-) krol walczy jak lew.
    • 19: CommentAuthorzbyti
    • CommentTime10 Apr 2020
     
    Raczej zboczeniec rzucił się na królową przez dwa pola, to maniak!
    • 20: CommentAuthorzbyti
    • CommentTime10 Apr 2020 zmieniony
     
    Ha! Dobrze pamiętałem instrukcję do KIM MicroChess :]

    • 21: CommentAuthorzbyti
    • CommentTime11 Apr 2020 zmieniony
     
    @xxl z tego coś więcej będzie czy już zakończyłeś zabawę?

    EDIT: historia microchess słowami autora ->link<-

    • 22: CommentAuthorxxl
    • CommentTime11 Apr 2020
     
    ze dwa dni nic z tym nie bede robil...
    • 23: CommentAuthorzbyti
    • CommentTime11 Apr 2020 zmieniony
     
    Szukam microchess na kasecie by zagrać pod MAME na KIM-1 i porównać "jakość" gry :]

    EDIT: znalazłem ->link<- ale jeszcze musiał bym to przerabiać na coś co łyknie MAME ale chyba brak mi determinacji.

    Niby poskładać to można tym ->link<-
    • 24: CommentAuthorzbyti
    • CommentTime11 Apr 2020 zmieniony
     
    Article on upgrading/extending Microchess, Compute II Issue 1 ->link<-

    EDIT:
    A tu podrasowana wersja MC ze źródłami na Apple ][ ->link<- ostatnie zmiany z "17-SEP-2018 Modified for TASM v3.0.1 assembler"
    • 25: CommentAuthorxxl
    • CommentTime11 Apr 2020
     
    zostawie sobie to do czytania na poniedzialek podczas "gramy na gazie"... ;-)
    • 26: CommentAuthorxxl
    • CommentTime13 Apr 2020
     
    kolega Qtz zrobil fonty do gry:
    • 27: CommentAuthorzbyti
    • CommentTime13 Apr 2020
     
    Świetnie to wygląda!
    • 28: CommentAuthorxxl
    • CommentTime13 Apr 2020 zmieniony
     
    mozna juz wprowadzac ruchy w stylu: a2-a3 return, f return
    • 29: CommentAuthorzbyti
    • CommentTime13 Apr 2020 zmieniony
     
    e2-e4 return f return i wieża wylądowała poza stołem.

    Skoro patrzymy od strony czarnych to może daj w innym porządku koordynaty?
    • 30: CommentAuthorxxl
    • CommentTime13 Apr 2020 zmieniony
     
    no tak... trzeba bylo zmienic klawisze... teraz

    P - play
    R - reset (bylo C)
    x - eXchange (bylo E)
    M - move (bylo F)

    o co chodzi z koordynantami?
    • 31: CommentAuthorzbyti
    • CommentTime13 Apr 2020 zmieniony
     
    Teraz e2-e4 jest ok.

    No przecież jeżeli a1 jest w lewym dolnym rogu to powinny na 1-wszej linii stać białe figury a stoją czarne.

    Skoro e2-e4 to ruch jak na screenie to musisz zamienić kolor bierek, a koordynaty są ok.
    • 32: CommentAuthorxxl
    • CommentTime13 Apr 2020
     
    chcesz powiedziec, ze jesli chcesz zmienic kolor figur to musisz obrocic plansze?
    • 33: CommentAuthorzbyti
    • CommentTime13 Apr 2020 zmieniony
     
    Tak się przyjęło, że biały król stoi na e1 ale w przebiegu samej gry nic to nie zmieni, chcesz, żeby u Ciebie było odwrotnie? Nie mam z tym problemu.

    A co do obrotu planszy to tak się robi. Białe zawsze mają a1 (czarne pole) po swojej lewej stronie u dołu gdy siedzisz za stołem.

    Oczywiście jak komuś nie chce się kręcić stołem to ustawia niepoprawnie, na samą rozgrywkę to nie wpływa.
    • 34: CommentAuthorxxl
    • CommentTime13 Apr 2020
     
    a po [x] return jest ok?
    • 35: CommentAuthorzbyti
    • CommentTime13 Apr 2020 zmieniony
     
    X return e2-e4 return M return

    Kolor nie ten, ale to już wiesz. No i figury nie na swoich miejscach bo pion E jest królewski.

    Takie rzeczy możesz sprawdzić sam przecież?
    • 36: CommentAuthorxxl
    • CommentTime13 Apr 2020 zmieniony
     
    czyli po R jest zle i po X tez jest zle?


    ---
    no moge ale nie moa byc obydwa ustawienia zle gdy nie obracam planszy a przekladam fiury. wdaje mi sie to nielogiczne.

    wtlumacz mi to,
    • 37: CommentAuthorzbyti
    • CommentTime13 Apr 2020 zmieniony
     
    @xxl wiesz co? Nie nadążam za tym pytaniem. Opisałem Ci jak powinny stać kolory i że króle stoją zawsze na kolumnie E.

    Proszę posprawdzaj samodzielnie.

    EDIT:
    za chwilę dopiszę bo AOL dziś wariuje.

    Po wystartowaniu programu kolory figur są źle ustawione.

    Jeżeli dam X a po tym R mam prawidłowe ustawienie i gram białymi, więc powinieneś wykonać te dwie operacje zanim wyrysujesz stół przy pierwszym uruchomieniu.
    • 38: CommentAuthorxxl
    • CommentTime13 Apr 2020
     
    czyli po [X] jest dobrze. to co mowisz ze zle, krol stoi na kolumnie E.
    • 39: CommentAuthorzbyti
    • CommentTime13 Apr 2020 zmieniony
     
    Bo skoro po X się przerysowuje to dlaczego jeszcze muszę dawać R by było prawidłowo? Nieintuicyjne i nie zrobiłem tego, połącz te operacje czy co?
    • 40: CommentAuthorxxl
    • CommentTime13 Apr 2020 zmieniony
     
    dlaczego uwazasz ze musisz, gdzie to wyczytales?

    ---
    cos krecisz.
    • 41: CommentAuthorzbyti
    • CommentTime13 Apr 2020 zmieniony
     
    Qwa... X return - wytłumacz mi co to jest za ustawienie (screen)? Jeżeli chcę grać w szachy muszę jeszcze dać R.
    • 42: CommentAuthorxxl
    • CommentTime13 Apr 2020
     
    ustawienie jest prawidlowe. masz krola na E

    no i co tu jest nie tak. KONKRETNIE.
    • 43: CommentAuthorzbyti
    • CommentTime13 Apr 2020 zmieniony
     
    Na screenie program po uruchomieniu, wykonano ruch (i nic innego) pionem królewskim e2-e4.

    Sam sobie zdecyduj co u Ciebie jest królem, bo ja nie wiem.
    • 44: CommentAuthorxxl
    • CommentTime13 Apr 2020
     
    ten screen jest inny niz poprzedni. czyli poprzedni jest jednak OK a ten jest zly tak?
    • 45: CommentAuthorzbyti
    • CommentTime13 Apr 2020 zmieniony
     
    @xxl opisałam co robiłem przed uzyskaniem danego screena w każdym moim poście.

    Prawidłowe ustawienie (by rozpocząć partię białymi) jest na screenie z postu #37 a by go uzyskać zrobiłem X return, R return

    Wtedy prawidłową bierkę/piktogram reprezentującą króla masz na e1 a na d1 jest hetman.
    • 46: CommentAuthorxxl
    • CommentTime13 Apr 2020 zmieniony
     
    napisz mi KONKRETNIE co jest nie tak na obrazku z posta 41.

    ---
    juz widze co jest nie tak.... nie rozrozniasz figur ;-) krolowka stoi na polu w swoim kolorze.
    • 47: CommentAuthorzbyti
    • CommentTime13 Apr 2020
     
    @xxl nie potrafię bo masz słaby wzrok i nie widzisz piktogramu na e1 który reprezentuje hetmana.
    • 48: CommentAuthorzbyti
    • CommentTime13 Apr 2020
     

    xxl:

    juz widze co jest nie tak.... nie rozrozniasz figur ;-) krolowka stoi na polu w swoim kolorze.

    Czyli to nie kształt decyduje jaka to figura tylko kolor pola na którym stoi?!

    WoW! To ja dziękuję za dyskusję :)
    • 49: CommentAuthorxxl
    • CommentTime13 Apr 2020
     
    ksztalt ktorego nie rozrozniasz wiec podalem Ci kolor pola na ktorym stoi :D
    • 50: CommentAuthorzbyti
    • CommentTime13 Apr 2020
     
    Czy ty jesteś trzeźwy?