Пример #1
0
        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);
            }
        }
Пример #2
0
        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;
                }
            }
        }