protected override void Apply(Point coords, Grid grid) { if (0 <= coords.X && coords.X < grid.Width && 0 <= coords.Y && coords.Y < grid.Height) { if (grid.Dots[coords.X, coords.Y] >= 0) { return; } if (grid.Bridges[coords.X, coords.Y]) { grid.Bridges[coords.X, coords.Y] = false; return; } if (Grid.Directions.All(d => !grid.IsBridge(coords, d) && !grid.IsWall(coords, d))) { grid.Bridges[coords.X, coords.Y] = true; } } }
//Série metod které umožňují přejít s daného pole daným směrem bez toho aby se řešilo přetékání apod. private bool IsWall(Point p, Point d) { return(Grid.IsWall(p, d)); }