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; } } } }
public void MoveColleague() { Colleague.Move(); }