public int AffixBlock(Block block) { foreach (Brick brick in block.Bricks.Where(brick => !IsOccupied(brick))) AffixBrick(brick); RemoveFilledRows(); return removedRows; }
public List<int> GetValidStartingColumns(Block block) { block.Top = 1; List<int> validStartingColumns = content.DoBlocksStartInARandomColumn ? GetAllValidStartingColumns(block) : GetMiddleColumnIfValid(block); return validStartingColumns; }
private void CreateUpcomingBlock() { UpcomingBlock = new Block(displayMode, content, Vector2D.Zero); UpcomingBlock.Left = upcomingBlockCenter.X - UpcomingBlock.Center.X; UpcomingBlock.Top = upcomingBlockCenter.Y - UpcomingBlock.Center.Y; UpcomingBlock.UpdateBrickDrawAreas(0.0f); }
private void GetRidOfGameObjects() { Get<Grid>().Clear(); totalRowsRemoved = 0; UpcomingBlock.IsActive = false; UpcomingBlock = null; FallingBlock.IsActive = false; FallingBlock = null; }
public bool IsValidPosition(Block block) { foreach (Brick brick in block.Bricks) if (IsOutsideTheGrid(brick) || IsOccupied(brick)) return false; return true; }
private bool IsAValidStartingColumn(Block block, int column) { block.Left = column; return IsValidPosition(block); }
private List<int> GetMiddleColumnIfValid(Block block) { var validStartingColumns = new List<int>(); if (IsAValidStartingColumn(block, Middle)) validStartingColumns.Add(Middle - (int)block.Center.X); return validStartingColumns; }
//ncrunch: no coverage start private List<int> GetAllValidStartingColumns(Block block) { var validStartingColumns = new List<int>(); for (int x = 0; x < Width; x++) if (IsAValidStartingColumn(block, x)) validStartingColumns.Add(x); return validStartingColumns; }