Пример #1
0
        private void GenerateHoles()
        {
            timer1.Stop();
            BallsDoc.ClearHoles();
            while (true)
            {
                if (BallsDoc.HolesCount() == 5)
                {
                    break;
                }
                int x      = Random.Next(_left + Hole.Radius * 2, _width - Hole.Radius * 2);
                int y      = Random.Next(_top + Hole.Radius * 2, _height - Hole.Radius * 2);
                var center = new Point(x, y);

                if (BallsDoc.HolesCount() == 0)
                {
                    BallsDoc.AddHole(center);
                }
                else
                {
                    var  h    = new Hole(center);
                    bool flag = true;
                    for (int i = 0; i < BallsDoc.HolesCount(); i++)
                    {
                        if (BallsDoc.Holes[i].TouchAnotherHole(h))
                        {
                            flag = false;
                            break;
                        }
                    }
                    if (flag)
                    {
                        BallsDoc.AddHole(center);
                    }
                }
            }

            Invalidate();
            timer1.Start();
        }