示例#1
0
    public void initializeBoard()
    {
        char[][] boardArray = new char[8][];

            boardArray[0] = "#########D##".ToCharArray();
            boardArray[1] = "           #".ToCharArray();
            boardArray[2] = "W### ##### #".ToCharArray();
            boardArray[3] = "   C#I   C##".ToCharArray();
            boardArray[4] = "W### ## ##  ".ToCharArray();
            boardArray[5] = "      C#I   ".ToCharArray();
            boardArray[6] = "W###### ####".ToCharArray();
            boardArray[7] = "LLLLLLLL####".ToCharArray();
            board.FirstRow = new LinkedList<LinkedList<BaseTrack>>();
            for (int i = 0; i < boardArray.Length; i++)
            {
                board.FirstRow.AddLast(new LinkedList<BaseTrack>());

                for (int j = 0; j < boardArray[i].Length; j++)
                {
                    BaseTrack track = null;
                    switch(boardArray[i][j]) {
                        case '#':
                            track = new BaseTrack();
                            break;
                        case 'D':
                            track = new Dock(board);
                            break;
                        case ' ':
                            track = new EmptyVoid();
                            break;
                        case 'W':
                            track = new Warehouse();
                            break;
                        case 'C':
                            track = new ConvergingSwitch();
                            break;
                        case 'I':
                            track = new DivergingSwitch();
                            break;
                        case 'L':
                            track = new SafeTrack();
                            break;
                    }

                    board.FirstRow.Last.Value.AddLast(track);
                }
            }

            connectTracks(getAtPosition(2,0), getAtPosition(2,1));
            connectTracks(getAtPosition(2,1), getAtPosition(2,2));
            connectTracks(getAtPosition(2,2), getAtPosition(2,3));
            connectTracks(getAtPosition(3,3), getAtPosition(3,4));
            connectTracks(getAtPosition(3,4), getAtPosition(3,5));
            connectTracks(getAtPosition(3,5), getAtPosition(2,5));
            connectTracks(getAtPosition(2,5), getAtPosition(2,6));
            connectTracks(getAtPosition(2,6), getAtPosition(2,7));
            connectTracks(getAtPosition(2,7), getAtPosition(2,8));
            connectTracks(getAtPosition(2,8), getAtPosition(2,9));
            connectTracks(getAtPosition(2,9), getAtPosition(3,9));
            connectTracks(getAtPosition(3,9), getAtPosition(3,10));
            connectTracks(getAtPosition(3,10), getAtPosition(3,11));
            connectTracks(getAtPosition(3,11), getAtPosition(2,11));
            connectTracks(getAtPosition(2,11), getAtPosition(1,11));
            connectTracks(getAtPosition(1,11), getAtPosition(0,11));
            connectTracks(getAtPosition(0,11), getAtPosition(0,10));
            connectTracks(getAtPosition(0,10), getAtPosition(0,9));
            connectTracks(getAtPosition(0,9), getAtPosition(0,8));
            connectTracks(getAtPosition(0,8), getAtPosition(0,7));
            connectTracks(getAtPosition(0,7), getAtPosition(0,6));
            connectTracks(getAtPosition(0,6), getAtPosition(0,5));
            connectTracks(getAtPosition(0,5), getAtPosition(0,4));
            connectTracks(getAtPosition(0,4), getAtPosition(0,3));
            connectTracks(getAtPosition(0,3), getAtPosition(0,2));
            connectTracks(getAtPosition(0,2), getAtPosition(0,1));
            connectTracks(getAtPosition(0,1), getAtPosition(0,0));

            connectTracks(getAtPosition(4,0), getAtPosition(4,1));
            connectTracks(getAtPosition(4,1), getAtPosition(4,2));
            connectTracks(getAtPosition(4,2), getAtPosition(4,3));
            connectTracks(getAtPosition(4,3), getAtPosition(3,3));

            connectTracks(getAtPosition(4,5), getAtPosition(4,6));
            connectTracks(getAtPosition(4,8), getAtPosition(4,9));

            connectTracks(getAtPosition(6,0), getAtPosition(6,1));
            connectTracks(getAtPosition(6,1), getAtPosition(6,2));
            connectTracks(getAtPosition(6,2), getAtPosition(6,3));
            connectTracks(getAtPosition(6,3), getAtPosition(6,4));
            connectTracks(getAtPosition(6,4), getAtPosition(6,5));
            connectTracks(getAtPosition(6,5), getAtPosition(6,6));
            connectTracks(getAtPosition(6,6), getAtPosition(5,6));

            connectTracks(getAtPosition(5,6), getAtPosition(5,7));
            connectTracks(getAtPosition(5,7), getAtPosition(5,8));
            connectTracks(getAtPosition(5,8), getAtPosition(6,8));

            connectTracks(getAtPosition(6,8), getAtPosition(6,9));
            connectTracks(getAtPosition(6,9), getAtPosition(6,10));
            connectTracks(getAtPosition(6,10), getAtPosition(6,11));

            connectTracks(getAtPosition(6,11), getAtPosition(7,11));
            connectTracks(getAtPosition(7,11), getAtPosition(7,10));
            connectTracks(getAtPosition(7,10), getAtPosition(7,9));
            connectTracks(getAtPosition(7,9), getAtPosition(7,8));
            connectTracks(getAtPosition(7,8), getAtPosition(7,7));
            connectTracks(getAtPosition(7,7), getAtPosition(7,6));
            connectTracks(getAtPosition(7,6), getAtPosition(7,5));
            connectTracks(getAtPosition(7,5), getAtPosition(7,4));
            connectTracks(getAtPosition(7,4), getAtPosition(7,3));
            connectTracks(getAtPosition(7,3), getAtPosition(7,2));
            connectTracks(getAtPosition(7,2), getAtPosition(7,1));
            connectTracks(getAtPosition(7,1), getAtPosition(7,0));

            //Inactives
            getAtPosition(2,3).Next = getAtPosition(3,3); //2,3 is inactive
            getAtPosition(4,6).Next = getAtPosition(5,6); //4,6 is inactive
            getAtPosition(4,9).Next = getAtPosition(3,9); //4,9 is inactive
            getAtPosition(4,8).Previous = getAtPosition(5,8); //4,8 is inactive
            getAtPosition(4,5).Previous = getAtPosition(3,5); //4,5 is inactive

            ConvergingSwitch cSwitch = (ConvergingSwitch)getAtPosition(3,3);
            cSwitch.IsUp = false;
            cSwitch.Inactive = getAtPosition(2,3);
            board.Switches[0] = cSwitch;

            cSwitch = (ConvergingSwitch)getAtPosition(3, 9);
            cSwitch.Inactive = getAtPosition(4, 9);
            board.Switches[4] = cSwitch;

            cSwitch = (ConvergingSwitch)getAtPosition(5, 6);
            cSwitch.IsUp = false;
            cSwitch.Inactive = getAtPosition(4, 6);
            board.Switches[2] = cSwitch;

            DivergingSwitch dSwitch = (DivergingSwitch)getAtPosition(3, 5);
            dSwitch.Inactive = getAtPosition(4, 5);
            board.Switches[1] = dSwitch;

            dSwitch = (DivergingSwitch)getAtPosition(5, 8);
            dSwitch.IsUp = false;
            dSwitch.Inactive = getAtPosition(4, 8);
            board.Switches[3] = dSwitch;

            board.Warehouses[0] = (Warehouse)getAtPosition(2,0);
            board.Warehouses[1] = (Warehouse)getAtPosition(4, 0);
            board.Warehouses[2] = (Warehouse)getAtPosition(6, 0);
    }
示例#2
0
 public void Visit(SafeTrack visitee)
 {
     _fieldString = "╧══";
 }