Example #1
0
 public Prisera(int x, int y, AbsolutniSmer smer, bool[,] bludiste)
 {
     poziceX       = x;
     poziceY       = y;
     this.Smer     = smer;
     this.bludiste = bludiste;
 }
Example #2
0
        public static Prisera ReadMaze(int sirka, int vyska)
        {
            bool[,] bludiste = new bool[vyska, sirka];
            int           x = 0, y = 0;
            AbsolutniSmer s = AbsolutniSmer.Nahoru;

            for (int i = 0; i < vyska; i++)
            {
                for (int j = 0; j < sirka; j++)
                {
                    char c = (char)Console.Read();
                    switch (c)
                    {
                    case 'X':
                        bludiste[i, j] = true;
                        break;

                    case '>':
                        y = i;
                        x = j;
                        s = AbsolutniSmer.Doprava;
                        break;

                    case '<':
                        y = i;
                        x = j;
                        s = AbsolutniSmer.Doleva;
                        break;

                    case '^':
                        y = i;
                        x = j;
                        s = AbsolutniSmer.Nahoru;
                        break;

                    case 'v':
                        y = i;
                        x = j;
                        s = AbsolutniSmer.Dolu;
                        break;
                    }
                }
                Console.ReadLine();
            }

            return(new Prisera(x, y, s, bludiste));
        }
Example #3
0
        bool JeTamZed(RelativniOrientace kde)
        {
            AbsolutniSmer absolutniSmer = (AbsolutniSmer)(((int)Smer + (int)kde) % 4);

            switch (absolutniSmer)
            {
            case AbsolutniSmer.Nahoru:
                return(poziceY != 0 && bludiste[poziceY - 1, poziceX]);

            case AbsolutniSmer.Dolu:
                return(poziceY != bludiste.GetUpperBound(0) && bludiste[poziceY + 1, poziceX]);

            case AbsolutniSmer.Doleva:
                return(poziceX != 0 && bludiste[poziceY, poziceX - 1]);

            case AbsolutniSmer.Doprava:
                return(poziceX != bludiste.GetUpperBound(1) && bludiste[poziceY, poziceX + 1]);

            default:
                return(false);
            }
        }
Example #4
0
 void OtocSe(RelativniOrientace kam)
 {
     Smer = (AbsolutniSmer)(((int)Smer + (int)kam) % 4);
 }