From 079f4c2e0cb632311162cefdb8efc554044b5dfa Mon Sep 17 00:00:00 2001 From: kmitresse Date: Mon, 25 Mar 2024 09:43:06 +0100 Subject: [PATCH] feat: dev-web - manage deck --- .../Projet/src/main/java/uppa/project/pojo/Deck.java | 4 ++++ .../Projet/src/main/java/uppa/project/pojo/Game.java | 8 ++++++++ .../Projet/src/main/java/uppa/project/pojo/Player.java | 10 ++++++++++ 3 files changed, 22 insertions(+) diff --git a/S2/DevWeb/Projet/src/main/java/uppa/project/pojo/Deck.java b/S2/DevWeb/Projet/src/main/java/uppa/project/pojo/Deck.java index 1bcef5f..d2e881a 100644 --- a/S2/DevWeb/Projet/src/main/java/uppa/project/pojo/Deck.java +++ b/S2/DevWeb/Projet/src/main/java/uppa/project/pojo/Deck.java @@ -38,6 +38,9 @@ public class Deck { cards = initializeDeck(nbColors, nbValues); } + public Set getCards() { + return cards; + } /** * Créé un paquet de cartes mélangé avec un nombre de couleurs et de valeurs donné * @@ -89,4 +92,5 @@ public class Deck { Collections.shuffle(cardList); return new HashSet<>(cardList); } + } diff --git a/S2/DevWeb/Projet/src/main/java/uppa/project/pojo/Game.java b/S2/DevWeb/Projet/src/main/java/uppa/project/pojo/Game.java index 413eb40..4f14afb 100644 --- a/S2/DevWeb/Projet/src/main/java/uppa/project/pojo/Game.java +++ b/S2/DevWeb/Projet/src/main/java/uppa/project/pojo/Game.java @@ -19,6 +19,7 @@ import jakarta.persistence.OneToMany; import jakarta.persistence.Table; import jakarta.persistence.Temporal; import jakarta.persistence.TemporalType; +import jakarta.persistence.Transient; import java.io.Serializable; import java.math.BigDecimal; import java.util.Date; @@ -61,6 +62,8 @@ public class Game implements Serializable { @OneToMany(mappedBy = "game", cascade = CascadeType.ALL, fetch = FetchType.LAZY) private Set players; + @Transient + private Deck deck; /** * Constructeur par défaut */ @@ -81,6 +84,7 @@ public class Game implements Serializable { this.nbRounds = nbRounds; this.nbColors = nbColors; this.nbValuesPerColor = nbValuesPerColor; + this.deck = new Deck(nbColors, nbValuesPerColor); } /** @@ -212,6 +216,10 @@ public class Game implements Serializable { this.players.add(player); } + public Set getDeck() { + return deck.getCards(); + } + /** * Tri des joueurs de la partie par score */ diff --git a/S2/DevWeb/Projet/src/main/java/uppa/project/pojo/Player.java b/S2/DevWeb/Projet/src/main/java/uppa/project/pojo/Player.java index 1a7a4b5..41c71ae 100644 --- a/S2/DevWeb/Projet/src/main/java/uppa/project/pojo/Player.java +++ b/S2/DevWeb/Projet/src/main/java/uppa/project/pojo/Player.java @@ -14,9 +14,11 @@ import jakarta.persistence.Id; import jakarta.persistence.JoinColumn; import jakarta.persistence.ManyToOne; import jakarta.persistence.Table; +import jakarta.persistence.Transient; import java.io.Serializable; import java.math.BigDecimal; import java.util.Objects; +import java.util.Set; /** * Représentation d'un joueur @@ -56,6 +58,9 @@ public class Player implements Serializable { @Column(name = "rapid_click_count") private int rapidClickCount; + @Transient + private Deck deck; + /** * Constructeur par défaut */ @@ -74,6 +79,7 @@ public class Player implements Serializable { this.clickCount = 0; this.rightClickCount = 0; this.rapidClickCount = 0; + this.deck = new Deck(game.getNbColors(), game.getNbValuesPerColor()); } /** @@ -252,6 +258,10 @@ public class Player implements Serializable { public double getRatioRapidClick() { return (double) rapidClickCount * 100 / clickCount; } + + public Set getDeck() { + return deck.getCards(); + } @Override public String toString() { return String.format("Player{id=%s, game=%s, user=%s, score=%d, winner=%b, clickCount=%d, rightClickCount=%d, rapidClickCount=%d}", id.toString(), game.toString(), user.toString(), score, winner, clickCount, rightClickCount, rapidClickCount);