From 7b4d78c1e0a4315131a335616aaeacc12537df30 Mon Sep 17 00:00:00 2001 From: joel Date: Tue, 15 Jun 2021 21:12:51 +0200 Subject: [PATCH] LS03-04-2: Highscoreberechnung --- .../controller/AttemptController.java | 4 ++-- .../aliendefence/controller/GameController.java | 15 +++++++-------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/de/oszimt/ls/aliendefence/controller/AttemptController.java b/src/de/oszimt/ls/aliendefence/controller/AttemptController.java index 43a8e73..e5bb6b5 100644 --- a/src/de/oszimt/ls/aliendefence/controller/AttemptController.java +++ b/src/de/oszimt/ls/aliendefence/controller/AttemptController.java @@ -34,13 +34,13 @@ public class AttemptController { } /** - * calculates points from attempt for highscore TODO create formula here + * calculates points from attempt for highscore * * @param level Levelobjekt * @param hitcounter Controllerobjekt das die Treffer und Reaktionszeiten misst * @return points */ public int calculatePoints(Level level, HitCounter hitcounter) { - return -1; + return (int) ((hitcounter.getHit()/level.getTargets().size())* 400L +(hitcounter.getHit()/hitcounter.getShots())* 200L +(1000-(hitcounter.getReactionTime()/hitcounter.getSumReactionDiffernce())*400)); } } diff --git a/src/de/oszimt/ls/aliendefence/controller/GameController.java b/src/de/oszimt/ls/aliendefence/controller/GameController.java index 7913036..795bcf0 100644 --- a/src/de/oszimt/ls/aliendefence/controller/GameController.java +++ b/src/de/oszimt/ls/aliendefence/controller/GameController.java @@ -7,6 +7,8 @@ import de.oszimt.ls.aliendefence.model.Level; import de.oszimt.ls.aliendefence.model.Point; import de.oszimt.ls.aliendefence.model.Target; import de.oszimt.ls.aliendefence.model.User; +import de.oszimt.ls.aliendefence.model.persistence.IAttemptPersistance; +import de.oszimt.ls.aliendefence.model.persistenceDB.AttemptDB; import de.oszimt.ls.aliendefence.view.menue.Highscore; public class GameController { @@ -47,18 +49,15 @@ public class GameController { setHighscore = false; //damit keine doppelten Eintrüge erzeugt werden - // TODO Highscoreeintrag erzeugen Highscore >> F_user_id, F_level_id, shots, - // hits, reaction_time System.out.println("Highscoreeintrag für " + currentLevel.getName() + ": " + currentUser.getFirst_name() + " hat " + this.getShotsFired() + " mal auf " + this.getTargets().size() + " Ziele gefeuert und " + this.getHits() + " mal getroffen."); System.out.println("Highscorepunkte: " + alienDefenceController.getAttemptController().calculatePoints(this.currentLevel, this.hitCounter)); - int insert_id = 0; - // AttemptDB attemptDB = - // this.alienDefenceController.getAlienDefenceModel().getAttemptPersistance(); - // int insert_id = attemptDB.createHighscoreEntry(currentUser.getP_user_id(), - // currentLevel.getLevel_id(), - // this.getShotsFired(), this.getHits(), relReactionDiffernce); + //int insert_id = 0; + + IAttemptPersistance attemptDB = this.alienDefenceController.getAlienDefenceModel().getAttemptPersistance(); + int insert_id = attemptDB.createHighscoreEntry(currentUser.getP_user_id(), currentLevel.getLevel_id(), + this.getShotsFired(), this.getHits(), this.hitCounter.getReactionTime()); new Highscore(this.alienDefenceController.getAttemptController(), currentLevel, insert_id);