/// <summary> /// Initialise le champ correspondant à la période de jeu. /// </summary> /// <param name="donneesCalendaires">Année et phase de jeu sous forme d'une chaîne de caractères.</param> private void InitialisePeriodeJeu(String donneesCalendaires) { Int32 anneeDeJeu = Int32.Parse(donneesCalendaires.Split(':')[0]); EPhaseJeu phaseDeJeu = (EPhaseJeu)(Int32.Parse(donneesCalendaires.Split(':')[1])); this.PeriodeCourante = new Periode(anneeDeJeu, phaseDeJeu); }
/// <summary> /// Incrémente la période considérée d'une phase de jeu. /// </summary> public void Incremente() { Int32 periodecourante = (Int32)(this.phase); try { if (periodecourante + 1 < 7) { this.phase = (EPhaseJeu)(periodecourante + 1); } else { this.phase = (EPhaseJeu)(0); this.annee = this.annee + 1; } } catch { // Un problème peut survenir si, au fur et à mesure des développements, // on change l'énumération EPhaseJeu et que celle-ci ne contient // plus sept éléments. throw new Exception("L'énumération EPhaseJeu a été modifiée indépendamment de la classe Periode."); } }
/// <summary> /// Convertit l'élément de EPhaseJeu en une chaîne de caractères spécifiant le type de la phase. /// </summary> /// <param name="phaseJeu">Identificateur de la phase de jeu en tant qu'élément de EPhaseJeu.</param> /// <returns>Identificateur du type de la phase sous forme d'une chaîne de caractères.</returns> public static String VersPhaseJeuAbregee(EPhaseJeu phaseJeu) { String typePhase; switch (phaseJeu) { case EPhaseJeu.Printemps: typePhase = "Ordres"; break; case EPhaseJeu.Ete: goto case EPhaseJeu.Printemps; case EPhaseJeu.Automne: goto case EPhaseJeu.Printemps; case EPhaseJeu.RetraitesPrintemps: typePhase = "Retraites"; break; case EPhaseJeu.RetraitesEte: goto case EPhaseJeu.RetraitesPrintemps; case EPhaseJeu.RetraitesAutomne: goto case EPhaseJeu.RetraitesPrintemps; case EPhaseJeu.Ajustements: typePhase = "Ajustements"; break; default: throw new Exception("La phase de jeu fournie en argument est inconnue."); } return(typePhase); }
/// <summary> /// Initialise une nouvelle instance de la classe Periode. /// </summary> /// <param name="annee">Année de la période.</param> /// <param name="phase">Phase de jeu de la période.</param> public Periode(Int32 annee, EPhaseJeu phase) { this.annee = annee; this.phase = phase; }