Exemple #1
0
        // Metodo che restituisce una breve descrizione della modalità di gioco specificata
        public static string DescribeModality(GameModality modality)
        {
            // descrizione della modalità di gioco
            string modalityDescription = null;

            // si stabilisce quale descrizione restituire
            switch (modality)
            {
            case GameModality.Classica:
                modalityDescription = "Alla prima mina colpita si perde la partita";
                break;

            case GameModality.Agevolata:
                modalityDescription = "Dopo aver colpito " + AttemptsAgevolata + " mine si perde la partita";
                break;

            case GameModality.Semplificata:
                modalityDescription = "Dopo aver colpito più mine si perde la partita";
                break;

            case GameModality.Sicura:
                modalityDescription = "Le mine colpite non fanno perdere la partita";
                break;
            }

            return(modalityDescription);
        }
Exemple #2
0
        // Metodo che crea una nuova partita con le impostazioni specificate
        public void NewGame(Minefield minefield, GameModality modality)
        {
            if (minefield == null)
            {
                throw new ArgumentNullException
                          ("Riferimento nullo al campo minato!");
            }

            if (!minefield.AreZonesCoveredAndUnflagged())
            {
                throw new ArgumentException
                          ("Il campo minato ha uno stato iniziale invalido: sono presenti zone scoperte e/o contrassegnate!");
            }

            // acquisizione del campo minato e della modalità di gioco
            _minefield = minefield;
            _modality  = modality;
            // creazione di una nuova partita
            NewGame();
        }
Exemple #3
0
        // Metodo che determina il numero di tentativi disponibili per la partita
        private int?SetAttempts(GameModality modality)
        {
            // numero totale di tentativi disponibili per la partita
            int?totalAttempts;

            // a seconda della modalità scelta si determina il numero totale di tentativi disponibili
            if (modality == GameModality.Classica)
            {
                totalAttempts = AttemptsClassica;
            }
            else if (modality == GameModality.Agevolata)
            {
                totalAttempts = AttemptsAgevolata;
            }
            else if (modality == GameModality.Semplificata)
            {
                totalAttempts = (int)(_minefield.Mines * AttemptsRatioSemplificata);

                // se il numero di tentativi appena calcolato è inferiore al numero di tentativi associato alla
                // modalità 'agevolata' allora si utilizza quest'ultimo numero per i tentativi disponibili
                if (totalAttempts < AttemptsAgevolata)
                {
                    totalAttempts = AttemptsAgevolata;
                }
            }
            else if (modality == GameModality.Sicura)
            {
                totalAttempts = null;
            }
            else
            {
                throw new ArgumentOutOfRangeException
                          ("Selezionata modalità di gioco sconosciuta!");
            }

            return(totalAttempts);
        }
Exemple #4
0
 // Costruttore che genera una partita rispetto al campo minato fornito e alla modalità di gioco scelta
 public MinesweeperGame(Minefield minefield, GameModality modality)
 {
     NewGame(minefield, modality);
 }