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