Exemplo n.º 1
0
        public void linkSpots(string[] maze)
        {
            Spot[,] spots = new Spot[maze.Length, getLongestLine(maze)];
            int x = 0;
            int y = 0;

            foreach (String line in maze)
            {
                y = 0;
                foreach (char symbol in line.ToCharArray())
                {
                    Spot spot = null;
                    switch (symbol)
                    {
                    case 'x':
                        spot = new Destination();
                        Destinations.Add((Destination)spot);
                        break;

                    case '.':
                        spot = new Floor();
                        break;

                    case 'o':
                        spot = new Floor();
                        Crate crate = new Crate(spot);
                        spot.ContainsItem = crate;
                        Crates.Add(crate);
                        break;

                    case '~':
                        spot = new Trap();
                        break;

                    case '@':
                        spot = new Floor();
                        Truck truck = new Truck(spot);
                        spot.ContainsItem = truck;
                        _truck            = truck;
                        break;

                    case '$':
                        spot = new Floor();
                        Colleague colleague = new Colleague(spot);
                        spot.ContainsItem = colleague;
                        _colleague        = colleague;
                        break;

                    case '#':
                        spot = new Wall();
                        break;

                    case '0':
                        spot = new Destination();
                        Destinations.Add((Destination)spot);
                        crate             = new Crate(spot);
                        spot.ContainsItem = crate;
                        Crates.Add(crate);
                        break;

                    case ' ':
                        spot         = new Floor();
                        spot.IsEmpty = true;
                        break;
                    }

                    spots[x, y] = spot;
                    y++;
                }
                x++;
            }

            for (int i = 0; i < spots.GetLength(0); i++)
            {
                for (int j = 0; j < spots.GetLength(1); j++)
                {
                    Spot spot = spots[i, j];

                    if (spot == null)
                    {
                        continue;
                    }

                    spot.UpSpot    = getSpot(spots, i - 1, j);
                    spot.RightSpot = getSpot(spots, i, j + 1);
                    spot.DownSpot  = getSpot(spots, i + 1, j);
                    spot.LeftSpot  = getSpot(spots, i, j - 1);

                    if (i == 0 && j == 0)
                    {
                        _first = spot;
                    }
                }
            }
        }
Exemplo n.º 2
0
 public void MoveColleague()
 {
     Colleague.Move();
 }