/// <summary> /// Gibt die Bubble Matrix ohne Animationanhand des aktuellen Spielstands aus /// Die Matrix wird immer komplett neu gezeichnet /// </summary> public void BubblesAnzeigen() { _bubbles = new Ellipse[_matrix.Zeilen, _matrix.Spalten]; _canvas.Children.Clear(); _fokusAn = false; for (int i = 0; i < _matrix.Zeilen; i++) { for (int j = 0; j < _matrix.Spalten; j++) { Zelle zelle = _matrix.ZelleDerAdresse(i, j); if (zelle.Status == ZellStatus.Belegt) { Tuple <double, double> ZeileSpalte = ZelleNachZeileSpalte(i, j); _bubbles[i, j] = ErzeugeBubble(zelle.Farbe); Canvas.SetTop(_bubbles[i, j], ZeileSpalte.Item1); Canvas.SetLeft(_bubbles[i, j], ZeileSpalte.Item2); _canvas.Children.Add(_bubbles[i, j]); } } } }
/// <summary> /// Ausgabe der Matrix, trennung Präsentationslogic von spiel Logic !!! /// </summary> /// <param name="matrix"></param> /// <returns></returns> static string MatrixAusgeben(GameMatrix matrix) { string result = ""; string crlf = Environment.NewLine; string xAchse = " |"; for (int i = 0; i < matrix.Spalten; i++) { xAchse += string.Format(" {0,2} |", i); } xAchse += crlf; string xDiv = " "; foreach (char e in xAchse) { xDiv += "-"; } xDiv += crlf; string Zeile = ""; string punkte = string.Format("Punktzahl: {0}", matrix.Score) + crlf + crlf; result += punkte; result += xAchse; result += xDiv; for (int i = 0; i < matrix.Zeilen; i++) // Zeilen { Zeile = string.Format(" {0,2} |", i); for (int j = 0; j < matrix.Spalten; j++) { Zeile += string.Format(" {0} |", matrix.ZelleDerAdresse(i, j).FarbRepraesentation()); } Zeile += string.Format(" {0,2}", i); Zeile += crlf; result += Zeile; result += xDiv; } result += xAchse; return(result); }