Schiffe versenken, Netzwerk, swing, Thread

Status
Nicht offen für weitere Antworten.

iyurael

Mitglied
Hi,

ich moechte nun ein Schiffe Versenken fuers Netzwerk programmieren. Das ganze soll natuerlich auch nach etwas aussehen, weshalb ich das ganze in Swing machen mag.
Die Verbindung moechte ich ueber Threads herstellen.
Mir sind da noch einige Unklarheiten, was die Idee, also die Abfolge angeht. Ich dachte ich schreibe euch hier mal meine Gedanken dazu, und vielleicht hat jemand Lust mir meine Fehler aufzuzeigen / ein paar Anregungen / Links zu geben.

1. Die Main Datei ist die, die die Swing elemente enthält und das Runnable Interface implementiert hat
2. ServerThread wird von der Main abgeleitet
3. ClientThread wird von der Main abgeleitet
4. Server soll starten.
5. Felder werden gemalt(oder weil ich noch nicht weiß wie man in Swing zeichnet, Buttons in Farben oder Label nehmen)
6. Eigenen Nick und ip des anderen eingeben
7. Client verbindet sich zum Server.
8. Eingeben durch anklicken wo Schiffe stehen sollen.
9. Spiel beginnt.
10. Durch Click auf einen Button/Label/xyCoords soll im Client Thread das Ereignis(wo wurde geklickt?) an den Server uebertragen werden.
11. Server soll Ergebnis verarbeiten.
12. Verarbeitung wird zurueck an Client geschickt und auf beiden Rechner wird das Feld dementsprechend geaendert.


So, wo sind nun meine Fragen?
Da der Ablauf des Clients in einem Thread ist, also in : run(){} kann ich da keine Abfragen machen, was das Maus Klicken auf dem Spielfeld angeht. Muss ich dort MouseListener einbauen? Wie kann ich das sonst realisieren?

Ist das ganze Konzept soweit in Ordnung oder sind grobe Denkfehler drin?

Bin dankbar fuer jeden Tipp :)


iyurael
 

manuche

Bekanntes Mitglied
Also um Mouselistener kommst du wohl nich rum... Schliesslich muss dein Spiel irgendwie mitbekommen wenn der Anwender eine Eingabe macht! Vielleicht sollest du den Server und Client Thread aus den Quellen für die GUI auslagern (a la Teile und hersche)!
Soll einer der beiden Spieler hosten oder hast du einen ServerThread an dem sich 2 Clients verbinden?
 

Capasso

Bekanntes Mitglied
Hi,

ich hab mal so was ähnliches programmiert.

Hab den Server mit Webservices realisiert. (zu finden hier)

12. Verarbeitung wird zurueck an Client geschickt und auf beiden Rechner wird das Feld dementsprechend geaendert.
Da muss man ne Grundsatzentscheidung treffen. Will mann pollen, aslo ständig beim Server anfragen oder will man beim client nen Socket oder so aufmachen und Daten vom Server empfangen zu können.

Ich hab das per pollen gelöst (siehe Bild)
observer.png



Kannst ja mal darüber nachdenken, wie du das lösen willst.

Gerne geb ich auch Teile des Quellcodes frei.

Einfach schreiben
 
I

iYurael.

Gast
Capasso, danke, super nett :)

Ich werde mal ein wenig drueber nachdenken, Vor und Nachteile nachlesen wenn ich was finde und schauen, wie man das realisiert.

Werde sicherlich auf dich zurueck kommen.

@Manuche: Bisher dachte ich, beides ist client und Server, also beide empfangen und schicken Dateien.


Danke,
iyurael
 

SebiB90

