Beispiel #1
0
        private void TahPocitace(Tah tah)
        {
            Deska.Tahni(tah);
            Deska.OdstranPreskoceneKameny(tah);

            // Uložíme si aktuální tah do záznamu celé hry
            TahyZpet.Push((Tah) tah.Clone());

            // Vynulujeme zásobník s redo tahy
            TahyVpred.Clear();

            PrehodHraceNaTahu();

            if(PocetTahu >= LimitTahu)
            {
                KonecHry = true;
                Vitez = MoznostiVyher.remiza;
            }
            else
            {
                Vitez = Rozhodci.KdoVyhral(Deska);
                if(Vitez != MoznostiVyher.nikdo)
                {
                    KonecHry = true;
                }
            }
        }
Beispiel #2
0
        /// <summary>
        /// Vrátí hru o jeden tah zpět.
        /// </summary>
        public Manazer TahZpet()
        {
            Tah zpetnyTah = TahyZpet.Peek();
            TahyVpred.Push(TahyZpet.Pop());

            if(zpetnyTah.PocetTahu() == 1)
            {
                Deska.VratZpatkyTah(zpetnyTah);
                NastaveniObranci = false;
                hracNaTahu = Manazer.StavPole.obrana;

                return this;
            }

            Deska.VratZpatkyTah(zpetnyTah);
            Deska.PridejPreskoceneKameny(zpetnyTah);

            PrehodHraceNaTahu();

            KonecHry = false;
            Vitez = MoznostiVyher.nikdo;

            return this;
        }
Beispiel #3
0
 public void ZjistiViteze()
 {
     if (PocetTahu >= LimitTahu)
     {
         KonecHry = true;
         Vitez = MoznostiVyher.remiza;
     }
     else
     {
         Vitez = Rozhodci.KdoVyhral(Deska);
         if (Vitez != MoznostiVyher.nikdo)
         {
             KonecHry = true;
         }
     }
 }
Beispiel #4
0
        /// <summary>
        /// Prostě restartuje hru.
        /// </summary>
        public void Restart()
        {
            Deska = new HraciDeska();
            NastaveniObranci = false;
            hracNaTahu = Manazer.StavPole.obrana;
            Deska.Restart();
            this.KonecHry = false;
            PocetTahu = 0;
            Vitez = MoznostiVyher.nikdo;

            TahyZpet = new Stack<Tah>();
            TahyVpred = new Stack<Tah>();

            if(Obrance.umelaInteligence)
            {
                NastavObrance();
            }
        }