From bf8376a5d616353a0b4dc56c7c7305837803dd49 Mon Sep 17 00:00:00 2001
From: Sofiane Lasri <alasri250@gmail.com>
Date: Tue, 23 May 2023 17:51:16 +0200
Subject: [PATCH] =?UTF-8?q?Cr=C3=A9ation=20de=20la=20base=20du=20calcul=20?=
 =?UTF-8?q?du=20score.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 Pendu/GameEngine.swift | 33 +++++++++++++++++++++++++++++++--
 1 file changed, 31 insertions(+), 2 deletions(-)

diff --git a/Pendu/GameEngine.swift b/Pendu/GameEngine.swift
index 219891e..d664bae 100644
--- a/Pendu/GameEngine.swift
+++ b/Pendu/GameEngine.swift
@@ -25,6 +25,7 @@ class GameEngine: NSObject {
     private var wordToGuess : String = "";
     private var attemptsRemaining : Int = 0;
     private var guessedLetters : [Character] = [];
+    private var lastGuessedLetterTime : Date? = nil;
     private var theme : String = "";
     private var difficulty : String = "";
     private var playerName : String = "";
@@ -92,9 +93,37 @@ class GameEngine: NSObject {
     public func guessLetter(letter: Character) -> Bool {
 
         if wordToGuess.contains(letter) {
-            return true
+            let dateNow = Date();
+            
+            var elapsedTime = 100; // temps au dessus du temps de bonus
+            
+            if(lastGuessedLetterTime != nil) {
+                elapsedTime = Int(dateNow.timeIntervalSince(lastGuessedLetterTime!));
+            }
+             
+            var timeBonusMultiplier = 1;
+            switch difficulty {
+            case "Easy":
+                timeBonusMultiplier = 1;
+            case "Normal":
+                timeBonusMultiplier = 2;
+            case "Hard":
+                timeBonusMultiplier = 3;
+            default:
+                timeBonusMultiplier = 1;
+            }
+            let bonusPoints = (10 * (timeBonusMultiplier))
+            
+            if(elapsedTime < 10) {
+                score += 100 + bonusPoints;
+            } else {
+                score += 100;
+            }
+            lastGuessedLetterTime = Date();
+            return true;
         } else {
-            return false
+            lastGuessedLetterTime = nil;
+            return false;
         }
 
     }
-- 
GitLab