Пример #1
0
 public Mato(int alkuX, int alkuY, Suunta alkusuunta)
 {
     _kasva     = false;
     Suunta     = alkusuunta;
     this.Palat = new List <Pala>();
     this.Palat.Add(new Pala(alkuX, alkuY));
 }
Пример #2
0
 private void PaivitaEdellisenLisätynLapsenPaikka(Solmu uusiLapsi)
 {
     if (edellisenLisatynSuunta == Suunta.Oikealle)
     {   //Hakusuunta vuorottelee
         edellisenLisatynSuunta = Suunta.Vasemmalle;
         edellisenVasemmaltaLisätynLapsenPaikka = new Koordinaatit(uusiLapsi.X, uusiLapsi.Y);
         return;
     }
     //Hakusuunta vuorottelee
     edellisenLisatynSuunta = Suunta.Oikealle;
     edellisenOikealtaLisätynLapsenPaikka = new Koordinaatit(uusiLapsi.X, uusiLapsi.Y);
 }
Пример #3
0
        public Koordinaatit EtsiHaunAloitusKoordinaatitEdellistenSiirtojenPerusteella(Suunta hakuSuunta)
        {
            if (hakuSuunta == Suunta.Oikealle && edellisenVasemmaltaLisätynLapsenPaikka != null)
                return EtsiSeuraavaTyhjäRuutuVasemmalta(edellisenVasemmaltaLisätynLapsenPaikka);

            if (edellisenOikealtaLisätynLapsenPaikka != null)
                return EtsiSeuraavaTyhjäRuutuOikealta(edellisenOikealtaLisätynLapsenPaikka);

            //vasemmalta aloitetaan vasemmasta alakulmasta, oikealta oikeasta yläkulmasta
            if (hakuSuunta == Suunta.Oikealle)
            {
                return lauta[0,0] == null ? new Koordinaatit(0,0) : EtsiSeuraavaTyhjäRuutuVasemmalta(new Koordinaatit(0, 0));
            }
            return lauta[14,14] == null ? new Koordinaatit(14,14) : EtsiSeuraavaTyhjäRuutuOikealta(new Koordinaatit(14,14));
        }