Preview: Mein Tutorial::TicTacToe



  • Kannst du mir mal kurz deine Namensgebungskonventionen erklären? Meine Theorie ist "Typen beginnen immer groß außer Montags". Quasi alles beginnt mit einem Großbuchstaben aber 'playerType' dann auf einmal nicht.

    Und 'Type' finde ich irgendwie sehr fragwürdig.



  • ThAlb schrieb:

    Warum so kompliziert? Wie wärs mit
    ...
    Für viele dürfte das noch eher verständlich sein...

    als beitrag zum homor im c++-forum und damit ich ich ein 🤡 und ein "Hö? Kenn ich gar nicht" ernte.



  • Helium schrieb:

    Quasi alles beginnt mit einem Großbuchstaben aber 'playerType' dann auf einmal nicht.

    Stimmt, ist n Fehler.

    Und 'Type' finde ich irgendwie sehr fragwürdig.

    Ich auch. Ich suche noch nach einen vernünftigen Namen... Ich hatte schon 6 verschiedene - aber alle waren schlechter als Type.



  • Shade Of Mine schrieb:

    Helium schrieb:

    Quasi alles beginnt mit einem Großbuchstaben aber 'playerType' dann auf einmal nicht.

    Stimmt, ist n Fehler.

    Und 'Type' finde ich irgendwie sehr fragwürdig.

    Ich auch. Ich suche noch nach einen vernünftigen Namen... Ich hatte schon 6 verschiedene - aber alle waren schlechter als Type.

    gehts besser, deutsch namen zu finden?
    das spielfeld nenne ich Feld.
    jedes feld hat eine Farbe.
    das spiel an sich ist nicht aktiv, aktiv ist der Spielleiter. er erzeugt zwei Spieler, das Feld und führt ein spiel durch.
    der SpielerMensch und der SpielerComputer sind Spieler.
    der Spielleiter fragt jeweils einen Spieler nach dem Zug, den er machen möchte, checkt, ob der Zug gültig ist, und sagt dann dem Feld, daß der Zug gemacht wurde.

    playerType ist reingerutsch, damit

    menu->addEntry(menu::makeMenuEntry(this, &Application::startGame, PLAYER_HUMAN, PLAYER_AI,     "Start Game (Player    VS  Computer)"));
    

    klappt, und gipfelt in

    Player* makePlayer(playerType type, Type element)
    {
      switch(type)
      {
      case PLAYER_HUMAN:
        return new HumanPlayer(element);
      case PLAYER_AI:
        return new AIPlayer(element);
      }
      return 0;
    }
    

    ach, nee. ich würde lieber eine globale map machen, die strings wie "SpielerMensch" nem zeiger auf ein Konstruktorobjekt zuordnet, das nen SpielerMensch konstruieren kann. und in der SpielerMensch.cpp lege der SpielerMensch halt sein Konstruktorobjekt static global an, welches sich in seinem Konstruktor in der map registirert und im destruktor deregistriert. dann können andere leute neue AIs beisteiern, ohne auch nur eine headerdatei verändern zu müssen.



  • Also ich bin gerade dabei, für die AI relativ viel Müll zu coden, weil das Field so wenig Methoden hat.
    z.B.:

    int getCount(Type);

    würde fehlen. Und das am besten noch jeweils für Spalten, Zeilen und die beiden Diagonalen. 😃

    Ich bin schon wieder bei 150 Zeilen. 🙄 😋

    btw. diese Methoden könnte man dann auch gleich verwenden, um den Sieger zu bestimmen. Wär also nicht ganz für die Katz.



  • volkard schrieb:

    WinXP, das kann groß-kleinschreibung. ich mach dateinamen wie die klassennamen, seit es geht, also bei mir seit dem umstieg von dos auf win95.

    Win9x unterscheidet nicht zw. Groß- und Kleinschreibung, aber dass weißt du sicher. Wegen sowas musste ich mich schon ein paar mal durch Quelltexte wühlen um die include-Zeilen zu korrigieren.

    Wenn von vornerein alles klein ist, kann man wenistens rename 'y/A-Z/a-z/' machen.



  • DrGreenthumb schrieb:

    volkard schrieb:

    WinXP, das kann groß-kleinschreibung. ich mach dateinamen wie die klassennamen, seit es geht, also bei mir seit dem umstieg von dos auf win95.

    Win9x unterscheidet nicht zw. Groß- und Kleinschreibung, aber dass weißt du sicher. Wegen sowas musste ich mich schon ein paar mal durch Quelltexte wühlen um die include-Zeilen zu korrigieren.
    Wenn von vornerein alles klein ist, kann man wenistens rename 'y/A-Z/a-z/' machen.

    es "kann" groß-kleinschreibung. daß es dann nichtmal pingelig beim datei-öffnen ist, ist doch ein nettes feature. 😃
    aber keine bange, ich versuche nicht, mit #include "VecTOr.H" die "Vector.h" zu includieren. auf keinen fall darf es ein argument sein, daß du kleinschreibung benutzt, weil andere leute die shift-taste nicht bedienen können.



  • Weiß nicht, vielleicht geht es auch beim zippen kaputt. Es reicht ja, wenn man irgendwann mal die Datei im "falschen" Programm öffnet und wieder speichert. Wenn man bei Windows das entsprechende Häckchen nicht gesetzt hat, bekommt man gar nicht mit wie die Datei jetzt wirklich heißt.

    Wenn du also empfiehlst Groß- und Kleinschreibung zu verwenden (was ich auch schöner finde), dann bitte mit dem Zusatz, "nur wenn's euer BS unterstützt oder ihr wisst was ihr da tut".



  • Ich denke mal, in naher Zukunft wird kein System mehr rauskommen, was keine Groß-/Kleinschreibung unterstützt.
    Die Nachfrage danach ist nämlich gesättigt. 😉



  • DrGreenthumb schrieb:

    Weiß nicht, vielleicht geht es auch beim zippen kaputt. Es reicht ja, wenn man irgendwann mal die Datei im "falschen" Programm öffnet und wieder speichert. Wenn man bei Windows das entsprechende Häckchen nicht gesetzt hat, bekommt man gar nicht mit wie die Datei jetzt wirklich heißt.

    kann mich an keinen zipper (außer mal einem für linux) erinnern, der defaultmäßig die dateinamen zerschießt.

    DrGreenthumb schrieb:

    Wenn du also empfiehlst Groß- und Kleinschreibung zu verwenden (was ich auch schöner finde), dann bitte mit dem Zusatz, "nur wenn's euer BS unterstützt oder ihr wisst was ihr da tut".

    c++-programmier. ich erwarte einfach, daß die ihren rechner ein wenig bedienen können.


Anmelden zum Antworten