public ISpelBeurt BepaalBeurt(ISpelStatus status) { int[] mogelijkeLegActies = BepaalMogelijkeLegActies(status.Hand, status.Bord); SpelBeurt beurt = new SpelBeurt(); if (mogelijkeLegActies.Length > 0) { //leg de eerste mogelijke kaart aan beurt.LegkaartAan(mogelijkeLegActies[0]); } else { //leg de eerste kaart in de hand af beurt.LegKaartWeg(0); } //pak een kaart van de trekstapel beurt.PakKaartVanTrekstapel(); return beurt; }
private ISpelBeurt BepaalBeurtMetTimeOut(ISpelStatus status, ISimulatieSpeler speler, int millisecondsToWait) { DoWorkNeedsTimeoutDelegate deleg = new DoWorkNeedsTimeoutDelegate(speler.BepaalBeurt); IAsyncResult ar = deleg.BeginInvoke(status, null, new object()); if (!ar.AsyncWaitHandle.WaitOne(millisecondsToWait, false)) { throw new SimulationFailException(speler, "TimeOut"); } else { return deleg.EndInvoke(ar); } }
public ISpelBeurt BepaalBeurt(ISpelStatus status) { return simulatieStrategie.BepaalBeurt(status); }