Skip to content
Snippets Groups Projects
Commit 0dbe1a4d authored by Sofiane Lasri's avatar Sofiane Lasri
Browse files

Calcul du score du joueur & gestion des vies.

parent bf8376a5
Branches
No related tags found
No related merge requests found
......@@ -31,6 +31,7 @@ class GameEngine: NSObject {
private var playerName : String = "";
private var score : Int = 0;
private var combo : Int = 0;
private var remainingLives : Int = 8;
private var managedObjectContext: NSManagedObjectContext?;
......@@ -86,22 +87,28 @@ class GameEngine: NSObject {
return word
}
//public func startNewGame(difficulty: String) -> Void {
//wordToGuess = WordToGuess(theme: "Animals", difficulty: "Easy")
//}
public func guessLetter(letter: Character) -> Bool {
if(isGameOver()){
return false;
}
guessedLetters.append(letter);
if wordToGuess.contains(letter) {
combo += 1;
let dateNow = Date();
var elapsedTime = 100; // temps au dessus du temps de bonus
let maxElapsedTimeInSecondsForBonus = 100;
var elapsedTimeInSeconds = maxElapsedTimeInSecondsForBonus; // Initialisation au temps max
let baseGuessedLetterBonusPoint = 100;
let baseBonusPoint = 100;
let comboBonusPoints = 50;
var timeBonusMultiplier = 1;
if(lastGuessedLetterTime != nil) {
elapsedTime = Int(dateNow.timeIntervalSince(lastGuessedLetterTime!));
elapsedTimeInSeconds = Int(dateNow.timeIntervalSince(lastGuessedLetterTime!));
}
var timeBonusMultiplier = 1;
switch difficulty {
case "Easy":
timeBonusMultiplier = 1;
......@@ -112,28 +119,39 @@ class GameEngine: NSObject {
default:
timeBonusMultiplier = 1;
}
let bonusPoints = (10 * (timeBonusMultiplier))
if(elapsedTime < 10) {
score += 100 + bonusPoints;
if(elapsedTimeInSeconds > maxElapsedTimeInSecondsForBonus) {
score += baseGuessedLetterBonusPoint;
} else if(elapsedTimeInSeconds < 10) {
score += baseGuessedLetterBonusPoint + baseBonusPoint * timeBonusMultiplier;
} else {
score += 100;
score += baseGuessedLetterBonusPoint + (baseBonusPoint * (elapsedTimeInSeconds / maxElapsedTimeInSecondsForBonus));
}
if (combo > 1) {
score += (combo - 1) * comboBonusPoints;
}
lastGuessedLetterTime = Date();
return true;
} else {
lastGuessedLetterTime = nil;
return false;
}
remainingLives -= 1;
combo = 0;
lastGuessedLetterTime = nil;
return false;
}
public func isGameOver() -> Bool {
// Vérification si le jeu est terminé
if(remainingLives > 0) {
return false;
}
return true;
}
public func isLetterGuesses(letter: Character) -> Bool {
public func isLetterGuessed(letter: Character) -> Bool {
if(guessedLetters.contains(letter)) {
return true;
}
return false;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment