Zum Inhalt springen

UnitySquuad

Mitglieder
  • Gesamte Inhalte

    3
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von UnitySquuad

  1. Naja, der Cleint hat bis auf die SumAnwendung nur die Klasse "Clientverbindung", welche ich auch hier gepostet habe. Die Klasse war in fragmenten bereits vorgegeben und musste ergänzt werden. Als TCPClient hat alles funktioniert. Ich denke, man kann den TCPClienten als SPielclient umgestalten. Würde sich evtl. auch bei meinem Wissen anbieten, da ich so nicht ganz von null anfangen muss. Ich denke, es müsste jetzt erstmal serverseitig weitergehen. Es Muss ja auch geklärt werden, in welcher Sprache Client und Server kommunizieren. Ich hab nur leider nichtmals einen Ansatz, wie ich den Server implementieren muss. Zum TCPClient gehört natürlcih auch ein TCPServer, der mir auch vorliegt. Denke nur, dass der Spielserver wesentlich aufwenidiger ist, da er Spieler bzw. ihre Koordinaten verwalten muss. Spieler zuweisen, Koordinaten vergeleichen (Spieler & Fuchs), er muss das Spiel starten, wenn 5 Clients angemeldet sind und er muss über die Abbruchbedingungen verfügen. Wie das im Quelltext aussähe? Genau das ist mein Problem....
  2. Hey, danke für die Antworten schonmal. Es ist ja nicht so, dass ich mir keine Gedanken, um dieses Thema mache. Ich habe ja bereits etwas am TCPClienten umgeschrieben, so dass man damit vllt. arbeiten kann. Ich habe, wie gesagt, relativ wenig Ahnung vom Ganzen. Was prinzipiell gemacht werden muss, ist mir schon klar. Aber an der Umsetzung hapert's ganz gewaltig. Anbei mal Auszüge aus meiner bisherigen Programmierarbeit SumAnwendung.java: /** * Die Klasse SuMAnwendung wurde automatisch erstellt: * * @author * @version 08.01.2010 */ import sum.komponenten.*; import sum.werkzeuge.*; import sum.ereignis.*; import sum.kern.*; public class SuMAnwendung extends EBAnwendung { // Objekte private Etikett hatEtikettTcpclient; private Etikett hatEtikettServer; private Etikett hatEtikettPort; private Etikett hatEtikettStatus; private Etikett hatEtikettNachricht; private Etikett hatEtikettEmpfangen; private Knopf hatKnopfVerbinden; private Knopf hatKnopfTrennen; private Knopf hatKnopfSenden; private Knopf hatKnopfBeenden; private Textfeld hatTextfeld1; private Textfeld hatTextfeld2; private Textfeld hatTextfeld3; private Zeichenbereich hatZeichenbereich1; TCPClientverbindung hatVerbindung; String lNachricht; Tastatur hatTastatur; Stift hatStift; Textwerkzeug hatTW; // Attribute /** * Konstruktor */ public SuMAnwendung() { //Initialisierung der Oberklasse super(811, 679); hatEtikettTcpclient = new Etikett(351, 86, 100, 25, "TCP-Client"); // Ausrichtung hatEtikettTcpclient.setzeAusrichtung(Ausrichtung.LINKS); hatEtikettServer = new Etikett(155, 166, 70, 25, "Server"); // Ausrichtung hatEtikettServer.setzeAusrichtung(Ausrichtung.LINKS); hatEtikettPort = new Etikett(555, 164, 46, 25, "Port"); // Ausrichtung hatEtikettPort.setzeAusrichtung(Ausrichtung.LINKS); hatEtikettStatus = new Etikett(153, 304, 388, 25, "Status"); // Ausrichtung hatEtikettStatus.setzeAusrichtung(Ausrichtung.LINKS); hatEtikettNachricht = new Etikett(149, 380, 100, 25, "Nachricht"); // Ausrichtung hatEtikettNachricht.setzeAusrichtung(Ausrichtung.LINKS); hatEtikettEmpfangen = new Etikett(145, 440, 100, 25, "Empfangen"); // Ausrichtung hatEtikettEmpfangen.setzeAusrichtung(Ausrichtung.LINKS); hatKnopfVerbinden = new Knopf(241, 232, 108, 25, "Verbinden"); hatKnopfVerbinden.setzeBearbeiterGeklickt("hatKnopfVerbindenGeklickt"); hatKnopfTrennen = new Knopf(443, 232, 100, 25, "Trennen"); hatKnopfTrennen.setzeBearbeiterGeklickt("hatKnopfTrennenGeklickt"); hatKnopfSenden = new Knopf(533, 382, 100, 25, "Senden"); hatKnopfSenden.setzeBearbeiterGeklickt("hatKnopfSendenGeklickt"); hatKnopfBeenden = new Knopf(147, 568, 100, 25, "Beenden"); hatKnopfBeenden.setzeBearbeiterGeklickt("hatKnopfBeendenGeklickt"); hatTextfeld1 = new Textfeld(253, 164, 248, 25, ""); // Ausrichtung hatTextfeld1.setzeAusrichtung(Ausrichtung.LINKS); hatTextfeld2 = new Textfeld(623, 164, 152, 25, ""); // Ausrichtung hatTextfeld2.setzeAusrichtung(Ausrichtung.LINKS); hatTextfeld3 = new Textfeld(283, 380, 168, 25, ""); // Ausrichtung hatTextfeld3.setzeAusrichtung(Ausrichtung.LINKS); hatZeichenbereich1 = new Zeichenbereich(287, 438, 372, 154, ""); lNachricht = new String(); } /** * Vorher: Ereignis GeklicktvonhatKnopfVerbinden fand statt. * Nachher: (schreiben Sie, was in dieser Methode ausgefuehrt wird) */ public void hatKnopfVerbindenGeklickt() { String lServeradresse; String lAntwort; int lPort; lServeradresse = hatTextfeld1.inhaltAlsText(); lPort = hatTextfeld2.inhaltAlsGanzeZahl(); hatVerbindung = new TCPClientverbindung(lServeradresse, lPort, true, hatZeichenbereich1); hatKnopfVerbinden.verstecke(); hatKnopfTrennen.zeige(); hatEtikettStatus.setzeInhalt("Verbunden :D"); } /** * Vorher: Ereignis GeklicktvonhatKnopfTrennen fand statt. * Nachher: (schreiben Sie, was in dieser Methode ausgefuehrt wird) */ public void hatKnopfTrennenGeklickt() { hatVerbindung.gibFrei(); hatKnopfTrennen.verstecke(); hatKnopfVerbinden.zeige(); hatKnopfSenden.verstecke(); hatEtikettStatus.setzeInhalt("nicht mehr verbunden :("); hatVerbindung = null; } /** * Vorher: Ereignis GeklicktvonhatKnopfSenden fand statt. * Nachher: (schreiben Sie, was in dieser Methode ausgefuehrt wird) */ public void hatKnopfSendenGeklickt() { lNachricht = hatTextfeld3.inhaltAlsText(); hatVerbindung.sende(lNachricht); } /** * Vorher: Ereignis GeklicktvonhatKnopfBeenden fand statt. * Nachher: (schreiben Sie, was in dieser Methode ausgefuehrt wird) */ public void hatTastaturgedrueckt() { String zV; String zH; zH = hatStift.hPosition(); zV = hatStift.vPosition(); if(hatTastatur.wurdeGedrueckt()) { switch (hatTastatur.zeichen()) { case 'w' : case 'W' : hatVerbindung.sende("@oben"+hatTW.alsText(zH)+hatTW.alsText(zV));break; case 's' : case 'S' : hatVerbindung.sende("@unten"+hatTW.alsText(zH)+hatTW.alsText(zV));break; case 'a' : case 'A' : hatVerbindung.sende("@links"+hatTW.alsText(zH)+hatTW.alsText(zV));break; case 'd' : case 'D' : hatVerbindung.sende("@rechts"+hatTW.alsText(zH)+hatTW.alsText(zV));break; } } } public void hatKnopfBeendenGeklickt() { this.gibFrei(); } } Clientverbindung.java: import sum.netz.*; import sum.komponenten.*; import sum.strukturen.*; import sum.kern.*; import sum.werkzeuge.*; /** * @author * @version */ public class TCPClientverbindung extends Clientverbindung { // Bezugsobjekte Zeichenbereich kenntZeichenbereich1; Textwerkzeug hatTW; Stift hatStift; // Attribute // Konstruktor public TCPClientverbindung(String pServer, int pPort, boolean pMitProtokoll, Zeichenbereich pEmpfangen) { super(pServer, pPort, pMitProtokoll); kenntZeichenbereich1 = pEmpfangen; } // Dienste public void bearbeiteNachricht(String pNachricht) { kenntZeichenbereich1.haengeAn(pNachricht); kenntZeichenbereich1.neuerAbsatz(); if(hatTW.istGleich(hatTW.wortAn(pNachricht,1),"@links")) { hatStift.radiere(); hatStift.hoch(); hatStift.dreheBis(0); hatStift.bewegeUm(1); hatStift.zeichneKreis(3); } if(hatTW.istGleich(hatTW.wortAn(pNachricht,1),"@rechts")) { hatStift.radiere(); hatStift.hoch(); hatStift.dreheBis(180); hatStift.bewegeUm(1); hatStift.zeichneKreis(3); } }}
  3. Hallo, wir müssen in der Schule mit BlueJ ein Spiel namens Fuchsjagd programmieren. Auf Grund eines Auslandsjahres fehlen mir jedoch jegliche Grundkenntnisse im Bereich Java Programmierung mit BlueJ. Die Arbeit ist bis Ende nächster Woche fällig und wird bei Nichtabgabe "ungenügend" gewertet. Ich habe leider überhaupt keinen Durchblick, wie ich Server und Client gestallten muss. Ich habe bisher versucht einen vorhandenen TCP-Clienten auf meine Bedürfnisse abzuändern, aber serverseitig fehlt mir absolut ein Ansatz. Vielleicht wäre jemand so nett und könntem ir bei dieser Aufgabe etwas unter die Arme greifen und mir wichtige Ansätze liefern. Im Idealfall sogar eine Beispiellösung mit Grundfunktionen. Die Aufgabenstellung: Zum Schluss sollen Sie noch ein Netzwerkspiel mit dem Namen Fuchsjagd implementieren. Bei diesem Spiel müssen sich fünf Clients beim Server anmelden. Sobald der fünfte Client sich angemeldet hat, erscheinen (auf allen Clientbildschirmen gleich) fünf Punkte an zufälliger Position. Vier Punkte sind schwarz, das sind die Jäger, ein Punkt ist rot, das ist der Fuchs. Jeder dieser Punkte gehört zu einem Client, allerdings weiß kein Client am Anfang, welcher Punkt zu ihm gehört. Dies muss man erst herausfinden, indem man seinen Punkt bewegt. Dazu werden die vier Pfeiltasten benutzt. Die vier Jäger müssen nun versuchen den Fuchs zu fangen. Keiner der Punkte darf den Bildschirmrand überschreiten, entsprechende Tastendrücke sollen ignoriert werden. Sobald sich ein Jäger dem Fuchs nah genug genähert hat, also wenn die Punkte sich überschneiden, hat dieser Jäger gewonnen und das Spiel beginnt von neuem. Man kann auch eine Zeitbeschränkung einbauen, z.B. wenn der Fuchs nach zwei Minuten noch nicht gefangen wurde, hat dieser gewonnen. Ich weiß, es ist überhaupt nicht fortschrittlich, wenn ich hier um ein fertiges Programm bitte. Jedoch sehe ich momentan keine andere Möglichkeit, dass Programm sonst auf die Beine zu stellen. Vielleicht kann mir jemand ja einige Anregungen geben. Vielen Dank

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...