override public void Visit(EmptyTrack visitee) { _fieldRepresentation = ' '; if (visitee.content != null) { visitee.content.Accept(this); } }
public virtual void InitBoard() { Track[,] boardArray = new Track[9, 11]; int totalX = 0; for (int x = 0; x < model.height; x++) { for (int y = 0; y < model.width; y++) { totalX++; var c = model.boardString[totalX]; switch (c) { case 'B': boardArray[x, y] = new EmptyTrack(); boardArray[x, y].content = new Boat(boardArray[x, y]); model.boat = (Boat)boardArray[x, y].content; model.boat.onPier = true; break; case '-': boardArray[x, y] = new Track(); boardArray[x, y].corner = 0; break; case 'K': boardArray[x, y] = new Pier(); break; case 'a': boardArray[x, y] = new ArrangeTrack(); break; case '1': case '2': case '3': boardArray[x, y] = new Track(); model.Routes[c - '1'] = new Route(); model.Routes[c - '1'].OriginField = boardArray[x, y]; break; case '@': boardArray[x, y] = new MovableTrack(); model.MovableTracks.Add((MovableTrack)boardArray[x, y]); break; case ' ': boardArray[x, y] = new EmptyTrack(); break; case '┐': boardArray[x, y] = new Track(); boardArray[x, y].corner = 1; break; case '┌': boardArray[x, y] = new Track(); boardArray[x, y].corner = 2; break; case '┘': boardArray[x, y] = new Track(); boardArray[x, y].corner = 3; break; case '└': boardArray[x, y] = new Track(); boardArray[x, y].corner = 4; break; case '|': boardArray[x, y] = new Track(); boardArray[x, y].corner = 5; break; default: break; } boardArray[x, y].x = x; boardArray[x, y].y = y; } } model.boardArray = boardArray; model.MovableTracks[0].corner = 2; model.MovableTracks[1].corner = 1; model.MovableTracks[2].corner = 2; model.MovableTracks[3].corner = 2; model.MovableTracks[4].corner = 1; InitNeighbours(); }