private void boardPictureBox_Click(object sender, EventArgs e) { if (_elementSize == 0) { return; } var me = (MouseEventArgs)e; var x = me.X; var y = me.Y; var xx = x / _elementSize; var yy = y / _elementSize; if (Timer == null) { var color = InitialValuesGenerator.RandomColor(); ToDrawValues.Add(new Tuple <int, int, Color>(xx, yy, color)); DrawOnePixel(xx, yy, color); } else { var added = Grid.AddValue(xx, yy); _grainedElementsNumber = _grainedElementsNumber + added; var pixel = Grid.BoardValues[xx, yy]; DrawOnePixel(xx, yy, pixel.Color); } }
private void button3_Click(object sender, EventArgs e) { if (newRandomInput.Text == "") { MessageBox.Show("You should write number of random elements", "Error", MessageBoxButtons.OK); return; } var randomElementsNumber = int.Parse(newRandomInput.Text); var pixels = new List <GamePixelWithCoordinates>(); var random = new Random(Guid.NewGuid().GetHashCode()); for (var i = 0; i < Grid.WidthElementsNumber; i++) { for (var j = 0; j < Grid.HeightElementsNumber; j++) { if (!Grid.BoardValues[i, j].IsGrain()) { continue; } var actualItem = Grid.BoardValues[i, j]; pixels.Add(new GamePixelWithCoordinates { Id = actualItem.Id, Color = actualItem.Color, GrainValue = actualItem.GrainValue, X = i, Y = j }); } } for (var i = 0; i < randomElementsNumber; i++) { var ifContain = false; while (ifContain == false) { var randX = random.Next(Grid.WidthElementsNumber); var randY = random.Next(Grid.HeightElementsNumber); var decision = pixels.Any(a => a.X == randX && a.Y == randY); if (decision) { continue; } var answer = Grid.AddValue(randX, randY, false); if (answer != 1) { continue; } DrawOnePixel(randX, randY, Color.FromArgb(random.Next(255), random.Next(255), random.Next(255))); ifContain = true; } } }