public Mato(int alkuX, int alkuY, Suunta alkusuunta) { _kasva = false; Suunta = alkusuunta; this.Palat = new List <Pala>(); this.Palat.Add(new Pala(alkuX, alkuY)); }
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); }
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)); }