Top Contributor
iyurael hat gesagt.:
So, wo sind nun meine Fragen?
Da der Ablauf des Clients in einem Thread ist, also in : run(){} kann ich da keine Abfragen machen, was das Maus Klicken auf dem Spielfeld angeht. Muss ich dort MouseListener einbauen? Wie kann ich das sonst realisieren?
Also ich würde dir vorschlagen eine methode wie getClickedFeld() zu erstellen, die über das concurrent packages blockiert wird. Diese Methode rufst du dann im Thread auf. Über ein MouseListener kannst du dann setzen, welches Feld angeklickt wurde, und danach die Methode getClickedFeld() wieder freigeben. So kannst du auf Usereingaben im Thread warten.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
kevkev Hilfe bei Schiffe versenken Java Basics - Anfänger-Themen 5
S Schiffe versenken - Zufallszahlen in einem Array Java Basics - Anfänger-Themen 6
G Wie funktioniert das? > Schiffe versenken Java Basics - Anfänger-Themen 13
M Java Schiffe versenken - Positionierung Java Basics - Anfänger-Themen 3
D Erste Schritte Schiffe versenken Java Basics - Anfänger-Themen 11
M "illegal start of type" eindimensionales Schiffe versenken Java Basics - Anfänger-Themen 7
T OOP Mein erstes Java-Spiel - Schiffe versenken! Java Basics - Anfänger-Themen 2
J Ein Grafisches Gitternetz (für Schiffe versenken) darstellen - Wie? Java Basics - Anfänger-Themen 6
L Schiffe versenken Java Basics - Anfänger-Themen 7
N Java Einstieg Schiffe versenken Java Basics - Anfänger-Themen 4
P Spiel im Schiffe-Versenken Stil, Problem mit Erstellung des zweidimensionalen ARRAYs Java Basics - Anfänger-Themen 7
I Schiffe versenken Java Basics - Anfänger-Themen 3
T Schiffe versenken Java Basics - Anfänger-Themen 10
J Schiffe Versenken Java Basics - Anfänger-Themen 11
N Schiffe verstecken Java Basics - Anfänger-Themen 6
J Datei aus Netzwerk auslesen Java Basics - Anfänger-Themen 9
T Access mit Java verbinden im netzwerk Java Basics - Anfänger-Themen 3
S Input/Output Vom Netzwerk kopieren Java Basics - Anfänger-Themen 6
B Unique ID für Device im internen Netzwerk Java Basics - Anfänger-Themen 19
M Neuronales Netzwerk Java Basics - Anfänger-Themen 3
fLooojava Daten im selben Netzwerk an IP Java Basics - Anfänger-Themen 1
M Semantisches Problem HashMap/Netzwerk Java Basics - Anfänger-Themen 4
H Entwicklung am selben Projekt im Netzwerk Java Basics - Anfänger-Themen 9
T Erkennen ob ein Pfad lokal oder im Netzwerk ist Java Basics - Anfänger-Themen 13
B Erste Schritte Dateien ueber Netzwerk kopieren Java Basics - Anfänger-Themen 2
P Probleme bei senden eines Strings übers Netzwerk Java Basics - Anfänger-Themen 4
P Strings via Netzwerk übermitteln Java Basics - Anfänger-Themen 8
K Router über Netzwerk Booten lassen Java Basics - Anfänger-Themen 8
G Netzwerk unterbrechen Java Basics - Anfänger-Themen 10
S Netzwerk nach ip adressen scannen Java Basics - Anfänger-Themen 7
M In Router einloggen und PCs im Netzwerk erkennen Java Basics - Anfänger-Themen 18
U Netzwerk Chatprogramm Quellcode funktioniert nicht Java Basics - Anfänger-Themen 6
Nic.o getProperties - übers Netzwerk Java Basics - Anfänger-Themen 2
0 Objekte übers Netzwerk schicken? Bibliothek? Java Basics - Anfänger-Themen 2
D Java Tutorial zur Netzwerk / Datenbankprogrammierung gesucht Java Basics - Anfänger-Themen 2
F Bild per Netzwerk übertragen Java Basics - Anfänger-Themen 3
G Netzwerk: RMI Objekt-Referenzen Java Basics - Anfänger-Themen 2
A Netzwerk Programmieren Java Basics - Anfänger-Themen 2
H Netzwerk-Thread Java Basics - Anfänger-Themen 7
H ObjectOutputStream Netzwerk writeObject Java Basics - Anfänger-Themen 6
G Strings übers Netzwerk verschicken Java Basics - Anfänger-Themen 2
Z Netzwerk graphisch Darstellen Java Basics - Anfänger-Themen 5
L Dateien im Netzwerk bearbeiten (UNC-Pfade und gemappte Laufw Java Basics - Anfänger-Themen 5
J Audio capturen und über's Netzwerk streamen? Java Basics - Anfänger-Themen 2
C BufferedReader und BufferedWriter im Netzwerk Java Basics - Anfänger-Themen 6
M E-Mail im Netzwerk über Microsoft Exchange Server versenden? Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben