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;
        }
示例#2
0
        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);
 }