2021-12-20 / Bartłomiej Kurek
Python: chessboard

Planuję niebawem rozpocząć serię artykułów dotyczących algorytmów oraz grafów. Zacznę jednak bez "przemóżdżania" proponując na start proste zadanie, którego celem jest implementacja szachownicy. Reguły gry w szachy nie są kluczowe, chodzi o szachownicę. W przyszłości - mam nadzieję - szachownica i jej koordynaty posłużą nam do opisu zagadnień, bądź obrazowania wierzchołków, krawędzi, sąsiadów w grafach, itd.

Zadanie

Zadaniem jest stworzenie programu, który wyświetli szachownicę oraz oznaczenia jej koordynat:

  • kolumny (files): A - H
  • wiersze (ranks): 1 - 8.

Na szachownicy możemy rozmieścić losowo dowolne figury. Od czego zacząć? Od tego, że pole A1 jest "czarne"!.
Program najlepiej zaimplementować w konsoli, a przy okazji poznać możliwości Unicode. Figury to "literki", a specyfikację znajdziemy na Wikipedii.

Opis / szczegóły

Kod mojej szachownicy z losowym rozstawem figur (dowolnych i "byle jak") znaleźć można w repozytorium git.
W szachach istnieje wiele reguł, a świat IT wypracował wiele standardów algorytmicznych i interoperacyjnych dla tej gry. Nie będziemy się tutaj zajmować jednak samą grą w szachy, natomiast "narysowanie" szachownicy można potraktować jako przyjemny wstęp do algorytmów. Płaszczyzna 8x8, co drugie pole w przeciwnym kolorze. Jeśli ktoś ma ambicje - można oczywiście pójść nieco dalej i zaimplementować ustawianie figur zgodnie ze standardem notacji FEN: Forsyth–Edwards Notation, a naprawdę ambitne osoby mogą skorzystać z zasobów platformy lichess.org, która dostarcza kod open-source zawierający szachownice, serwer gier, silniki analiz, itd. Na tej platformie można też zaznajomić się z samą notacją FEN (np. poustawiać figury i przyjrzeć się notacji odpowiadającej danemu rozstawieniu).
Niemniej - my ograniczamy się do samej szachownicy jako "pola operacyjnego".

Demo

Video mojej szachownicy z losowymi figurami.

Video: MP4, 293K, 1920x1080. Duration: 00:00:20 Link