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.


Anmelden zum Antworten