Tic-Tac-Toe



  • -Was kann ich verbessern

    1. Keine nutzlosen Includes.
    2. Verwende ein Array! Sowas in der Art wie std::array<std::array<char, 3>, 3> board (ein 3x3-Array). - das clear() wird damit zu einem einfachen board = {}.
    3. Verwende keine globalen Variablen
    4. Verwende Funktionen (mit Parametern!, siehe auch 3)

    -Wie schreibe ich es kürzer

    Diese Frage ist missverständlich. Kürzer ist nicht immer besser. Allerdings gilt: wiederhole dich nicht, d.h. implementiere nicht das Gleiche (oder ähnliche Dinge) mehrfach.


  • Banned

    Sehr gutes Programm, habe mich selber mal rangesetzt aber es nicht geschafft, saubere Lösung und die while Schleifen wurden gut gesetzt. Für 3 Monate ist das echt schon gut, ich glaube du hast echt das Zeug ein Programmierer zu werden!



  • @Labude_Fabian sagte in Tic-Tac-Toe:

    Sehr gutes Programm, habe mich selber mal rangesetzt aber es nicht geschafft, saubere Lösung und die while Schleifen wurden gut gesetzt. Für 3 Monate ist das echt schon gut, ich glaube du hast echt das Zeug ein Programmierer zu werden!

    Sehr guter Kommentar. Für den 2. Beitrag ist das echt schon gut. Ich glaube, Du hast echt das Zeug, ein Dummschwätzer zu werden.


  • Banned

    @Belli
    Für 3 Monate ist das echt gut, wenn du das nicht so sieht solltest du vielleicht nochmal überdenken was du schreibst.
    Für Arschgeigen ist kein Platz bei der C++ Community



  • Hrhr, ich schnapp' mir schon mal eine Tüte Popcorn ... nachdem ich meine Fremdschämphase überwunden habe 😂



  • @Labude_Fabian so eine Vulgäre Schreibweise möchte ich unter meinem Schönen Programm nicht sehen


  • Banned

    @Hubilady Dein Programm ist ein vulgäre Schreibweise



  • Solche Variablen wie
    @Hubilady sagte in Tic-Tac-Toe:

    int k1 = 0;
    int k2 = 0;
    int k3 = 0;
    int k4 = 0;
    int k5 = 0;
    int k6 = 0;
    int k7 = 0;
    int k8 = 0;
    int k9 = 0;

    deuten klar auf die Verwendung eines Arrays hin.

    Hast du ein Nummern-Feld rechts auf deiner Tastatur?
    Schau mal, wie da die Belegung ist.



  • @Hubilady sagte in Tic-Tac-Toe:

    Wie schreibe ich es kürzer?

    Du solltest Programme auch verständlich schreiben und dokumentieren. Denn wozu dient beispielsweise k1 oder k2? Oder wo ist das Spielfeld definiert? Sonst weißt du in 4 Wochen nicht mehr, was du programmiert hast.

    Als kleines Gegenbeispiel habe ich dir mal das Spielfeld als Klasse definiert und dokumentiert.

    // MatchField.h
    
    /**
     * @brief Zustand eines einzelnen Feldes 
     */
    enum class FieldState
    {
        EMPTY,              ///< Feld ist leer
        STONE_PLAYER_1,     ///< Auf dem Feld liegt ein Stein von Spieler 1
        STONE_PLAYER_2      ///< Auf dem Feld liegt ein Stein von Spieler 2
    };
    
    
    /**
     * @class MatchField
     * @brief Spielfeld auf welchem Tic Tac Toe gespielt wird
     */
    class MatchField
    {
    public:
        FieldState mField[3][3];   ///< Spielfeld
        
    public:
        /**
         * @brief Erzeugt ein leeres Spielfeld
         */
        MatchField();
    
        /**
         * @brief Entfernt alle Steine vom Feld
         */
        void Clear();
        
        /**
         * @brief Überprüft ob ein Spieler gewonnen hat
         * @param ID    [in] ID des Spielers: 1 = erster Spieler, 2 = zweiter Spieler
         * @return true, wenn der Spieler mit der ID gewonnen hat
         */
        bool PlayerWon(unsigned int ID) const;
    };
    


  • @Belli sagte in Tic-Tac-Toe:

    Sehr guter Kommentar.

    Das war doch ein lustiger sarkastischer Kommentar!


Log in to reply