Autor Wątek: BootChess  (Przeczytany 3548 razy)

Ziutek

  • ****
  • Wiadomości: 257
  • Miejsce pobytu:
    Toruń/Poland
  • Ziutek/ESI
BootChess
« dnia: 2015.02.04, 00:08:07 »
Rekord świata - 487 bajtów
http://www.pouet.net/prod.php?which=64962
Skype: swengi (nie zawsze online znaczy że jestem przy kompie)

Phonex

  • *****
  • Wiadomości: 1261
  • Miejsce pobytu:
    Warszawa
Odp: BootChess
« Odpowiedź #1 dnia: 2015.02.04, 12:40:04 »
Skoro dało się polecieć na Księżyc z 74kB... ;)
Ale szacun. Nie spodziewałem się że da się napisać taki krótki.

ZbyniuR

  • *****
  • Wiadomości: 3333
  • Miejsce pobytu:
    Carlisle w UK
  • CPC AGA PSX
Odp: BootChess
« Odpowiedź #2 dnia: 2015.02.04, 14:15:59 »
Jak widać jakiś tępy jestem bo nie udało mi się tego uruchomić.  :D

Widziałem kiedyś na CPC szachy w 1KB w Basicu. A żeby nie przekroczyć 1K na dysku, to pamiętając o nagłówku pliku listing nie może przekraczać 895 bajtów. :)
Miał zdefiniowany wygląd pionków jako znaki. Wyświetlał ładną planszę co zajmowało ok 1/4 programu. Ruchy wprowadzało się podając współrzędne. Ale nie miał żadnej inteligencji. Po prostu pionek znikał ze starego pola i pojawiał się na nowym. Nie sprawdzał czyj jest ruch, ani czy taki ruch jest dozwolony ani czy to koniec gry. Można było np dowolnym pionkiem czarnym lub białym od razu skasować dowolny pionek np króla. I nawet nie wyświetlił komunikatu że coś jest nie tak. Ale jeśli mnie pamięć nie myli, to można było cofnąć ostatni ruch. I jestem ciekaw czy ten programik jest bystrzejszy.
- Jeśli masz w domu światło i wodę, tzn. że masz światłowód. ;)

RafalM

  • *****
  • Wiadomości: 1133
  • Miejsce pobytu:
    Sulejówek
Odp: BootChess
« Odpowiedź #3 dnia: 2015.02.04, 16:06:19 »
Z tego co przeczytałem to program gra w "prawie poprawne" szachy:

Nie ma:
- roszady
- bicia w przelocie
- zamiany pionka na ostatniej linii w dowolną figurę (zawsze bierze hetmana)

Trochę sie interesowałem programowaniem szachów i mogę powiedzieć że rezygnacja z dwóch pierszych ruchów nie jest bez przyczyny. Ich uwzględnienie w generowaniu listy prawidłowych ruchów powoduje że algorytm się robi kilka razy bardziej skomplikowany.

Można oczywiście twierdzić że jeśli program nie realizuje wszystkich zasad gry w szachy to nie są to szachy i już. Ale na tej zasadzie np. nikt z nas na podwórku nie grał w piłkę bo olewaliśmy spalone :)

A program oczywiście jest głupi, ale nie ma się czemu dziwić przy takim rozmiarze.

ZbyniuR

  • *****
  • Wiadomości: 3333
  • Miejsce pobytu:
    Carlisle w UK
  • CPC AGA PSX
Odp: BootChess
« Odpowiedź #4 dnia: 2015.02.04, 17:03:05 »
No to jestem pod wrażeniem, że aż tyle zmieścili. :)

Przyznam że proste Szachy w Basicu są na mojej liście kilkudziesięciu pomysłów jakie chciałbym kiedyś zrealizować.
Do planszy z pionkami jakie opisałem wcześniej, tyle że większej (pola 16x16), dodałbym zezwalanie tylko na prawidłowe ruchy, w tym roszada i sprawdzanie czy jest szach. Sterowanie strzałkami lub joyem, cofanie, zapis i odczyt stanu planszy, oraz wykonywanie przypadkowych ruchów w grze z komputerem. Dla takiego amatora jak ja i tak byłby to trudny przeciwnik. hahaha  Choć w miarę prosto dałoby się też zrobić by preferował ruchy w których bije figury, lub choćby pionki.

I do tego Warcaby, z wyborem czy można bić do tyłu czy nie. (Bo różnie ludzie grają). I myślę że całość powinna się zmieścić w 3 KB. :) Mógłby też sprawdzać czy masz bicie (bo za niebicie tracisz życie).

Co to jest bicie w przelocie?
- Jeśli masz w domu światło i wodę, tzn. że masz światłowód. ;)

zx81

  • **
  • Wiadomości: 71
  • Miejsce pobytu:
    krakow
Odp: BootChess
« Odpowiedź #5 dnia: 2015.02.04, 20:35:02 »
Zbijasz pionka chociaz go tam fizycznie nie ma bo skoczyl o jedno pole dalej.

