           watchDogBarked = false;
           watchDogEnabled = false;
           elapsedTime = 0;
+          halfOfRemainingTime = TURN_DURATION / 2; // reset the remaining time since the turn is over
           // Go back to the sleep state
           currentState = DEEP_SLEEP;
         }

        watchDogBarked = false;
        watchDogEnabled = false;
        elapsedTime += getTimeoutDuration();
        // Main game logic to follow
        if (elapsedTime >= TURN_DURATION) {
          // Play a sound and vibration sequence to indicate the end of a game due to timeout
          ringFor(100);

          stopVibrating();
          currentState = DEEP_SLEEP;
          elapsedTime = 0;
          halfOfRemainingTime = TURN_DURATION / 2; // reset the remaining time since the turn is over
        } else if (remainingTime <= halfOfRemainingTime) {
          // Ring when we reach half of the remaining time available
          ringFor(150);
          halfOfRemainingTime /= 2;
        }
      }
      if (buttonPressed) {
