Tags über Netzwerk?



  • Das Button-Problem hat nicht wirklich mit dem Versenden von Daten über's Netzwerk zu tun.
    Bitte die Faustregel beachten: ein Thema pro Thread, ein Thread pro Thema.



  • habs geschafft 🙂

    ich probier hier mal noch bisschen was aus, dann komm ich aba bald wieder 😛



  • http://home.arcor.de/apf3lsaft/TicTacToe.exe (es fehlen allerdings die bmp's um das Spiel zu starten, ausser ihr erstellt euch kurzerhand selbst welche = ein "X" in X.bmp und ein "O" in O.bmp)

    hier könnt ihr euch ein Eindruck von meinem Programm erschaffen.
    erst Server aktivieren, danach den Client 😉

    Jetzt ist aber die Frage, wie ich ein Tag von Client zu Client schicken kann und sich auch dementsprechend die Buttons ändern?
    Es soll so ablaufen, dass jeder Client die Oberfläche wie oben in der .exe dargestellt ist, zur Verfügung hat. 🙂



  • keine ahnung was ich jetzt machen soll 😕



  • ich muss nur auf einen der dynamischen buttons klicken (als ein Spielzug) und dann soll bei einem anderen client dieser Spielzug angezeigt werden. Aber keine ahnung wie ich da anfangen soll, hmmm


  • Mod

    Hallo

    woran fehlt es dir

    - an der Verbindung
    - an der Idee wie du die Daten weitergibst(azswertest
    ...

    Mfg
    Klaus



  • @KlausB

    hab mein letzten Post editiert. Sollte jetzt bissi klarer sein 🙂

    Verbindung steht. Nur muss ich jetzt quasi 2 TicTacToe- Clients dazu bringen, gegeneinander zu spielen.

    Der erste Client muss quasi die eigenen Tags übersenden und der zweite Client muss diese Tags quasi ausführen. 😮 🙄 😃 🙂



  • Ich glaube, ich sehe Dein Problem nicht richtig?!

    Du willst auswerten was für ein Button gedrückt wurde und dann das ganze übertragen ?

    Der Ansatz mit den Tags ist schon der richtige Weg. Wenn der Button gedrückt wurde, generierst Du den Tag und versendest ihn. Der Empfänger nimmt den Tag wieder auseinander.

    Z.B. wird links oben ein Kreis gezeichnet
    möglicher Tag <1,1,Kreis>

    Empfänger:
    Auswertung der Koordinaten und dann z.B. ein Image mit einem Kreis an der entsprechenden Position anzeigen.



  • genau rostfrei
    das ist mein problem 🙂

    ich weiss jetzt nur nich, wie ich das übersenden kann 😕
    Ein Tag sind bei mir die Koordinaten x und y



  • Ganz schön viel Aufwand für maximal neun mögliche Buttons. Ich persönlich finde das ein wenig übertrieben. Ok, für das Ego ist das schon gut, aber warum denn so umständlich?

    In der primitivsten Version muss eigentlich nur eine Zahl übertragen werden, die die gewählte Position des Gegners angibt. Die Zahl würde ich über case auswerten und dann in einem zur Designzeit erstelltes Image ein Symbol anzeigen. Die Frage des Symbol ist auch einfach, da es nur zwei mögliche gibt.

    |1|2|3|
    |4|5|6|
    |7|8|9|

    Weiterhin kannst Du die Überprüfung auf ein schon benutztes Feld sparen. Prüfe einfach ob das Picture des Images nicht Null ist, also ob überhaupt etwas angezeigt wird.

    Gruss



  • hehe :p

    hab aber ein 8 x 8 großes Feld und man muss eine angabe der Sieglänge machen, also 3 bis 8 Steine hintereinander 🙂



  • Ok nehme alles zurück. Dann auf alle Fälle Arrays!

    Ich würde mir ein Array anlegen, in dem die Positionen der acht Felder gespeichert werden.

    Wenn Dein Prog etwas empfängt, gleicht es die übertragene Position ab und erstellt an dieser in dem Poitionsarray gespeicherten Koordinate ein dynamisches Image.

    Z.B.

    PositionArray[1][1] = "1|1";
    PositionArray[2][1] = "21|1";
    PositionArray[3][1] = "41|1";

    Oder nehm zwei Integerarrays, dann brauchst Du denn String nicht nochmal parsen.

    Ganz allgemein muss ich sagen, dass die Übertragung meiner Meinung nach nicht wirklich schwer ist, die Siegesauswertung würde mir Kopfzerbrechen bereiten.



  • Rostfrei[] schrieb:

    Ok nehme alles zurück. Dann auf alle Fälle Arrays!

    Ich würde mir ein Array anlegen, in dem die Positionen der acht Felder gespeichert werden.

    Dafür hab ich ja die Tags.
    Ich hab mir gedacht, ich speicher die Tags von Client1 in einer Variablen vom Client2.

    Wenn Dein Prog etwas empfängt, gleicht es die übertragene Position ab und erstellt an dieser in dem Poitionsarray gespeicherten Koordinate ein dynamisches Image.

    Z.B.

    PositionArray[1][1] = "1|1";
    PositionArray[2][1] = "21|1";
    PositionArray[3][1] = "41|1";

    Oder nehm zwei Integerarrays, dann brauchst Du denn String nicht nochmal parsen.

    Ganz allgemein muss ich sagen, dass die Übertragung meiner Meinung nach nicht wirklich schwer ist, die Siegesauswertung würde mir Kopfzerbrechen bereiten.



  • ich kann bei einem Spielzug die Tags zum Sender schicken. Ich muss die Tags nur zum zeiten Client schicken. Jemand ne idee?



  • Und jetzt ganz konkret: Was funktioniert ncht?



  • siehe post über dir 🙂



  • Zwei Clients?
    Ich dachte, dass das Spiel nur für zwei Spieler ist?

    Oder Du hast was falsch verstanden(oder ich...)

    Du musst einen Client und einen Server haben. Ein Server MUSS da sein. Clients können beliebig viele vorhanden sein.



  • Also ein Client soll einen Spieler darstellen. ergo habe ich 2 Clients 😉 🙂



  • Ich hoffe einfach mal, dass wir vom selben reden und Du einen Server und einen Client hast.

    Client:

    ClientSocket1->Socket->SendText(Tag);
    

    Server

    ServerSocket1->Socket[0]->SendText(Tag);
    // oder mit ActiveConnections
    
    int Verbindungen = ServerSocket1->Socket->ActiveConnections;
    for(int x = 0; x <= Verbindungen - 1; x++)
      ServerSocket1->Socket->Connections[x]->SendText(Tag);
    


  • einen Server habe ich. Und durch diesen Server will ich 2 CLients miteinander "verbinden", um gegeneinander zu spielen. 🙂

    ClientSocket1->Socket->SendText(Tag);
    

    Hier sendet also ein Client die Tags von den Buttons an den Server.
    funzt wunderbar.

    Wie kann aber ein weiterer Client diese Tags verwenden? Das ist nämlich mein aktuelles Problem.

    noch ein kleines Problemchen: wenn ich 2 Clients habe, wie kann der Server diese unterscheiden?


Anmelden zum Antworten