/// <summary> /// run a playing session for a day /// </summary> /// <returns>true if the user successfully end the session (all cards are green)</returns> public bool Play() { try { //first, loads the deck from disc var deck = _persistance.LoadDeck(); //load the session data from disc (if any) var sessiondata = _persistance.LoadSessionState(); _session = new AnkiSession(deck, sessiondata); Helpers.ClearDisplay(); Helpers.Display(new String('-', 30)); Helpers.Display("Hi, welcome to the ANKI learning game"); Helpers.Display(new String('-', 30)); Helpers.Newline(2); if (_session.CurrentDay == 1) { Helpers.Display("this your first session"); } else { DisplayBoxes("Last session review", true); Helpers.Display($"Be prepared for the session of the day #{_session.CurrentDay}"); } Helpers.Newline(2); if (sessiondata == null) { Helpers.Pause("to start"); } else { Helpers.Display("press s to start the day session"); Helpers.Display("press x to delete the last saved session and start again from a brand new deck"); char userchoice = Helpers.ReadUserChoice(new char[] { 's', 'x' }); if (userchoice == 'x') { _persistance.DropSessionStore(); return(Play()); } } StartSessionQuizz(); bool result = EndSessionQuizz(); if (result) { _persistance.DropSessionStore(); } else { _persistance.PersistSessionState(_session.GetSessiondata()); } return(result); } catch (Exception ex) { Helpers.Display($"We are sorry but an error occured : {ex.Message}.", ConsoleColor.Red); Helpers.Display("Exiting program."); return(false); } }