public GameField(Size size, IInputQueue queue) { _size = size; _queue = queue; _sprite = new ModifyableSprite(size); _currentFigure = new FigureI(3, 0); _peak = _size.Height; }
public ISprite GetCurrentView() { var sprite = new ModifyableSprite(_sprite); _currentFigure.ForEachNonEmptyCell((i, j) => { var x = _currentFigure.Placement.Left + i; var y = _currentFigure.Placement.Top + j; if (x < 0 || y < 0 || x > _size.Width - 1 || y > _size.Height - 1 || _currentFigure[i, j].IsEmptyCell()) return; if (!sprite[x, y].IsEmptyCell()) throw new InvalidOperationException("cannot draw current view because figure overlaps ground"); sprite[x, y] = CurrentFigure[i, j]; }); return sprite; }