RafalM

  • *****
  • Wiadomości: 1133
  • Miejsce pobytu:
    Sulejówek
Odp: BootChess
« Odpowiedź #6 dnia: 2015.02.04, 20:47:58 »
Cytuj
http://pl.wikipedia.org/wiki/Pion_%28szachy%29#Bicie_w_przelocie
:)

Jakbyś się kiedyś na poważniej wziął za pisanie tych szachów, to służę poradą.

Cytuj
Choć w miarę prosto dałoby się też zrobić by preferował ruchy w których bije figury, lub choćby pionki.


Wcale nie jest łatwo zrobić by bił pionki lub figury tak by w następnym ruchu samemu nie zostać zbitym i nie wyjść na tym w plecy.

Jak to zrobisz to już masz ponad 50% silnika.

Zasadniczo obecnie w szachach jest standardowe podejście do stworzenia AI, doskonalone przez lata którego raczej sam od zera nie wymyślisz - algorytm MINIMAX.

Możesz spróbować poczytać, np. tutaj, chociaż z drugiej strony na starcie może to być zbyt trudne:

www.strony.toya.net.pl/~sierzant29/program_grajacy_w_szachy.doc

Amun-Ra

  • ***
  • Wiadomości: 111
  • Miejsce pobytu:
    Kielce
  • P. D.
    • …
Odp: BootChess
« Odpowiedź #7 dnia: 2015.02.04, 20:57:33 »
Ja bym pograł sobie kiedyś w ośmiobitowe Shogi lub w Xiangqi. Ale na pisanie tego nie mam czasu. :>
And the Lord said unto John, come forth and thou shall receive eternal life. But John came fifth and won a toaster.
https://retro.rocks/cc/

ZbyniuR

  • *****
  • Wiadomości: 3333
  • Miejsce pobytu:
    Carlisle w UK
  • CPC AGA PSX
Odp: BootChess
« Odpowiedź #8 dnia: 2015.02.04, 23:31:50 »
Rany skąd ty znasz takie nazwy?  - Ja z dalekowschodnich klocków to lubiłem pograć jedynie w Madżonga, ale w to się nie da na dwóch. Chyba...

Poważnie to się pisze za pieniądze, a ja pisuję tylko dla jaj. Dobrych programów szachowych na CPC nie brakuje. Gdzieś kiedyś czytałem że Cyrus 2 ogrywał programy na innych 8bitowcach. (choć jest raczej najładniejszy a nie najlepszy). ;) 
Ale takiego którego napisałem sam jeszcze nie ma.
Mój siostrzeniec mnie ogrywa odkąd skończył 6 lat, potem już jedynie we warcaby czasem z nim wygrywałem. Z komputerem nigdy nie wygrałem nawet jak ustawiałem najłatwiejszy poziom i cofałem sobie ruchy niezliczoną ilość razy, także o naście ruchów wstecz. To i tak zawsze mnie rozwalał. I chciałem sobie zrobić taki z którym bym umiał wygrać. :D Więc to nie ma być dobry program, bo musi słabiej przewidywać czy ruch mu się opłaca niż ja. ;)

Pierwszy raz słyszę o biciu w przelocie. :)
- Jeśli masz w domu światło i wodę, tzn. że masz światłowód. ;)

Amun-Ra

  • ***
  • Wiadomości: 111
  • Miejsce pobytu:
    Kielce
  • P. D.
    • …
Odp: BootChess
« Odpowiedź #9 dnia: 2015.02.05, 16:23:02 »
W Shogi od jakiegoś czasu gram, dużo ciekawesza gra od szachów, w chińskie też bym pograł z chęcią, ale z braku czasu skończyło się na razie na ogólnym poznaniu zasad gry. :>
And the Lord said unto John, come forth and thou shall receive eternal life. But John came fifth and won a toaster.
https://retro.rocks/cc/

RafalM

  • *****
  • Wiadomości: 1133
  • Miejsce pobytu:
    Sulejówek
Odp: BootChess
« Odpowiedź #10 dnia: 2015.02.05, 16:33:01 »
Cytuj
W Shogi od jakiegoś czasu gram, dużo ciekawesza gra od szachów

Podziwiam.  Sprawdziłem hasło na Wiki i nie jestem w stanie odróżnić bierek od siebie :)



Amun-Ra

  • ***
  • Wiadomości: 111
  • Miejsce pobytu:
    Kielce
  • P. D.
    • …
Odp: BootChess
« Odpowiedź #11 dnia: 2015.02.05, 20:41:43 »
Wybrałeś akurat klasyczny, najtrudniejszy dla oka, zestaw pionków. :> Jest jeszcze japoński uproszczony, jest taki zapisywany alfabetem łacińskim oraz wzorowany na szachach klasycznych. Ale nie chcę robić offtopa.
And the Lord said unto John, come forth and thou shall receive eternal life. But John came fifth and won a toaster.
https://retro.rocks/cc/