public static Irány balra(Irány irány) { var s = Convert.ToInt32(!Convert.ToBoolean(Math.Abs(irány.Item1))); var o = Convert.ToInt32(!Convert.ToBoolean(Math.Abs(irány.Item2))); int szorzó = irány.Item2 == 0?1:-1; return(new Irány { Item1 = s * szorzó, Item2 = o * szorzó }); }
public static void NézzKörül(Hely itt) { if (itt == null) { return; } //jobbra Irány jobbra = Irányít.jobbra(itt.irány); if (terep.Itt(itt.poz.sor + jobbra.Item1, itt.poz.oszlop + jobbra.Item2) == Típus.Út && !terep.voltamItt[itt.poz.sor + jobbra.Item1, itt.poz.oszlop + jobbra.Item2]) { itt.jobbra = new Hely { poz = new Poz { sor = itt.poz.sor + jobbra.Item1, oszlop = itt.poz.oszlop + jobbra.Item2 }, irány = jobbra }; terep.voltamItt[itt.jobbra.poz.sor, itt.jobbra.poz.oszlop] = true; } //balra Irány balra = Irányít.balra(itt.irány); if (terep.Itt(itt.poz.sor + balra.Item1, itt.poz.oszlop + balra.Item2) == Típus.Út && !terep.voltamItt[itt.poz.sor + balra.Item1, itt.poz.oszlop + balra.Item2]) { itt.balra = new Hely { poz = new Poz { sor = itt.poz.sor + balra.Item1, oszlop = itt.poz.oszlop + balra.Item2 }, irány = balra }; terep.voltamItt[itt.balra.poz.sor, itt.balra.poz.oszlop] = true; } //előre if (terep.Itt(itt.poz.sor + itt.irány.Item1, itt.poz.oszlop + itt.irány.Item2) == Típus.Út && !terep.voltamItt[itt.poz.sor + itt.irány.Item1, itt.poz.oszlop + itt.irány.Item2]) { itt.előre = new Hely { poz = new Poz { sor = itt.poz.sor + itt.irány.Item1, oszlop = itt.poz.oszlop + itt.irány.Item2 }, irány = itt.irány }; terep.voltamItt[itt.előre.poz.sor, itt.előre.poz.oszlop] = true; } }