/// <summary> /// Prüft, ob ein Spielfeld verwendet werden kann. /// </summary> /// <param name="spielfeld">Ein Spielfeld.</param> /// <returns>Gesetzt, wenn es sich um ein gültiges Spielfeld handelt.</returns> public bool SpielfeldIstGültig( Spielfeld spielfeld ) { // Geht gar nicht if (spielfeld == null) return false; // Art des Spielfelds und Filter ermitteln var kategorie = spielfeld.Kategorie; var filter = SpielfeldKategorien; // Wenn kein Filter eingesetzt wird sind nur Spielfelder ohne Art erlaubt if (string.IsNullOrWhiteSpace( filter )) return string.IsNullOrWhiteSpace( kategorie ); // Gibt es allerdings einen Filter so werden nur Spielfelder mit Art berücksichtigt else if (string.IsNullOrWhiteSpace( kategorie )) return false; // Einmal der langsame Weg if (m_erlaubteKategorien == null) m_erlaubteKategorien = new HashSet<string>( filter.Split( ',' ).Select( k => k.Trim() ) ); // Auswerten auf die schnelle Art return m_erlaubteKategorien.Contains( kategorie ); }
/// <summary> /// Erzeugt einen neuen Informationssatz. /// </summary> /// <param name="spielfeld">Das zugehörige Spielfeld.</param> public SpielfeldMitInformation( Spielfeld spielfeld ) { // Merken Konfiguration = spielfeld; // Ergebnisse bereit stellen Ergebnisse = new Ergebnisse( spielfeld.Ergebnisse ); }
/// <summary> /// Wird aufgerufen, sobald alle Spielfelder geladen sind. /// </summary> /// <param name="spielfelder">Alle bekannten Spielfelder.</param> private void SpielfelderWurdenGeladen( Spielfeld[] spielfelder ) { // Wandeln if (spielfelder != null) m_spielfelder = spielfelder.Select( spielfeld => new SpielfeldMitInformation( spielfeld ) ).ToArray(); // Auswahlliste vorbereiten SpielFelderAuswahlVorbereiten(); }