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; }
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); }
abstract protected int ZoekVeld(Pion gekozen, IVeld veld);
public async Task<IVeld> VerplaatsPion(Pion gekozen, ICollection<IVeld> mogelijk) { return mogelijk.ToList().OrderBy(veld => ZoekVeld(gekozen, veld)).First(); }
protected override int ZoekVeld(Pion pion, IVeld veld) { if (veld is Finishveld) return int.MinValue; return _random.Next(0, 100000); }
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; } }