TIC TAC TOE (gegen Computer)
-
in dem code da oben^^ wird std::string nicht viel helfen. besser ist's eher, irgendwelche dinge zu 'berechnen' und mit lookup-tables zu arbeiten etc. damit kann man diesen umständlichen code ganz schön zusammenstauchen.
-
so, das mit dem main hab ich dann mal anders geklärt.
achja wieso soll ich denn lieber case benutzen?
ist nicht so umständlich ja, aber könnt ich doch eh nur an paar stellen benutzen, und wenn ich eh schon auf if angewiesen bin, hab ichs halt ganz mit if gemacht.
Und zu do schleifen: wo genau sollte ich die verwenden, und warum sind sie besser als while schleifen?
std::string kenn ich ehrlich gesagt nicht wirklich, hab kurz in den link reingeschaut, werds mir moin nochmal genauer ansehn.mfg
-
mikey schrieb:
Wegen deinem Posting hätte ich nichtmal was gesagt, aber Tobi sein Kommentar hat dem dann noch die Krone aufgesetzt...
Jetzt bin ich hier der Buhmann
jaja... ich wiess wie des ist ich wurde so auch auf meine Fehler aufmerksam gemacht und habs ewig net begriffen. schau dir ruhig meine ersten Posts hier an xD
Es war sicher nicht böse gemeint.
Gruß Tobi.
-
T0bi schrieb:
Jetzt bin ich hier der Buhmann
Aber nur einbisschen.
T0bi schrieb:
jaja... ich wiess wie des ist ich wurde so auch auf meine Fehler aufmerksam gemacht und habs ewig net begriffen. schau dir ruhig meine ersten Posts hier an xD
Selbsterkenntnis führt ja bekanntlicherweise zur Besserung.
-
:p na und wenn schon ^^
-
Was mir grad so einfällt... Du könntest deinen Code um einiges kürzen, wenn du (mal abgesehen von den grundlegendsten Dingen) mit einem std::valarray und der std::gslice Klasse arbeitest. So kannst du Teilvektoren senkrecht, waagrecht und diagonal aus der Matrix (also dem Spielfeld) extrahieren, und ermitteln, ob die Teilmatrix (stellt einen Ausschnitt des Spielfeldes dar) aus z.B. '0' (steht für einen Kreis) oder '1' (steht für Kreuz) besteht. Wenn ja, dann hat natürlich der entsprechende Spieler gewonnen. Zumindest mal soviel zum Thema Gewinnerermittlung.
Beim Setzen eines neuen Kreises/Kreuzes füllst du das (zweidimensionale, x und y Achse) valarray dann eben mit Einsen und Nullen, um später den Gewinner ermitteln zu können.
-
müsste man dann nicht immer das ganze Spielfeld neu ausgeben?
naja eh egal ich hab eh keine Lust mehr daran weiter zu machen.
aber danke für die antworten.
-
Gnomecoder schrieb:
müsste man dann nicht immer das ganze Spielfeld neu ausgeben?
Wäre das schlimm (für dich)?
-
Ich würde gerne wissen wi man das so hinbekommt das das spielfeld da so Rot ist?
hab das nem nirgends gefunden^^
-
Creazy231 schrieb:
Ich würde gerne wissen wi man das so hinbekommt das das spielfeld da so Rot ist?
hab das nem nirgends gefunden^^Sieh dir die Funktion ab Zeile 715 an. Dort findest du z.B.:
HANDLE hL = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hL,FOREGROUND_RED); // [...] SetConsoleTextAttribute(hL,FOREGROUND_RED|FOREGROUND_BLUE|FOREGROUND_GREEN);