// Metodo che aggiorna il massimo numero di mine inseribili dall'utente nel controllo di scorrimento private void UpdateMaxMines(object sender, EventArgs e) { // si acquisiscono lunghezza e altezza attuali del campo minato int actualLength = (int)_settings.MinefieldLength.Value; int actualHeight = (int)_settings.MinefieldHeight.Value; // si calcola il massimo numero di mine rispetto alle dimensioni indicate del campo minato int maxMine = Minefield.GetMaxMines(actualLength, actualHeight); // si aggiorna il massimo numero di mine inseribili dall'utente _settings.MinefieldMines.Maximum = maxMine; // si aggiorna l'etichetta informativa correlata al numero di mine inseribili dall'utente int minMine = (int)_settings.MinefieldMines.Minimum; _settings.MinefieldMinesMinMaxInfo = "[ Min: " + minMine + " - Max: " + maxMine + " ]"; }
// Metodo che verifica la correttezza dei dati da inserire nella lista delle difficoltà private bool DifficultyIsCorrect(string difficultyName, int length, int height, int mines) { // se almeno una caratteristica del campo minato è errata si comunica che la difficoltà non è corretta if (length < Minefield.MinSide || length > Minefield.MaxSide || height < Minefield.MinSide || height > Minefield.MaxSide || mines < Minefield.MinSide || mines > Minefield.GetMaxMines(length, height)) { return(false); } // se nella lista è già presente una difficoltà con lo stesso nome oppure con i medesimi valori // dei parametri del campo minato allora si comunica che la difficoltà non è corretta foreach (Tuple <string, int, int, int> entry in _difficultiesList) { if (difficultyName == entry.Item1 || (length == entry.Item2 && height == entry.Item3 && mines == entry.Item4)) { return(false); } } // se i controlli precendenti sono stati superati si comunica che la difficoltà è corretta return(true); }