From 32f803d610d454d0b0b379999f500cad9b02b17c Mon Sep 17 00:00:00 2001 From: Florian MONSION <florian.monsion@etu.univ-nantes.fr> Date: Thu, 23 Dec 2021 16:19:34 +0100 Subject: [PATCH] Last global commit with comments and changes. Could not add the cards in the bank. --- .../java/fr/univnantes/alma/application.java | 6 +-- 7-wonders-client/pom.xml | 6 +++ .../fr/univnantes/alma/PlayerController.java | 10 ++++- 7-wonders-server/pom.xml | 8 +++- .../alma/implement/GameServerImp.java | 40 +++++++++---------- .../src/main/java/fr/univnantes/alma/app.java | 20 +++++----- pom.xml | 2 +- 7 files changed, 53 insertions(+), 39 deletions(-) diff --git a/7-wonder-clientWebSocket/src/main/java/fr/univnantes/alma/application.java b/7-wonder-clientWebSocket/src/main/java/fr/univnantes/alma/application.java index 4e6e68f..42fdf8f 100644 --- a/7-wonder-clientWebSocket/src/main/java/fr/univnantes/alma/application.java +++ b/7-wonder-clientWebSocket/src/main/java/fr/univnantes/alma/application.java @@ -8,10 +8,10 @@ import java.net.URI; public class application { public static void main(String[] args) { try { - WebSocketContainer container = ContainerProvider.getWebSocketContainer(); // 获取WebSocket连接器,其中具体实现可以参照websocket-api.jar的源码,Class.forName("org.apache.tomcat.websocket.WsWebSocketContainer"); + WebSocketContainer container = ContainerProvider.getWebSocketContainer(); // Obtenez le connecteur WebSocket, l'implémentation spécifique peut faire référence au code source de websocket-api.jar, Class.forName("org.apache.tomcat.websocket.WsWebSocketContainer"); String uri = "ws://localhost:8081/log/log"; - Session session = container.connectToServer(ClientController.class, new URI(uri)); // 连接会话 - session.getBasicRemote().sendText("123132132131"); // 发送文本消息 + Session session = container.connectToServer(ClientController.class, new URI(uri)); //Session de connexion + session.getBasicRemote().sendText("123132132131"); // Envoyer un texte session.getBasicRemote().sendText("4564546"); } catch (Exception e) { e.printStackTrace(); diff --git a/7-wonders-client/pom.xml b/7-wonders-client/pom.xml index 0f875ea..efd0d55 100644 --- a/7-wonders-client/pom.xml +++ b/7-wonders-client/pom.xml @@ -29,6 +29,12 @@ <version>1.0-SNAPSHOT</version> <scope>compile</scope> </dependency> + <dependency> + <groupId>fr.univnantes.alma</groupId> + <artifactId>7-wonder-middlewareClient</artifactId> + <version>1.0-SNAPSHOT</version> + <scope>compile</scope> + </dependency> </dependencies> </project> \ No newline at end of file diff --git a/7-wonders-client/src/main/java/fr/univnantes/alma/PlayerController.java b/7-wonders-client/src/main/java/fr/univnantes/alma/PlayerController.java index ee68a4b..bedbd8f 100644 --- a/7-wonders-client/src/main/java/fr/univnantes/alma/PlayerController.java +++ b/7-wonders-client/src/main/java/fr/univnantes/alma/PlayerController.java @@ -2,6 +2,7 @@ package fr.univnantes.alma; import java.util.LinkedList; import java.util.List; +import java.util.concurrent.TimeUnit; public class PlayerController implements Player { @@ -40,8 +41,13 @@ public class PlayerController implements Player { } @Override - public boolean waitServer(int sec) { - return false; + public boolean waitServer(int sec){ + try { + TimeUnit.SECONDS.sleep(sec); + return true; //WIP : attente du serveur par défaut. + }catch(InterruptedException interruption){ + return false; + } } @Override diff --git a/7-wonders-server/pom.xml b/7-wonders-server/pom.xml index ad0a93a..c56ebbf 100644 --- a/7-wonders-server/pom.xml +++ b/7-wonders-server/pom.xml @@ -52,7 +52,13 @@ <version>1.0-SNAPSHOT</version> <scope>compile</scope> </dependency> - </dependencies> + <dependency> + <groupId>fr.univnantes.alma</groupId> + <artifactId>7-wonder-middlewareServeur</artifactId> + <version>1.0-SNAPSHOT</version> + <scope>compile</scope> + </dependency> + </dependencies> <build> <plugins> diff --git a/7-wonders-server/src/main/java/fr/univnantes/alma/implement/GameServerImp.java b/7-wonders-server/src/main/java/fr/univnantes/alma/implement/GameServerImp.java index e9fca5d..ac945e8 100644 --- a/7-wonders-server/src/main/java/fr/univnantes/alma/implement/GameServerImp.java +++ b/7-wonders-server/src/main/java/fr/univnantes/alma/implement/GameServerImp.java @@ -1,16 +1,17 @@ package fr.univnantes.alma.implement; -import fr.univnantes.alma.Card; -import fr.univnantes.alma.GameServer; -import fr.univnantes.alma.MiddlewareServer; -import fr.univnantes.alma.Player; +import fr.univnantes.alma.*; import fr.univnantes.alma.cards.CardAge; import fr.univnantes.alma.cards.CardWonder; +import fr.univnantes.alma.cards.Resources; +import fr.univnantes.alma.messages.Connexion; import java.util.ArrayList; +import java.util.HashMap; import java.util.Iterator; +import java.util.List; -import static fr.univnantes.alma.cards.Structures.GUILD; +import static fr.univnantes.alma.cards.Structures.*; public class GameServerImp implements GameServer { ArrayList<Player> player; @@ -19,10 +20,10 @@ public class GameServerImp implements GameServer { ArrayList<Card> cardBank; public GameServerImp() { - this.player= new ArrayList<Player>(); + this.player= new ArrayList<>(); this.isGamePlayed=false; - this.middlewareServer=null; // TODO : middlewareServer must be Imp. - this.cardBank = new ArrayList<Card>(); //TODO : il faut remplir les cards banques + this.middlewareServer=new MiddlewareServerController(new Connexion("creation middleware server. Hello new Middleware Server"), this); + this.cardBank = new ArrayList<>(); //TODO : il faut remplir les cards banques } @Override @@ -66,10 +67,10 @@ public class GameServerImp implements GameServer { @Override public boolean cardSort() { int nbPlayer = this.player.size(); - ArrayList<Card> cardBankSorted = new ArrayList<Card>(); - ArrayList<Card> cardGuilds = new ArrayList<Card>(); + ArrayList<Card> cardBankSorted = new ArrayList<>(); + ArrayList<Card> cardGuilds = new ArrayList<>(); - //sort card base on number of player and sort card guildes + //sort card base on number of player and sort card guilds for (Card x : this.cardBank) { if (x instanceof CardAge) { if ( ((CardAge)x).getMinPlayer()>=nbPlayer ){ @@ -79,10 +80,9 @@ public class GameServerImp implements GameServer { if ( (((CardAge) x).getStructure()==GUILD) && (cardGuilds.size()<nbPlayer+2) ) { cardGuilds.add(x); } - - if (x instanceof CardWonder) { - cardBankSorted.add(x); - } + } + if (x instanceof CardWonder) { + cardBankSorted.add(x); } } cardBankSorted.addAll(cardGuilds); @@ -92,16 +92,14 @@ public class GameServerImp implements GameServer { @Override public boolean cardDistribution(int age) { - ArrayList<Card> cardsAgePack = new ArrayList<Card>(); //cards age that we need to use, extract from cardBanc + ArrayList<Card> cardsAgePack = new ArrayList<>(); //cards age that we need to use, extract from cardBank int i; - Card cardAge; - if (age<0) { return false; } else{ if (age==1) { //extraction cards wonder and cards age I - ArrayList<Card> cardsWonders = new ArrayList<Card>(); + ArrayList<Card> cardsWonders = new ArrayList<>(); for (Card x : this.cardBank) { if (x instanceof CardWonder) { cardsWonders.add(x); @@ -117,7 +115,7 @@ public class GameServerImp implements GameServer { Iterator<Card> iteratorWonder = cardsWonders.iterator(); Iterator<Card> iteratorAge = cardsAgePack.iterator(); Card cardWonder = iteratorWonder.next(); - cardAge = iteratorAge.next(); + Card cardAge = iteratorAge.next(); for (Player p : this.player) { p.addCard(cardWonder); for (i = 1; i <= 7; i++) { @@ -142,7 +140,7 @@ public class GameServerImp implements GameServer { this.cardBank.removeAll(cardsAgePack); Iterator<Card> iteratorCardAge=cardsAgePack.iterator(); - cardAge = iteratorCardAge.next(); + Card cardAge = iteratorCardAge.next(); //distribution to players for (Player p : this.player){ diff --git a/7-wonders-serverWebSocket/src/main/java/fr/univnantes/alma/app.java b/7-wonders-serverWebSocket/src/main/java/fr/univnantes/alma/app.java index 73be4e0..4f51c86 100644 --- a/7-wonders-serverWebSocket/src/main/java/fr/univnantes/alma/app.java +++ b/7-wonders-serverWebSocket/src/main/java/fr/univnantes/alma/app.java @@ -14,18 +14,16 @@ public class app { WebSocketContainer container = ContainerProvider.getWebSocketContainer(); String uri = "ws://localhost:8081/log/hello/hello/websocket"; Session session = container.connectToServer(Client.class, new URI(uri)); - char lf = 10; // 这个是换行 - char nl = 0; // 这个是消息结尾的标记,一定要 + char lf = 10; // saut de ligne + char nl = 0; // la marque de la fin du message StringBuilder sb = new StringBuilder(); - sb.append("SEND").append(lf); // 请求的命令策略 - sb.append("destination:/app/hello").append(lf); // 请求的资源 - sb.append("content-length:14").append(lf).append(lf); // 消息体的长度 - sb.append("{\"name\":\"123\"}").append(nl); // 消息体 - - session.getBasicRemote().sendText(sb.toString()); // 发送消息 - Thread.sleep(50000); // 等待一小会 - session.close(); // 关闭连接 - + sb.append("SEND").append(lf); // Stratégie de commandement demandée + sb.append("destination:/app/hello").append(lf); // Ressource demandée + sb.append("content-length:14").append(lf).append(lf); //La longueur du corps du message + sb.append("{\"name\":\"123\"}").append(nl); // Corps du message + session.getBasicRemote().sendText(sb.toString()); // Envoies un message + Thread.sleep(50000); // Attends un moment + session.close(); // Ferme la connexion } catch (Exception e) { e.printStackTrace(); } diff --git a/pom.xml b/pom.xml index d900359..266ed50 100644 --- a/pom.xml +++ b/pom.xml @@ -30,7 +30,7 @@ <module>7-wonders-web</module> <module>7-wonders-core</module> <module>7-wonders-client</module> - <module>7-wonders-clientWebSocket</module> + <module>7-wonder-clientWebSocket</module> <module>7-wonders-serverWebSocket</module> <module>7-wonder-middlewareServeur</module> <module>7-wonder-middlewareClient</module> -- GitLab