예제 #1
0
        public void PlatziereSchiff(int schiffGroesse, Schiffsausrichtung ausrichtung, int reihenIndex, int spaltenIndex)
        {
            var koordinaten = BerechneSchiffskoordinaten(schiffGroesse, ausrichtung, reihenIndex, spaltenIndex);

            if (IsKoordinatenAußerhalbDesSpielfelds(koordinaten))
            {
                throw new Exception("Die Koordinaten liegen außerhalb des Spielfelds.");
            }
            else if (IsSchiffBereitsVorhanden(koordinaten))
            {
                throw new Exception("Auf den gewählten Koordinaten ist bereits ein Schiff vorhanden.");
            }
            else
            {
                foreach (var koordinate in koordinaten)
                {
                    int reihenKoordinate  = koordinate.ZeilenKoordinate;
                    int spaltenKoordinate = koordinate.SpaltenKoordinate;
                    _felder[reihenKoordinate, spaltenKoordinate] = new Feld()
                    {
                        IsGesetzt = true
                    };
                }
            }
        }
예제 #2
0
        private Feld[,] _felder;                              //Firmenkonvention: Private Klasseninstanzen mit _ !!!

        public Spielfeld(int reihenAnzahl, int spaltenAnzahl) //Konstruktor der Klasse Spielfeld:
        {
            _felder = new Feld[reihenAnzahl, spaltenAnzahl];

            for (int i = 0; i < _felder.GetLength(0); i++)
            {
                for (int u = 0; u < _felder.GetLength(1); u++)
                {
                    _felder[i, u] = new Feld();
                }
            }
        }