예제 #1
0
        protected override int ZoekVeld(Pion pion, IVeld veld)
        {
            if (veld is Finishveld) return int.MinValue;
            var score = veld.Score - pion.IVeld.Score;

            if (veld.Score - pion.IVeld.Score < 0) score += 2;

            if (veld.Pionnen.Count == 1) score += 20;

            return score;
        }
예제 #2
0
        public void Beweeg(Pion pion, IVeld bestemming)
        {
            var icon = _poinnen[pion];

            List<IVeld> list;
            if (pion.Paden != null && pion.Paden.ContainsKey(bestemming))
            {
                list = new List<IVeld>(pion.Paden[bestemming]);
            }
            else
            {
                list = new List<IVeld> {bestemming};
            }
            var stack = list.Select(veld => _velden[veld].BerekenPunt(pion).TranslatePoint(new Point(0.0, 0.0), _houder));
            //IEnumerable<Point> stack = Enumerable.Select<IElement, Point>(list, icon.BerekenPunt(pion).TranslatePoint(new Point(0.0, 0.0), _houder))));
            icon.Beweeg(stack);
            //            Beweeg(pion, stack, icon, milliseconds);
        }
예제 #3
0
 abstract protected int ZoekVeld(Pion gekozen, IVeld veld);
예제 #4
0
 public async Task<IVeld> VerplaatsPion(Pion gekozen, ICollection<IVeld> mogelijk)
 {
     return mogelijk.ToList().OrderBy(veld => ZoekVeld(gekozen, veld)).First();
 }
예제 #5
0
 protected override int ZoekVeld(Pion pion, IVeld veld)
 {
     if (veld is Finishveld) return int.MinValue;
     return _random.Next(0, 100000);
 }
예제 #6
0
        public async Task<IVeld> VerplaatsPion(Pion gekozen, ICollection<IVeld> mogelijk)
        {
            _dynamischeLaag.Highlight(new[] { gekozen }, true);
            _statischeLaag.Highlight(mogelijk, true);
            DynamischGrid.IsHitTestVisible = false;
            while (true)
            {
                var veld = await _veldCompletion.Wait();

                if (!mogelijk.Contains(veld))
                {
                    continue;
                }

                DynamischGrid.IsHitTestVisible = true;
                _dynamischeLaag.Highlight(new[] { gekozen }, false);
                _statischeLaag.Highlight(mogelijk, false);
                return veld;
            }
        }