Exemplo n.º 1
0
        override public void Visit(MovableTrack visitee)
        {
            int caseSwitch = visitee.corner;

            switch (caseSwitch)
            {
            case 0:
                _fieldRepresentation = '-';
                break;

            case 1:
                _fieldRepresentation = '┐';
                break;

            case 2:
                _fieldRepresentation = '┌';
                break;

            case 3:
                _fieldRepresentation = '┘';
                break;

            case 4:
                _fieldRepresentation = '└';
                break;

            case 5:
                _fieldRepresentation = '|';
                break;
            }
            if (visitee.content != null)
            {
                visitee.content.Accept(this);
            }
            Console.BackgroundColor = ConsoleColor.Red;
        }
Exemplo n.º 2
0
        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();
        }