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 01:04 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 07:04
       
      O w mordę, ale mieli syntax w tym oryginalnym źródle.
      • 4: CommentAuthorxxl
      • CommentTime10 Apr 2020 08:04
       
      tak... na szczescie znalazlem to w cztelniejszej formie :-)

      ->link<-
      • 5: CommentAuthorzbyti
      • CommentTime10 Apr 2020 10:04 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 10:04 zmieniony
       
      To jakby co można przerzucić jeszcze takie historyczne cudo ;)
      • 7: CommentAuthorzbyti
      • CommentTime10 Apr 2020 10:04 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 10:04 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 11:04 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 11:04 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 11:04 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 13:04 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 13:04
       
      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 13:04 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 14:04 zmieniony
       
      teraz go zagnij. moze niczego nie spierniczylem ;-)
      • 16: CommentAuthorzbyti
      • CommentTime10 Apr 2020 14:04 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 14:04 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 14:04
       
      e tam nielegalnm ;-) krol walczy jak lew.
      • 19: CommentAuthorzbyti
      • CommentTime10 Apr 2020 16:04
       
      Raczej zboczeniec rzucił się na królową przez dwa pola, to maniak!
      • 20: CommentAuthorzbyti
      • CommentTime10 Apr 2020 22:04 zmieniony
       
      Ha! Dobrze pamiętałem instrukcję do KIM MicroChess :]

      • 21: CommentAuthorzbyti
      • CommentTime11 Apr 2020 13:04 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 13:04
       
      ze dwa dni nic z tym nie bede robil...
      • 23: CommentAuthorzbyti
      • CommentTime11 Apr 2020 13:04 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 15:04 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 16:04
       
      zostawie sobie to do czytania na poniedzialek podczas "gramy na gazie"... ;-)
      • 26: CommentAuthorxxl
      • CommentTime13 Apr 2020 13:04
       
      kolega Qtz zrobil fonty do gry:
      • 27: CommentAuthorzbyti
      • CommentTime13 Apr 2020 13:04
       
      Świetnie to wygląda!
      • 28: CommentAuthorxxl
      • CommentTime13 Apr 2020 20:04 zmieniony
       
      mozna juz wprowadzac ruchy w stylu: a2-a3 return, f return
      • 29: CommentAuthorzbyti
      • CommentTime13 Apr 2020 20:04 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 20:04 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 21:04 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 21:04
       
      chcesz powiedziec, ze jesli chcesz zmienic kolor figur to musisz obrocic plansze?
      • 33: CommentAuthorzbyti
      • CommentTime13 Apr 2020 21:04 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 21:04
       
      a po [x] return jest ok?
      • 35: CommentAuthorzbyti
      • CommentTime13 Apr 2020 21:04 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 21:04 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 21:04 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 21:04
       
      czyli po [X] jest dobrze. to co mowisz ze zle, krol stoi na kolumnie E.
      • 39: CommentAuthorzbyti
      • CommentTime13 Apr 2020 21:04 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 21:04 zmieniony
       
      dlaczego uwazasz ze musisz, gdzie to wyczytales?

      ---
      cos krecisz.
      • 41: CommentAuthorzbyti
      • CommentTime13 Apr 2020 21:04 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 21:04
       
      ustawienie jest prawidlowe. masz krola na E

      no i co tu jest nie tak. KONKRETNIE.
      • 43: CommentAuthorzbyti
      • CommentTime13 Apr 2020 21:04 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 21:04
       
      ten screen jest inny niz poprzedni. czyli poprzedni jest jednak OK a ten jest zly tak?
      • 45: CommentAuthorzbyti
      • CommentTime13 Apr 2020 21:04 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 21:04 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 21:04
       
      @xxl nie potrafię bo masz słaby wzrok i nie widzisz piktogramu na e1 który reprezentuje hetmana.
      • 48: CommentAuthorzbyti
      • CommentTime13 Apr 2020 22:04
       

      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 22:04
       
      ksztalt ktorego nie rozrozniasz wiec podalem Ci kolor pola na ktorym stoi :D
      • 50: CommentAuthorzbyti
      • CommentTime13 Apr 2020 22:04
       
      Czy ty jesteś trzeźwy?