Tic Tac Toe

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Hallo,
    ich bin gerade dabei Tic Tac Toe zu Programmieren. Ich bin ein Visual Basic (Studio) Anfänger. Ich bin gerade dabei, die "Gewinnvarianten" zu programmieren

    VB.NET-Quellcode

    1. 'Gewinn-Varianten für X
    2. If Button1.Text = "X" And Button2.Text = "X" And Button3.Text = "X" Then
    3. MsgBox("Der Spieler " + CStr(My.Settings.spieler11) + " hat gewonnen")
    4.  
    5. End If


    Aber da müsste ich dann jede einzelne Variante schreiben, das dauert bei mir bei (36 Felder) sehr lange, weil ich einen "Mehrfeldermodus" gemacht habe. Da wollte ich frage ob es auch einfacher geht ?(
    Mal abgesehen davon, dass Buttons nicht für Spiele gemacht sind:

    Nein, viel einfacher wird das nicht. Irgendwoher muss die Software ja wissen, welche Kombinationen einen Gewinn erzeugen.
    Ich würde es so machen:

    C#-Quellcode

    1. ​private List<Button[]) _combs;
    2. //Befüllen
    3. _combs.Add(new [] {Button1, Button2, Button3});
    4. .....
    5. //Abfragen
    6. if (_combs.Any(btns => btns.All(btn => btn.Text == "X"))) {
    7. #SPIELER 1 gewinnt
    8. }
    »There's no need to "teach" atheism. It's the natural result of education without indoctrination.« — Ricky Gervais
    @Plexian an so was in der Art hatte ich auch gedacht, allerdings glaube ich das jede "Vereinfachung" den Programmierhorizont der TE überschreitet.

    Er nutzt MsgBox / + anstelle von & beim Verketten von Strings / CString anstelle von .ToString.

    Das zeigt ziemlich deutlich ein frühes Anfänger Niveau. Hier empfehle ich es erst einmal die Bücher zu wälzen.
    Es wäre vielleicht besser sich mal ein funktionierendes Tool anzusehen und das verstehen.
    Tic Tac Toe_1.0.3 <--- Leider nicht das beste Beispiel da es in VB6 geschrieben ist. Habe aber gerade auf die schnelle kein .net gefunden.
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."

    Schamash schrieb:

    Leider nicht das beste Beispiel da es in VB6 geschrieben ist
    Ich empfehle dem TE das nicht anzusehen. Nicht, dass nachher irgendwo Stücke davon im Kopf bleiben ;)
    Mit freundlichen Grüßen,
    Thunderbolt
    wenn man sich die Zellen als hintereinanderliegend vorstellt, dann kann man die Tripel wie folgt definieren:

    Quellcode

    1. 012
    2. 345
    3. 678
    4. 036
    5. 147
    6. 258
    7. 048
    8. 246
    oder kurz:012 345 678 036 147 258 048 246
    Oder als Einzeiler-Code:

    VB.NET-Quellcode

    1. Private triples As Integer()()= "012 345 678 036 147 258 048 246".Split().Select(Function(s) s.Select(AddressOf Integer.Parse).ToArray).ToArray

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()

    ich verstehe das "?????" als "Ich verstehe garnix."
    Ist ein typischer Anfänger-Fehler, so zu fragen.

    Auf "Ich verstehe garnix" hin kann man nämlich überhaupt nichts zielführendes antworten, weil ist ja gar kein Ziel angegeben, nichtmal eine Richtung.
    Ich könnte jetzt alles mögliche raten, was du wohl nicht verstehst, ob du "Tripel" nicht verstehst, oder den gegebenen Code, die Aufstellung der Tripel, oder was das mit dem Problem zu tun hat, oder mehrere dieser Punkte...
    Ja, ich weiß nichtmal, ob du mich überhaupt meinst 8|

    Diese Raterei bringt aber nichts, und grad wenn ich gut raten würde, würde ich dich sogar behindern beim Erlernen von Programmieren.

    Es ist nämlich unerhört wichtig, Fragen präzise formulieren zu können - das ist im Grunde schon die halbe Programmierung - sogar mehr!

    Magst du also nochmal versuchen zu fragen?
    Und frag nur nach einem Punkt, nicht mehreres auf einmal.

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „ErfinderDesRades“ ()