Exemplo n.º 1
0
        public override void Tick(MegajewelForm form)
        {
            ticksMissed++;
            if (ticksMissed < 5)
            {
                return;
            }
            ticksMissed = 0;
            var grid = form.Processing.Grid;

            List <Gem> bestGems  = new List <Gem>();
            int        bestPower = 1;

            for (int x = 0; x < 8; x++)
            {
                for (int y = 0; y < 8; y++)
                {
                    Gem gem = grid[x, y];
                    if (gem.SuggestedPower == bestPower)
                    {
                        bestGems.Add(gem);
                    }
                    else if (gem.SuggestedPower > bestPower)
                    {
                        bestPower = gem.SuggestedPower;
                        bestGems.Clear();
                        bestGems.Add(gem);
                    }
                }
            }
            if (bestGems.Count > 0)
            {
                Gem   randomBestGem = bestGems[rgen.Next(bestGems.Count)];
                Point from          = new Point(randomBestGem.X, randomBestGem.Y);
                Point to            = Predictor.MoveInDirection(from, randomBestGem.SuggestedDirection);
                Point fromReal      = form.CurrentMode.GetGemCenter(from.X, from.Y);
                Point toReal        = form.CurrentMode.GetGemCenter(to.X, to.Y);
                Controller.MoveTo(fromReal.X, fromReal.Y);
                Controller.HoldLeft();
                Controller.MoveTo(toReal.X, toReal.Y);
                Controller.ReleaseLeft();
            }
        }
Exemplo n.º 2
0
        public override void Tick(MegajewelForm form)
        {
            if (form.Processing.DiamondMineCleared)
            {
                return;
            }
            var grid = form.Processing.Grid;

            List <Gem> bestGems = new List <Gem>();

            for (int x = 0; x < 8; x++)
            {
                for (int y = 0; y < 8; y++)
                {
                    Gem gem = grid[x, y];
                    if (gem.SuggestedPower >= 3)
                    {
                        bestGems.Add(gem);
                    }
                }
            }
            if (bestGems.Count > 0)
            {
                foreach (Gem randomBestGem in bestGems)
                {
                    Point from     = new Point(randomBestGem.X, randomBestGem.Y);
                    Point to       = Predictor.MoveInDirection(from, randomBestGem.SuggestedDirection);
                    Point fromReal = form.CurrentMode.GetGemCenter(from.X, from.Y);
                    Point toReal   = form.CurrentMode.GetGemCenter(to.X, to.Y);
                    Controller.MoveTo(fromReal.X, fromReal.Y);
                    Controller.HoldLeft();
                    Controller.MoveTo(toReal.X, toReal.Y);
                    Controller.ReleaseLeft();
                }
            }
        }