diff --git a/src/main/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/play/domain/Move.java b/src/main/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/play/domain/Move.java index 4e46e24..49021fa 100644 --- a/src/main/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/play/domain/Move.java +++ b/src/main/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/play/domain/Move.java @@ -6,8 +6,11 @@ public enum Move { SCISSORS, WELL; - public boolean beats(Move other) { - return switch (this) { + public Result beats(Move other) { + if(this.equals(other)){ + return Result.EQUAL; + } + boolean result = switch (this) { case ROCK -> other == SCISSORS; case PAPER -> other == ROCK || other == WELL; case SCISSORS -> other == PAPER; @@ -15,5 +18,6 @@ public enum Move { }; + return result ? Result.WIN : Result.LOOSE; } } diff --git a/src/main/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/play/domain/Result.java b/src/main/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/play/domain/Result.java new file mode 100644 index 0000000..cc41cdb --- /dev/null +++ b/src/main/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/play/domain/Result.java @@ -0,0 +1,8 @@ +package fr.iut_fbleau.info.but3.automation.rock_paper_scissors.play.domain; + +public enum Result { + + WIN, + LOOSE, + EQUAL; +} diff --git a/src/main/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/play/domain/RockPaperScissorsPlayer.java b/src/main/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/play/domain/RockPaperScissorsPlayer.java index 90e7b79..73b9b76 100644 --- a/src/main/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/play/domain/RockPaperScissorsPlayer.java +++ b/src/main/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/play/domain/RockPaperScissorsPlayer.java @@ -9,17 +9,16 @@ import fr.iut_fbleau.info.but3.automation.rock_paper_scissors.stat.domain.StatSa @DomainService public record RockPaperScissorsPlayer(CpuPick cpuPick, StatSave statSave) implements RockPaperScissorsPlay { - public static final String WIN = "WIN"; - public static final String LOOSE = "LOOSE"; + @Override public RoundResult playRound(String name, Move move) { + var cpuPicked = this.cpuPick.pick(); - boolean beats = move.beats(cpuPicked); - String result = beats ? WIN : LOOSE; - if (result.equals(WIN)) { + Result beats = move.beats(cpuPicked); + if (beats.equals(Result.WIN)) { this.statSave.addWin(name); } - return new RoundResult(result, name, cpuPicked); + return new RoundResult(beats.toString(), name, cpuPicked); } }