Lets Code – Chess

Hallo zusammen. Es ist Sonntag nachmittag und ich habe die Bude für mich allein. Das löst gerade allerdings eher Langeweile als Freude bei mir aus. Daher habe ich überlegt Gehirn und Finger etwas auf Trab zu halten und ein kleines Schachprogramm zu implementieren. Zunächst wird es wohl eher nur eine Bibliothek sein die ich später an ein User Interface anschließen werden.

Lange Rede kurzer Sinn. Alle Voraussetzungen erfüllt?

Kaffee: Check

Musik: Check

Wie gehen wir’s an?

Schach ist meiner Meinung nach das ideale Spiel für den Einstieg in die Programmierung. Warum? Die Regeln sind sehr verbreitet und rein logisch aufgebaut. Es gibt eine begrenze Spielerzahl und für alle Spieler gelten dies gleichen Regeln. Ich stelle es mir also so vor, dass sich ein Regelset in Programmlogik schnell und einfach aufbauen lassen sollte.

Testbarkeit

Nach kurzer Recherche im Netz scheint es viele vorbereitete Standard Schachzüge im Netz zu geben. Diese wären gute Beispiele für Unittests um die Programmlogik zu testen. Es gibt scheinbar sogar eine eigene „Sprache“ für Folgen von Schachzügen die sich in Stringform ideal parsen lassen sollte.

Vorgehen:

Ich denke es wäre am einfachsten zunächst die Basisfunktionalitäten wie Schachbrett, Spielstatus und Figuren in die Codebase zu bringen. Danach sollte es eine Möglichkeit geben die Schachzüge aus einer Stringform in Anweisungen zu bringen. Dadurch könnten man durch Unittests abgesicherte Logik schreiben um die Schachlogik zu implementieren. Es ähnelt also ein bisschen dem testdriven development.

Code:

Den Fortschritt des Codes kann man gerne in meinem Gitlab Repository anschauen.