public LightsGrid Click(LightsGrid lightsGrid, int x, int y) { // TODO: move to LightsValidator if (x > lightsGrid.Lights.Count - 1 || y > lightsGrid.Lights.Count - 1) { throw new ApplicationException(); } return(_helper.Click(lightsGrid, x, y)); }
public LightsGrid PopulateSolvableState(LightsGrid lightsGrid) { var retVal = lightsGrid; var step = 0; var random = new Random(); do { var x = random.Next(0, lightsGrid.Lights.Count - 1); var y = random.Next(0, lightsGrid.Lights.Count - 1); retVal = _helper.Click(retVal, x, y); step++; }while (step < 100 && // loop at least 100 times AnyLightOn(lightsGrid)); // make sure that any light in state on return(retVal); }