TicTacToe wie ist es besser?
-
Hallo

Ich hab nochmal versucht ein neues TicTacToe Spiel zu Programmieren
Es funktioniert auch alles aber ich habe noch eine Frage:
Ich hab 2 Klassen (eine für multiplayer und eine für singleplayer)class TicTacToe { public: void check(); // prüft ob Spieler gewonnen hat void draw(); //gibt das Feld aus virtual void set(); //eingabe der Spieler bool getwin() {return gewonnen;} TicTacToe(); //Konstruktor protected: std::vector<char> Feld; //das Spielfeld(3x3) char spieler1; // eingabe für 1.Spieler char spieler2; // " " " 2.Spieler oder PC int reihenfolge; // gerad = spieler1, ungerade = spieler2 bool gewonnen; int feldbesetzt; //prüft ob alle 9 felder besetzt sind };class Multi : public TicTacToe { public: virtual void set(); Multi(){TicTacToe();}; };Ist es besser die Klassen so wie jetzt (mit Polymorphismus) zu nutzen oder lieber einfach eine Funktion set_multiplayer() der Klasse TicTacToe hinzufügen?
-
Ist hier Singleplayer=KI gemeint?
Ich würde ein Interface machen und davon zwei Klassen für KI und für menschlichen Spieler ableiten und die globale Klasse Tic-Tac-Toe fragt das Objekt Player dann nach einer Entscheidung und das ermittelt dann selbstständig den nächsten Zug (entweder per Algorithmus oder per Eingabe)
Das ist zwar für Tic-Tac-Toe ein ziemlicher overkill, aber es geht hier ja ums lernen und bei einem komplexen Spiel lohnt sich diese Methode, z.B. beim Rollenspiel gibt es man eine große Anzahl von möglichen Aktionen hat und eine Person kann entweder die eigene Spielfigur, ein anderer Spieler oder ein KI-gesteuerter NPC sein.