diff --git a/src/Game.java b/src/Game.java index f837f9c..54f97ae 100644 --- a/src/Game.java +++ b/src/Game.java @@ -1,20 +1,65 @@ public class Game { - // Instanzvariablen - ersetzen Sie das folgende Beispiel mit Ihren Variablen - WordleServer wordleServer; - User user; - DatabaseConnector databaseConnector;// Datenbankverbindung aufstellen - private String wordle; - private String[] words; - private int count; - - public Game(WordleServer wordleServer) { - - this.wordleServer = wordleServer; - - user = new User(); - } - - public void processMessage(String msg) { - System.out.println(msg); - } + // Instanzvariablen - ersetzen Sie das folgende Beispiel mit Ihren Variablen + WordleServer wordleServer; + User user; + static DatabaseConnector databaseConnector;// Datenbankverbindung aufstellen + + private String ip; + private int port; + + private String wordle; + private String[] words; + private int count; + private int phase; + + public Game(WordleServer wordleServer, String pClientIP, int pClientPort) { + + this.wordleServer = wordleServer; + this.ip = pClientIP; + this.port = pClientPort; + + user = new User(); + + send("+OK Hello there"); + } + + public void processMessage(String msg) { + + if (msg.equals("quit")) { + send("+OK bye"); + wordleServer.closeConnection(ip, port); + } + + switch (phase) { + case 0: + + break; + case 1: + + break; + case 2: + + break; + } + } + + private void send(String msg) { + wordleServer.send(ip, port, msg); + } + + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public int getPort() { + return port; + } + + public void setPort(int port) { + this.port = port; + } } diff --git a/src/WordleServer.java b/src/WordleServer.java index bac9254..3d125bc 100644 --- a/src/WordleServer.java +++ b/src/WordleServer.java @@ -29,18 +29,28 @@ public class WordleServer extends Server { @Override public void processNewConnection( String pClientIP, int pClientPort ) { - games.append(new Game(this)); + games.append(new Game(this, pClientIP, pClientPort)); } @Override public void processClosingConnection( String pClientIP, int pClientPort ) { - System.out.println("Closed connection: " + pClientPort); + find(pClientIP, pClientPort); + games.remove(); } @Override public void processMessage( String pClientIP, int pClientPort, String pMessage ) { - games.toFirst(); - games.getContent().processMessage(pMessage); + find(pClientIP, pClientPort).processMessage(pMessage); } + private Game find(String ip, int port) { + games.toFirst(); + while (games.hasAccess()) { + Game g = games.getContent(); + if (g.getIp().equals(ip) && g.getPort() == port) { + return g; + } + } + return null; + } } diff --git a/umlet.uxf b/umlet.uxf index 1556d93..ccd5457 100644 --- a/umlet.uxf +++ b/umlet.uxf @@ -1,13 +1,13 @@ - 12 + 8 UMLClass - 636 - 144 - 120 - 36 + 936 + 208 + 80 + 24 Server @@ -15,10 +15,10 @@ UMLClass - 636 - 300 - 120 - 36 + 936 + 312 + 80 + 24 WordleServer @@ -26,10 +26,10 @@ Relation - 684 - 168 - 36 - 156 + 968 + 224 + 24 + 104 lt=<<- 10.0;10.0;10.0;110.0 @@ -37,10 +37,10 @@ UMLClass - 0 - 420 - 348 - 468 + 512 + 392 + 232 + 312 User -- @@ -72,10 +72,10 @@ UMLClass - 180 - 276 - 168 - 36 + 632 + 296 + 112 + 24 DatabaseConnector @@ -83,10 +83,10 @@ Relation - 684 - 324 - 144 - 120 + 968 + 328 + 96 + 80 lt=<. -wordleServer @@ -95,13 +95,16 @@ UMLClass - 516 - 420 - 360 - 132 + 856 + 392 + 240 + 88 Game -- +-ip: String +-port: int + -wordle: String -words: String[] -wordCount: int @@ -113,24 +116,10 @@ UMLClass - 1020 - 420 - 288 - 84 - - GUI --- -+setLetter(char letter): void -+setLetterColor(byte color): void - - - - UMLClass - - 108 - 156 - 120 - 36 + 584 + 216 + 80 + 24 QueryResult @@ -138,10 +127,10 @@ Relation - 336 - 408 - 204 - 48 + 736 + 384 + 136 + 32 lt=<. -user @@ -150,59 +139,13 @@ Relation - 864 - 408 - 180 - 48 - - lt=<. --gui - 130.0;20.0;10.0;20.0 - - - Relation - - 336 - 276 - 264 - 168 + 736 + 296 + 176 + 112 lt=<. -databaseConnector 10.0;20.0;200.0;20.0;200.0;120.0 - - UMLClass - - 1020 - 0 - 288 - 300 - - Letter --- -WHITE: byte = -1 -GRAY: byte = 0 -YELLOW: byte = 1 -GREEN: byte = 2 - --letter: char --color: byte --- -+setColor(byte color): void -+getColor(): byte - - - - Relation - - 1152 - 288 - 156 - 156 - - lt=<. --letters: Letter[][] - 10.0;10.0;10.0;110.0 -