//////////////////////////////////////////////////////////////////////// // // Copyright (C) 2006 Phillip Kroll // // Internet: http://bioinformatikblog.gloomit.de // // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License // as published by the Free Software Foundation; either version 2 // of the License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // //////////////////////////////////////////////////////////////////////// /*------------------------------------------------------------------------ Klasse: MainClass, Hauptprogramm ------------------------------------------------------------------------*/ public class MainClass { public static void main(String[] args) { // strecke mit der länge 40, 9 zügen, und vorwärtsrichtung erstellen RailWay railWay1 = new RailWay( 40, 9, 1, "RailWay1" ); // strecke mit der länge 80, 4 zügen, und rückwärtsrichtung erstellen RailWay railWay2 = new RailWay( 80, 4, -1, "RailWay2" ); } } /*------------------------------------------------------------------------ Klasse: RailWay, Threadsynchronisation ------------------------------------------------------------------------*/ public class RailWay { private int[] rails; private String name = "Noname"; private Train[] trains; // length: ist die länge der strecke // trainCount: ist die anzahl an zügen die auf die strecke gesetzt // werden sollen // direction: werte größer null bewirken dass züge nach rechts fahren, // werte kleiner null bewiken dass die züge nach links fahren public RailWay( int length, int trainCount, int direction, String name ){ this.name = name; // Strecke erstellen rails = new int[ length ]; // Array mit 0 initialisieren for ( int i = 0; i < rails.length; i++ ){ rails[ i ] = 0; } // sicherheitsabfrage für die anzahl der züge if ( trainCount >= length ){ trainCount = length - 1; } // züge erstellen und initialisieren trains = new Train[ trainCount ]; for ( int i = 0; i < trains.length; i++ ){ trains[ i ] = new Train( this, i + 1, i ); trains[ i ].setDirection( direction ); } for ( int i = 0; i < trains.length; i++ ){ trains[ i ].start(); } } public synchronized int moveForward( Train train ){ // nächste position für den zug ermitteln int nextPosition = train.getPosition() + train.getDirection(); // sicherheitsabfragen für die ränder des arrays if ( nextPosition >= rails.length ){ nextPosition = 0; } if ( nextPosition < 0 ){ nextPosition = rails.length - 1; } // warten wenn der nächste zug noch das nächste feld besetzt while ( rails[ nextPosition ] != 0 ){ try { wait(); } catch( InterruptedException e){} } // arrayposition freigeben rails[ train.getPosition() ] = 0; // nächtes arrayfeld besetzen rails[ nextPosition ] = train.getTrainId(); notifyAll(); return( nextPosition ); } // zug bei der initialisierung auf eine bestimmte position setzen public int initTo( Train train, int position ){ rails[ position ] = train.getTrainId(); return( position ); } // ausgabe für die zugstrecke erzeugen public String StatusString(){ String result = name + ": "; for ( int i = 0; i < rails.length; i++ ){ if ( rails[ i ] != 0 ){ result += rails[ i ]; } else { result += "_"; } } return result + " (" + rails.length + ")"; } } /*------------------------------------------------------------------------ Klasse: Train, Thread ------------------------------------------------------------------------*/ public class Train extends Thread{ RailWay railWay; private int position = -1; private int trainId; private int direction = 1; // RailWay: referenz auf die bahnstrecke auf der der zug frahren soll // trainId: eindeutige frei wählbare nummer für den zug, 0 ist nicht erlaubt // position: initialisierungsposition für den zug public Train( RailWay railWay, int trainId, int position ){ this.railWay = railWay; this.trainId = trainId; this.position = position; if ( this.trainId == 0 ){ this.trainId = -1; } railWay.initTo( this, position ); } public int getPosition(){ return( position ); } public int getTrainId(){ return( trainId ); } public int getDirection(){ return( direction ); } // fahrtrichtung festlegen public void setDirection( int direction ){ if ( direction >= 0 ) { this.direction = 1; } else { this.direction = -1; } } // laufzeit des threads public void run(){ while (true){ // bewegung durchführen, thred wird so lange eingeschlafen // bis die nächste position frei ist position = railWay.moveForward( this ); // status ausgeben System.out.println( railWay.StatusString() ); // zufällige zeit warten, kann auskommentiert werden try { sleep( Math.round( Math.random() * 50 ) ); } catch ( InterruptedException E ) {} } } } /* Beispiel für Ausgabe RailWay1: 1234567_89______________________________ (40) RailWay1: 123456_789______________________________ (40) RailWay1: 12345_6789______________________________ (40) RailWay1: 12345_6789______________________________ (40) RailWay2: _234___________________________________________________________________________1 (80) RailWay2: 2_34___________________________________________________________________________1 (80) RailWay2: 23_4___________________________________________________________________________1 (80) RailWay1: 123_456789______________________________ (40) RailWay1: 12_3456789______________________________ (40) RailWay1: 1_23456789______________________________ (40) RailWay1: _123456789______________________________ (40) RailWay1: _123456789______________________________ (40) RailWay2: 234____________________________________________________________________________1 (80) RailWay2: 234___________________________________________________________________________1_ (80) RailWay2: _34___________________________________________________________________________12 (80) RailWay1: _12345678_9_____________________________ (40) RailWay1: _123456_789_____________________________ (40) RailWay1: _12345_6789_____________________________ (40) RailWay1: _12345_6789_____________________________ (40) RailWay1: _12345_678_9____________________________ (40) RailWay1: _12345_67_89____________________________ (40) RailWay2: _34__________________________________________________________________________1_2 (80) RailWay1: _1234_567_89____________________________ (40) RailWay1: _1234_56_789____________________________ (40) RailWay2: _34__________________________________________________________________________12_ (80) RailWay1: _123_456_789____________________________ (40) RailWay1: _12_3456_789____________________________ (40) RailWay1: __123456_789____________________________ (40) RailWay1: __123456_789____________________________ (40) RailWay2: 3_4__________________________________________________________________________12_ (80) RailWay2: 34___________________________________________________________________________12_ (80) RailWay1: __123456_78_9___________________________ (40) RailWay1: __12345_678_9___________________________ (40) RailWay1: __12345_67_89___________________________ (40) RailWay1: __12345_67_8_9__________________________ (40) RailWay1: __12345_67_8__9_________________________ (40) RailWay1: __12345_67__8_9_________________________ (40) RailWay1: __1234_567__8_9_________________________ (40) RailWay1: __1234_56_7_8_9_________________________ (40) RailWay2: 34__________________________________________________________________________1_2_ (80) RailWay2: 34__________________________________________________________________________12__ (80) RailWay1: __1234_5_67_8_9_________________________ (40) RailWay1: __123_45_67_8_9_________________________ (40) RailWay1: __12_345_67_8_9_________________________ (40) RailWay1: __1_2345_67_8_9_________________________ (40) RailWay1: ___12345_67_8_9_________________________ (40) RailWay1: ___12345_6_78_9_________________________ (40) RailWay2: 34_________________________________________________________________________1_2__ (80) RailWay1: ___12345_6_78__9________________________ (40) RailWay2: _4_________________________________________________________________________1_2_3 (80) RailWay2: 4__________________________________________________________________________1_2_3 (80) RailWay1: ___1234_56_78__9________________________ (40) RailWay1: ___123_456_78__9________________________ (40) RailWay1: ___12_3456_78__9________________________ (40) RailWay1: ___12_3456_7_8_9________________________ (40) RailWay1: ___12_3456__78_9________________________ (40) RailWay2: 4__________________________________________________________________________1_23_ (80) RailWay1: ___1_23456__78_9________________________ (40) RailWay2: 4__________________________________________________________________________12_3_ (80) RailWay1: ___1_23456__78__9_______________________ (40) RailWay2: 4_________________________________________________________________________1_2_3_ (80) RailWay1: ___1_2345_6_78__9_______________________ (40) RailWay1: ___1_2345_6_7_8_9_______________________ (40) RailWay1: ____12345_6_7_8_9_______________________ (40) RailWay1: ____12345_6__78_9_______________________ (40) RailWay1: ____12345_6__78__9______________________ (40) RailWay2: __________________________________________________________________________1_2_34 (80) RailWay1: ____1234_56__78__9______________________ (40) RailWay1: ____123_456__78__9______________________ (40) RailWay1: ____12_3456__78__9______________________ (40) RailWay2: __________________________________________________________________________12__34 (80) RailWay1: ____12_345_6_78__9______________________ (40) RailWay1: ____12_345_6_78___9_____________________ (40) RailWay1: ____12_34_56_78___9_____________________ (40) RailWay1: ____1_234_56_78___9_____________________ (40) RailWay1: _____1234_56_78___9_____________________ (40) RailWay1: _____1234_56_7_8__9_____________________ (40) RailWay1: _____123_456_7_8__9_____________________ (40) RailWay1: _____123_456__78__9_____________________ (40) RailWay1: _____12_3456__78__9_____________________ (40) RailWay1: _____12_345_6_78__9_____________________ (40) RailWay2: _________________________________________________________________________12___34 (80) RailWay2: _________________________________________________________________________12___34 (80) RailWay2: _________________________________________________________________________12__3_4 (80) RailWay2: _________________________________________________________________________12__34_ (80) RailWay2: ________________________________________________________________________1_2__34_ (80) RailWay2: ________________________________________________________________________1_2_3_4_ (80) RailWay1: _____12_34_56_78__9_____________________ (40) RailWay1: _____12_34_56_78___9____________________ (40) RailWay1: _____1_23_456_78___9____________________ (40) RailWay1: _____1_2_3456_78___9____________________ (40) RailWay1: _____1_2_3456_78____9___________________ (40) RailWay1: _____1_2_3456_78____9___________________ (40) RailWay2: _______________________________________________________________________1__2_3_4_ (80) RailWay1: _____1_2_3456_7_8___9___________________ (40) RailWay1: _____1_2_3456__78___9___________________ (40) RailWay2: _______________________________________________________________________1__23__4_ (80) RailWay1: _____1_2_345_6_78___9___________________ (40) RailWay1: ______12_345_6_78___9___________________ (40) RailWay2: _______________________________________________________________________1_2_3__4_ (80) RailWay1: ______12_345__678___9___________________ (40) RailWay2: _______________________________________________________________________1_2_3_4__ (80) RailWay1: ______12_345__678____9__________________ (40) RailWay2: ______________________________________________________________________1__2_3_4__ (80) RailWay1: ______12_345__678_____9_________________ (40) RailWay2: ______________________________________________________________________1_2__3_4__ (80) RailWay1: ______12_345__67_8____9_________________ (40) RailWay1: ______12_345__6_78____9_________________ (40) RailWay1: ______12_345__6_78_____9________________ (40) RailWay2: ______________________________________________________________________1_2_3__4__ (80) RailWay1: ______12_3_45_6_78_____9________________ (40) RailWay1: ______12_3_45_6_78_____9________________ (40) RailWay1: ______12__345_6_78_____9________________ (40) RailWay1: _______12_345_6_78_____9________________ (40) RailWay1: _______12_345_6_78_____9________________ (40) RailWay2: ______________________________________________________________________12__3__4__ (80) RailWay1: _______12_345_6_78______9_______________ (40) RailWay1: _______12_345_6_7_8_____9_______________ (40) RailWay1: _______12_345_6__78_____9_______________ (40) RailWay1: _______12_345_6__78______9______________ (40) RailWay1: _______12_345__6_78______9______________ (40) RailWay1: _______12_34_5_6_78______9______________ (40) RailWay1: _______12_3_45_6_78______9______________ (40) RailWay1: _______12__345_6_78______9______________ (40) RailWay2: ______________________________________________________________________12__3_4___ (80) RailWay2: _____________________________________________________________________1_2__3_4___ (80) RailWay1: ________12_345_6_78______9______________ (40) RailWay1: ________12_345_6_78______9______________ (40) RailWay2: _____________________________________________________________________12___3_4___ (80) RailWay1: ________12_34_56_78______9______________ (40) RailWay2: _____________________________________________________________________12__3__4___ (80) RailWay2: ____________________________________________________________________1_2__3__4___ (80) RailWay1: ________12_34_56_78_______9_____________ (40) RailWay1: ________1_234_56_78_______9_____________ (40) RailWay1: ________1_234_56_7_8______9_____________ (40) RailWay1: ________1_234_56__78______9_____________ (40) RailWay1: _________1234_56__78______9_____________ (40) RailWay2: ____________________________________________________________________1_2_3___4___ (80) RailWay1: _________123_456__78______9_____________ (40) RailWay1: _________123_45_6_78______9_____________ (40) RailWay2: ____________________________________________________________________12__3___4___ (80) RailWay1: _________123_4_56_78______9_____________ (40) RailWay2: ____________________________________________________________________12__3__4____ (80) RailWay1: _________12_34_56_78______9_____________ (40) RailWay1: _________12_3_456_78______9_____________ (40) RailWay1: _________1_23_456_78______9_____________ (40) RailWay1: _________1_23_456_7_8_____9_____________ (40) RailWay2: ___________________________________________________________________1_2__3__4____ (80) RailWay1: __________123_456_7_8_____9_____________ (40) RailWay1: __________123_4_567_8_____9_____________ (40) RailWay1: __________123_4_567_8_____9_____________ (40) RailWay2: ___________________________________________________________________1_2_3___4____ (80) RailWay1: __________123_4_567_8______9____________ (40) RailWay1: __________123_4_567__8_____9____________ (40) RailWay2: ___________________________________________________________________1_23____4____ (80) RailWay1: __________123_4_56_7_8_____9____________ (40) RailWay2: ___________________________________________________________________1_23___4_____ (80) RailWay2: ___________________________________________________________________12_3___4_____ (80) RailWay1: __________123__456_7_8_____9____________ (40) RailWay2: __________________________________________________________________1_2_3___4_____ (80) RailWay1: __________12_3_456_7_8_____9____________ (40) RailWay2: __________________________________________________________________1_23____4_____ (80) RailWay1: __________12_3_456_7_8______9___________ (40) RailWay1: __________1_23_456_7_8______9___________ (40) RailWay1: ___________123_456_7_8______9___________ (40) RailWay2: _________________________________________________________________1__23____4_____ (80) RailWay1: ___________123_456_7__8_____9___________ (40) RailWay1: ___________123_45_67__8_____9___________ (40) RailWay1: ___________123_4_567__8_____9___________ (40) RailWay2: _________________________________________________________________1_23_____4_____ (80) RailWay2: _________________________________________________________________1_23_____4_____ (80) RailWay1: ___________123_4_567__8______9__________ (40) RailWay1: ___________123_4_56_7_8______9__________ (40) RailWay2: _________________________________________________________________1_23____4______ (80) RailWay1: ___________12_34_5_67_8______9__________ (40) RailWay1: ___________12_3_45_67_8______9__________ (40) RailWay1: ___________1_23_45_67_8______9__________ (40) RailWay1: ___________1_23_4_567_8______9__________ (40) RailWay1: ___________1_23_4_567_8______9__________ (40) RailWay1: ____________123_4_567_8______9__________ (40) RailWay1: ____________123__4567_8______9__________ (40) RailWay2: ________________________________________________________________1__23____4______ (80) RailWay2: ________________________________________________________________1__23___4_______ (80) RailWay1: ____________123__456_78______9__________ (40) RailWay1: ____________123__456_7_8_____9__________ (40) RailWay1: ____________123__4_567_8_____9__________ (40) RailWay1: ____________123__4_567_8_____9__________ (40) RailWay1: ____________123___4567_8_____9__________ (40) RailWay2: ________________________________________________________________1_23____4_______ (80) RailWay2: ________________________________________________________________1_23____4_______ (80) RailWay2: ________________________________________________________________1_23___4________ (80) RailWay1: ____________123___456_78_____9__________ (40) RailWay1: ____________123___456_7_8____9__________ (40) RailWay2: _______________________________________________________________1__23___4________ (80) RailWay1: ____________123___45_67_8____9__________ (40) RailWay2: _______________________________________________________________1__23__4_________ (80) RailWay2: _______________________________________________________________1_23___4_________ (80) RailWay2: _______________________________________________________________1_23___4_________ (80) RailWay2: ______________________________________________________________1__23___4_________ (80) RailWay1: ____________1_23__45_67_8____9__________ (40) RailWay1: ____________1_23__45_67_8____9__________ (40) RailWay1: _____________123__45_67_8____9__________ (40) RailWay2: _____________________________________________________________1___23___4_________ (80) RailWay2: _____________________________________________________________1__2_3___4_________ (80) RailWay2: _____________________________________________________________1__23____4_________ (80) RailWay1: _____________12_3_45_67_8____9__________ (40) RailWay1: _____________12_3_4_567_8____9__________ (40) RailWay1: _____________12_3__4567_8____9__________ (40) RailWay1: _____________12_3__4567_8_____9_________ (40) RailWay2: _____________________________________________________________1__23___4__________ (80) RailWay1: _____________12_3__4567__8____9_________ (40) RailWay2: _____________________________________________________________1_2_3___4__________ (80) RailWay1: _____________12_3__456_7_8____9_________ (40) RailWay1: _____________12__3_456_7_8____9_________ (40) RailWay2: _____________________________________________________________1_2_3__4___________ (80) RailWay1: _____________12__3_4_567_8____9_________ (40) RailWay1: _____________12__3_4_567_8____9_________ (40) RailWay1: _____________12__3_4_567_8_____9________ (40) RailWay2: _____________________________________________________________1_23___4___________ (80) RailWay2: ____________________________________________________________1__23___4___________ (80) RailWay1: _____________1_2_3_4_567_8_____9________ (40) RailWay1: ______________12_3_4_567_8_____9________ (40) RailWay2: ____________________________________________________________1__23__4____________ (80) RailWay1: ______________12_3_4_567__8____9________ (40) RailWay2: ___________________________________________________________1___23__4____________ (80) RailWay2: ___________________________________________________________1__23___4____________ (80) RailWay2: ___________________________________________________________1__23___4____________ (80) RailWay1: ______________12_3__4567__8____9________ (40) RailWay1: ______________12__3_4567__8____9________ (40) RailWay2: ___________________________________________________________1__23__4_____________ (80) RailWay1: ______________12__3_45_67_8____9________ (40) RailWay1: ______________12__3_4_567_8____9________ (40) RailWay1: ______________12__3_4_567_8____9________ (40) RailWay1: ______________12__3_4_567_8_____9_______ (40) RailWay2: __________________________________________________________1___23__4_____________ (80) RailWay1: ______________12___34_567_8_____9_______ (40) RailWay2: __________________________________________________________1___23_4______________ (80) RailWay1: ______________12___3_4567_8_____9_______ (40) RailWay1: ______________12____34567_8_____9_______ (40) RailWay1: ______________1_2___34567_8_____9_______ (40) RailWay2: _________________________________________________________1____23_4______________ (80) RailWay1: ______________1_2___3456_78_____9_______ (40) RailWay2: _________________________________________________________1___23__4______________ (80) RailWay2: _________________________________________________________1___23__4______________ (80) RailWay1: ______________1_2___3456_7_8____9_______ (40) RailWay1: ______________1_2___3456_7__8___9_______ (40) RailWay2: ________________________________________________________1____23__4______________ (80) RailWay1: _______________12___3456_7__8___9_______ (40) RailWay1: _______________12___3456__7_8___9_______ (40) RailWay1: _______________12___3456__7__8__9_______ (40) RailWay1: _______________12___345_6_7__8__9_______ (40) RailWay2: ________________________________________________________1___2_3__4______________ (80) RailWay1: _______________12___34_56_7__8__9_______ (40) RailWay2: ________________________________________________________1___2_3_4_______________ (80) RailWay1: _______________12___34_56_7__8___9______ (40) RailWay1: _______________1_2__34_56_7__8___9______ (40) RailWay1: _______________1__2_34_56_7__8___9______ (40) RailWay1: _______________1__2_3_456_7__8___9______ (40) RailWay1: _______________1__2__3456_7__8___9______ (40) RailWay1: ________________1_2__3456_7__8___9______ (40) RailWay2: _______________________________________________________1____2_3_4_______________ (80) RailWay2: _______________________________________________________1___2__3_4_______________ (80) RailWay1: ________________1_2__3456_7__8____9_____ (40) RailWay2: _______________________________________________________1___2__34________________ (80) RailWay1: ________________1_2__3456_7___8___9_____ (40) RailWay1: _________________12__3456_7___8___9_____ (40) RailWay1: _________________12__3456_7___8____9____ (40) RailWay2: _______________________________________________________1___2_3_4________________ (80) RailWay2: _______________________________________________________1___2_34_________________ (80) RailWay1: _________________12__345_67___8____9____ (40) RailWay1: _________________1_2_345_67___8____9____ (40) RailWay2: _______________________________________________________1__2__34_________________ (80) RailWay1: _________________1_2_345_6_7__8____9____ (40) RailWay1: _________________1_2_3_456_7__8____9____ (40) RailWay1: _________________1_2_3_456_7__8____9____ (40) RailWay1: _________________1_2__3456_7___8___9____ (40) RailWay1: _________________1_2__345_67___8___9____ (40) RailWay1: _________________1_2__345_67___8___9____ (40) RailWay2: _______________________________________________________1__2_3_4_________________ (80) RailWay2: _______________________________________________________1_2__3_4_________________ (80) RailWay2: _______________________________________________________12___3_4_________________ (80) RailWay2: _______________________________________________________12__3__4_________________ (80) RailWay1: _________________1_2__34_567___8___9____ (40) RailWay2: ______________________________________________________1_2__3__4_________________ (80) RailWay1: __________________12__34_567___8___9____ (40) RailWay1: __________________1_2_34_567___8___9____ (40) RailWay2: ______________________________________________________1_2_3___4_________________ (80) RailWay1: __________________1_2_34_567____8__9____ (40) RailWay1: ___________________12_34_567____8__9____ (40) RailWay1: ___________________12_3_4567____8__9____ (40) RailWay1: ___________________12_3_4567____8___9___ (40) RailWay2: ______________________________________________________1_2_3__4__________________ (80) RailWay2: ______________________________________________________12__3__4__________________ (80) RailWay1: ___________________12_3_4567_____8__9___ (40) RailWay2: _____________________________________________________12___3__4__________________ (80) RailWay2: _____________________________________________________12___3__4__________________ (80) RailWay1: ___________________12_3_4567______8__9__ (40) RailWay1: ___________________12_3_4567______8__9__ (40) RailWay2: ____________________________________________________1_2___3__4__________________ (80) RailWay1: ___________________12_3_456_7_____8__9__ (40) RailWay1: ___________________12_3_45_67_____8__9__ (40) RailWay1: ___________________12_3_4_567_____8__9__ (40) RailWay1: ___________________12_3__4567_____8__9__ (40) RailWay1: ___________________12__3_4567_____8__9__ (40) RailWay2: ____________________________________________________12____3__4__________________ (80) RailWay1: ___________________1_2_3_4567_____8__9__ (40) RailWay2: ___________________________________________________1_2____3__4__________________ (80) RailWay1: ____________________12_3_4567_____8__9__ (40) RailWay2: ___________________________________________________1_2____3_4___________________ (80) RailWay2: ___________________________________________________1_2___3__4___________________ (80) RailWay2: ___________________________________________________1_2___3_4____________________ (80) RailWay1: ____________________12__34567_____8__9__ (40) RailWay1: ____________________1_2_34567_____8__9__ (40) RailWay1: _____________________12_34567_____8__9__ (40) RailWay1: _____________________12_34567_____8___9_ (40) RailWay2: ___________________________________________________1_2___34_____________________ (80) RailWay2: ___________________________________________________12____34_____________________ (80) RailWay1: _____________________12_34567______8__9_ (40) RailWay2: __________________________________________________1_2____34_____________________ (80) RailWay1: ______________________1234567______8__9_ (40) RailWay1: ______________________1234567______8__9_ (40) RailWay1: ______________________123456_7_____8__9_ (40) RailWay2: __________________________________________________1_2___3_4_____________________ (80) RailWay1: ______________________1234_567_____8__9_ (40) RailWay1: ______________________1234_567_____8__9_ (40) RailWay1: ______________________123_4567_____8__9_ (40) RailWay1: ______________________123_4567_____8___9 (40) RailWay2: __________________________________________________12____3_4_____________________ (80) RailWay1: ______________________12_34567_____8___9 (40) RailWay1: 9_____________________12_34567_____8____ (40) RailWay2: __________________________________________________12____34______________________ (80) RailWay1: 9_____________________12_34567______8___ (40) RailWay1: _9____________________12_34567______8___ (40) RailWay1: _9_____________________1234567______8___ (40) RailWay1: _9_____________________1234567______8___ (40) RailWay1: _9_____________________123456_7_____8___ (40) RailWay1: _9_____________________12345_67_____8___ (40) RailWay1: _9_____________________1234_567_____8___ (40) RailWay1: _9_____________________123_4567_____8___ (40) RailWay1: _9_____________________12_34567_____8___ (40) RailWay2: _________________________________________________12_____34______________________ (80) RailWay2: _________________________________________________12_____34______________________ (80) RailWay2: _________________________________________________12____3_4______________________ (80) RailWay1: _9_____________________1_234567_____8___ (40) RailWay2: _________________________________________________12____34_______________________ (80) RailWay1: _9_____________________1_234567______8__ (40) RailWay1: _9_____________________1_23456_7_____8__ (40) RailWay1: _9_____________________1_2345_67_____8__ (40) RailWay1: _9_____________________1_234_567_____8__ (40) RailWay1: _9_____________________1_23_4567_____8__ (40) RailWay1: _9_____________________1_2_34567_____8__ (40) RailWay1: _9_____________________1_2_3456_7____8__ (40) RailWay1: _9_____________________1_2_3456_7_____8_ (40) RailWay2: _________________________________________________12___3_4_______________________ (80) RailWay1: _9_____________________1_2_3456__7____8_ (40) RailWay1: __9____________________1_2_3456__7____8_ (40) RailWay1: __9_____________________12_3456__7____8_ (40) RailWay2: _________________________________________________12__3__4_______________________ (80) RailWay1: __9_____________________1_23456__7____8_ (40) RailWay2: ________________________________________________1_2__3__4_______________________ (80) RailWay2: ________________________________________________12___3__4_______________________ (80) RailWay2: ________________________________________________12___3_4________________________ (80) RailWay1: __9_____________________1_2345_6_7____8_ (40) RailWay1: __9_____________________1_234_56_7____8_ (40) RailWay1: __9_____________________1_23_456_7____8_ (40) RailWay1: __9_____________________1_23_456__7___8_ (40) RailWay2: _______________________________________________1_2___3_4________________________ (80) RailWay2: _______________________________________________1_2___34_________________________ (80) RailWay1: __9_____________________1_23_456__7____8 (40) RailWay1: ___9____________________1_23_456__7____8 (40) RailWay2: _______________________________________________1_2__3_4_________________________ (80) RailWay1: ___9____________________1_2_3456__7____8 (40) RailWay1: ___9____________________1__23456__7____8 (40) RailWay1: ___9_____________________1_23456__7____8 (40) RailWay2: _______________________________________________12___3_4_________________________ (80) RailWay1: ____9____________________1_23456__7____8 (40) RailWay1: ____9_____________________123456__7____8 (40) RailWay2: ______________________________________________1_2___3_4_________________________ (80) RailWay2: ______________________________________________1_2__3__4_________________________ (80) RailWay1: 8___9_____________________123456__7_____ (40) RailWay1: 8___9_____________________12345_6_7_____ (40) RailWay1: _8__9_____________________12345_6_7_____ (40) RailWay1: _8__9_____________________1234_56_7_____ (40) RailWay1: _8__9_____________________123_456_7_____ (40) RailWay1: _8__9_____________________12_3456_7_____ (40) RailWay1: _8__9_____________________1_23456_7_____ (40) RailWay1: _8__9_____________________1_23456__7____ (40) RailWay2: ______________________________________________1_2__3_4__________________________ (80) RailWay1: _8__9_____________________1_23456___7___ (40) RailWay2: ______________________________________________12___3_4__________________________ (80) RailWay1: __8_9_____________________1_23456___7___ (40) RailWay2: _____________________________________________1_2___3_4__________________________ (80) RailWay1: __8_9______________________123456___7___ (40) RailWay2: ____________________________________________1__2___3_4__________________________ (80) RailWay1: ___89______________________123456___7___ (40) RailWay2: ____________________________________________1__2__3__4__________________________ (80) RailWay1: ___8_9_____________________123456___7___ (40) RailWay1: ___8_9_____________________12345_6__7___ (40) RailWay1: ___8_9_____________________1234_56__7___ (40) RailWay1: ___8_9_____________________12_3456__7___ (40) RailWay1: ___8_9_____________________12_3456__7___ (40) RailWay1: ___8_9______________________123456__7___ (40) RailWay1: ___8_9______________________123456__7___ (40) RailWay1: ___8__9_____________________123456__7___ (40) RailWay2: ___________________________________________1___2__3__4__________________________ (80) RailWay1: ___8__9_____________________12345_6_7___ (40) RailWay2: ___________________________________________1___2__3_4___________________________ (80) RailWay1: ___8__9_____________________1234_56_7___ (40) RailWay2: ___________________________________________1___2__34____________________________ (80) RailWay1: ___8__9_____________________1234_56__7__ (40) RailWay1: ____8_9_____________________1234_56__7__ (40) RailWay2: ___________________________________________1__2___34____________________________ (80) RailWay1: ____8_9_____________________123_456__7__ (40) RailWay1: ____8_9_____________________1_23456__7__ (40) RailWay1: ____8_9_____________________1_23456__7__ (40) RailWay1: ____8_9______________________123456__7__ (40) RailWay1: ____8_9______________________12345_6_7__ (40) RailWay2: ___________________________________________1__2__3_4____________________________ (80) RailWay2: __________________________________________1___2__3_4____________________________ (80) RailWay2: __________________________________________1__2___3_4____________________________ (80) RailWay1: ____8__9_____________________12345_6_7__ (40) RailWay2: __________________________________________1_2____3_4____________________________ (80) RailWay2: _________________________________________1__2____3_4____________________________ (80) RailWay2: _________________________________________1__2___3__4____________________________ (80) RailWay1: ____8__9_____________________1234_56_7__ (40) RailWay2: _________________________________________1_2____3__4____________________________ (80) RailWay2: _________________________________________1_2___3___4____________________________ (80) RailWay1: ____8__9_____________________1234_56__7_ (40) RailWay1: ____8__9_____________________123_456__7_ (40) RailWay1: ____8__9_____________________12_3456__7_ (40) RailWay1: ____8__9______________________123456__7_ (40) RailWay1: ____8__9______________________123456__7_ (40) RailWay1: _____8_9______________________123456__7_ (40) RailWay2: _________________________________________1_2___3__4_____________________________ (80) RailWay2: _________________________________________1_2___3_4______________________________ (80) RailWay1: _____8_9______________________12345_6_7_ (40) RailWay1: _____8_9______________________1234_56_7_ (40) RailWay1: ______89______________________1234_56_7_ (40) RailWay1: ______89______________________123_456_7_ (40) RailWay1: ______89______________________123_456__7 (40) RailWay1: ______8_9_____________________123_456__7 (40) RailWay1: ______8__9____________________123_456__7 (40) RailWay2: ________________________________________1__2___3_4______________________________ (80) RailWay2: ________________________________________1_2____3_4______________________________ (80) RailWay1: ______8__9____________________1_23456__7 (40) RailWay1: ______8__9____________________1_23456__7 (40) RailWay1: ______8__9____________________1_2345_6_7 (40) RailWay1: ______8__9____________________1_234_56_7 (40) RailWay1: ______8__9_____________________1234_56_7 (40) RailWay2: ________________________________________1_2___3__4______________________________ (80) RailWay1: ______8__9_____________________1234_5_67 (40) RailWay1: ______8__9_____________________1234__567 (40) RailWay1: ______8___9____________________1234__567 (40) RailWay1: ______8___9____________________123_4_567 (40) RailWay2: _______________________________________1__2___3__4______________________________ (80) RailWay1: _______8__9____________________123_4_567 (40) RailWay2: _______________________________________1__2___3_4_______________________________ (80) RailWay1: 7______8__9____________________123_4_56_ (40) RailWay2: _______________________________________1_2____3_4_______________________________ (80) RailWay2: _______________________________________1_2___3__4_______________________________ (80) RailWay1: 7______8__9____________________12_34_56_ (40) RailWay1: 7______8__9____________________1_234_56_ (40) RailWay1: _7_____8__9_____________________1234_56_ (40) RailWay1: _7______8_9_____________________1234_56_ (40) RailWay1: _7______8_9_____________________1234_56_ (40) RailWay1: _7______8_9_____________________1234_5_6 (40) RailWay2: _______________________________________1_2___3_4________________________________ (80) RailWay1: _7______8_9_____________________123_45_6 (40) RailWay1: _7______8__9____________________123_45_6 (40) RailWay2: _______________________________________12____3_4________________________________ (80) RailWay1: _7_______8_9____________________123_45_6 (40) RailWay2: ______________________________________1_2____3_4________________________________ (80) RailWay2: ______________________________________12_____3_4________________________________ (80) RailWay2: ______________________________________12____3__4________________________________ (80) RailWay1: _7_______8_9____________________12_345_6 (40) RailWay1: _7_______8_9____________________1_2345_6 (40) RailWay1: _7_______8_9____________________1_23_456 (40) RailWay1: _7_______8_9____________________1_23_456 (40) RailWay1: _7_______8_9_____________________123_456 (40) RailWay1: _7________89_____________________123_456 (40) RailWay1: __7_______89_____________________123_456 (40) RailWay1: 6_7_______89_____________________123_45_ (40) RailWay2: ______________________________________12____3_4_________________________________ (80) RailWay1: 6_7_______89_____________________123_4_5 (40) RailWay1: 6_7_______8_9____________________123_4_5 (40) RailWay2: _____________________________________1_2____3_4_________________________________ (80) RailWay2: ____________________________________1__2____3_4_________________________________ (80) RailWay1: 6_7_______8_9____________________123__45 (40) RailWay1: 6_7_______8_9____________________12_3_45 (40) RailWay1: 6_7_______8_9____________________1_23_45 (40) RailWay2: ___________________________________1___2____3_4_________________________________ (80) RailWay1: 6_7_______8__9___________________1_23_45 (40) */