Exemple #1
0
        /// <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();
        }