Festlegung auf praktikable Nomenklatur von Spielzügen
die offizielle scheint mir nicht eindeutig zu sein: B2 B3 C3 könnte einen Querzug nach oben links oder nach oben rechts bedeuten?
Vielleicht ist es im Sinner der Eindeutigkeit zweckmäßig, die möglichen Verschiebungsrichtungen von 1 bis 6 oder aus [0, 60, 120, 180, 240, 300] Grad auszuwählen, statt aus zwei Positionen eine Richtung abzuleiten.
GameServer könnte Character parsen, statt Integer: Ein Zug D3 D4 60 ist einfach zu verstehen, als 4 3 4 4 5 5, was den selben Zug bedeuten könnte.
Protokoll festlegen: Als Grundlage sollte das Vier-Gewinnt-Protokoll dienen, weil die Zustände gleich sind und der Server in Teilen ja schon passend implementiert ist.
Code sinnvoll zusammenfassen, zum Beispiel könnte processMessage() schon neben dem Spieler auch das Spiel und den Gegenspieler an die anderen processXXXXX()-Methoden übergeben, statt diese Daten immer wieder zu ermitteln