Files
TD3_DEV51_dick_amary/src/Score.java

37 lines
1.0 KiB
Java

/**
* Calcule le score du pendu à partir du nombre d'erreurs et du temps écoulé.
*
* Formule (simple et configurable) :
* score = max(0, BASE - erreurs * ERROR_PENALTY - secondes * TIME_PENALTY_PER_SEC)
*
* @version 1.0
* @author Adrien
* Date : 08-10-2025
* Licence :
*/
public final class Score {
/** Score de départ. */
public static final int BASE = 1000;
/** Malus par erreur. (6 erreurs max par défaut) */
public static final int ERROR_PENALTY = 120;
/** Malus par seconde écoulée. */
public static final double TIME_PENALTY_PER_SEC = 1.0;
private Score() {}
/**
* - nombre d'erreurs (>=0)
* - temps écoulé en millisecondes
* - score >= 0
*/
public static int compute(int errors, long elapsedMillis) {
if (errors < 0) errors = 0;
double timePenalty = (elapsedMillis / 1000.0) * TIME_PENALTY_PER_SEC;
int value = (int)Math.round(BASE - errors * ERROR_PENALTY - timePenalty);
return Math.max(0, value);
}
}