1
0

LS03-04-2: Highscoreberechnung

This commit is contained in:
2021-06-15 21:12:51 +02:00
parent 47d54416c7
commit 7b4d78c1e0
2 changed files with 9 additions and 10 deletions
@@ -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));
}
}
@@ -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);