import java.util.*; public class Game { private Map map; private ArrayList stations; private ArrayList lines; private ArrayList trains; private ArrayList passengers; private int possibleLines; private final int MAX_LINES = 5; private Scanner scanner; public Game(Map map) { this.map = map; System.out.println("Vítejte ve hře na mapě " + map.getLocation()); this.lines = new ArrayList<>(); this.stations = new ArrayList<>(); this.passengers = new ArrayList<>(); this.trains = new ArrayList<>(); this.possibleLines = 1; this.scanner = new Scanner(System.in); Timer makeStationTimer = new Timer(); makeStationTimer.schedule(new TimerTask() { @Override public void run() { Station newStation = new Station(); addStation(newStation); System.out.println("Máme novou stanici " + newStation.getIdStation() + " tvaru " + newStation.getStationType()); } },3000,20000); Timer newLineQuery = new Timer(); newLineQuery.schedule(new TimerTask() { @Override public void run() { System.out.println("Chceš vytvořit novou linku? 1 - ANO, 2 - NE"); String lineMaker = scanner.nextLine(); if (lineMaker.equals("1")) { if (possibleLines > 0) { Line line = new Line(); addLine(line); possibleLines--; System.out.println("Vytvořena linka " + line.getColor()+ " s identifátorem " + line.getIdLine()); } else { System.out.println("Linku není možné založit pro nedostatek linek."); } } } },5000, 60000); Timer increasePossibleLines = new Timer(); increasePossibleLines.schedule(new TimerTask() { @Override public void run() { if (lines.size() + possibleLines < MAX_LINES) { possibleLines++; } else { System.out.println("Maximální počet možných linek dosažen!"); cancel(); } } },0, 120000); Timer addStationToLine = new Timer(); addStationToLine.schedule(new TimerTask() { @Override public void run() { try { System.out.println("Chceš přidat zastávku na linku? 1 - ANO, 2 - NE"); int addStationToLine = Integer.parseInt(scanner.nextLine()); if (addStationToLine == 1) { System.out.println("Zadej číslo linky: "); int line = Integer.parseInt(scanner.nextLine()); System.out.println("Budeme přidávat na linku " + line); System.out.println("Zadej ve formátu 'ZASTÁVKA ZASTÁVKA ZASTÁVKA ...' přidané zastávky na linku: "); String addText = scanner.nextLine(); System.out.println("Budeme přidávat zastávky: " + addText); String[] stationsText = addText.split(" "); for (String station : stationsText) { Line solveLine = lines.get(line - 1); Station solveStation = stations.get(Integer.parseInt(station) - 1); solveLine.addStation(solveStation); System.out.println("Na linku " + solveLine.getColor() + " jsme přidali zastávku " + solveStation.getIdStation() + " " + solveStation.getStationType()); } } } catch (NumberFormatException | IndexOutOfBoundsException e) { System.out.println("Chyba při zadávání!"); } } },10000, 60000); Timer lineLogic = new Timer(); lineLogic.schedule(new TimerTask() { @Override public void run() { for (Line line: lines) { System.out.print("Linka " + line.getIdLine() + " jede přes zastávky: "); for (Station station: line.getStations()) { System.out.print(station.getIdStation() + "-" + station.getStationType() + " "); } System.out.println(); } } },30000, 60000); Timer passengerGenerate = new Timer(); passengerGenerate.schedule(new TimerTask() { @Override public void run() { Random random = new Random(); Passenger passenger = new Passenger(); passenger.setStartStation(stations.get(random.nextInt(stations.size()))); addPassenger(passenger); System.out.println("Přidán pasažér " + passenger.getStartStation().getIdStation() + "-" + passenger.getStartStation().getStationType()); } },35000,12000); Timer readPassengers = new Timer(); readPassengers.schedule(new TimerTask() { @Override public void run() { for (Passenger passenger: passengers) { System.out.println("Cestující na stanici " + passenger.getStartStation().getIdStation() +"-" + passenger.getStartStation().getStationType() + " a jede do stanice "+ passenger.getFinalStation()); } } },50000,60000); } private void addLine(Line line) { lines.add(line); } private void addStation(Station station) { stations.add(station); } private void addPassenger(Passenger passenger) { passengers.add(passenger); } }