Ок поствам я.Задачата е готова.Има общо 5 пакета(папки)Задачата се отнася за една сграда със колко стаи и коридори е и кой е най лесния маршрут.Аз искам да знам във всеки пакет какво правим защото преподавателя това ще ме пита.

ПАКЕТ 1-Building
package ooe;

import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;

public class Building {
private ArrayList<Hallway>hallways=new ArrayList<Hallway>();
private ArrayList<Room>rooms=new ArrayList<Room>();
private ArrayList<Route>routs=new ArrayList<Route>();

private Room entrance;
private Room exit;



public Building(String dataFile){
Path file=Paths.get(dataFile);
ArrayList<String> data=FileWorker.readFile(file);
build(data);

ArrayList<Room> route=new ArrayList<Room>();
route.add(this.entrance);
this.findRoute(route);



}


private void build (ArrayList<String> data){
for(int index=0;index<data.size();index++){
String line=data.get(index);
String []lineArray=line.split("\t");
String name=lineArray[0];
int difficulty=Integer.parseInt(lineArray[1]);
Room room=new Room(name, difficulty);
this.rooms.add(room);

}

for (int index=0;index<data.size();index++){
String line=data.get(index);
String [] lineArray=line.split("\t");
ПАКЕТ 2-fileWorker
package ooe;

import java.io.BufferedReader;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.ArrayList;

public class FileWorker {

public static ArrayList<String> readFile (Path file){
file=file.toAbsolutePath();
file=file.normalize();
ArrayList<String> data=new ArrayList<String>();

try {
BufferedReader reader=Files.newBufferedReader(file, StandardCharsets.UTF_;
String line=reader.readLine();
while (line!=null){
data.add(line);
line=reader.readLine();
}
reader.close();
}
catch (IOException exception){
exception.printStackTrace();
return null;
}
return data;
}

Пакет 3 -hallway
package ooe;

public class Hallway {

private int length;
private Room start;
private Room end;

public Hallway (int length){
this.length=length;
}

public int getLength() {
return length;
}

public void setLength(int length) {
this.length = length;
}


public Room getStart() {
return start;
}

public void setStart(Room start) {
if (this.start==start)return;
this.start = start;
start.addExit(this);
}

public Room getEnd() {
return end;
}

public void setEnd(Room end) {
if(this.end==end)return;
this.end = end;
end.addEntrance(this);
}

@Override

public String toString (){
StringBuilder builder=new StringBuilder();
builder.append(this.length);
builder.append('-');

Пакет 4 -main
ackage ooe;

import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;

public class Main {

public static void main(String[]args){

/*Room room=new Room("A", 0);
Room room2=new Room("B", 7);
Hallway hallway=new Hallway(6);
hallway.setStart(room);
hallway.setEnd(room2);
Room room3=new Room("C", 2);
Hallway hallway2=new Hallway(;
hallway2.setStart(room);
hallway2.setEnd(room3);
System.out.println(room);
System.out.println(room2);
System.out.println(room3);*/

Building building= new Building("input.txt");

building.print();


}

Пакет 5 -room
package ooe;

import java.util.ArrayList;

public class Room {

private String name;
private int difficulty;
private ArrayList<Hallway> entrances =new ArrayList<Hallway>();
private ArrayList<Hallway> exits = new ArrayList<Hallway>();

public Room (String name,int difficulty){
this.name=name;
this.difficulty=difficulty;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getDifficulty() {
return difficulty;
}

public ArrayList<Hallway> getEntrances() {
return entrances;
}

public Hallway getExit (Room exit){
for (int index=0;index<this.exits.size();index++){
Hallway hallway=this.exits.get(index);
if(hallway.getEnd()==exit){
return hallway;
}

}
return null;

}

public void addEntrance(Hallway entrance) {
if(this.entrances.contains(entrance))return;
this.entrances.add(entrance);

Пакет 6- route

package ooe;

import java.util.ArrayList;

public class Route {

private ArrayList<Room> rooms;
private int length;
private int difficulty;


public Route(ArrayList<Room> rooms){
this.rooms=rooms;
this.build();

}

private void build(){
this.difficulty=0;
for(int index=0;index<this.rooms.size();index++){
Room room=this.rooms.get(index);
int roomDifficulty=room.getDifficulty();
this.difficulty=this.difficulty+roomDifficulty;
}

this.length=0;
for (int index=0;index<this.rooms.size()-1;index++){
Room start=this.rooms.get(index);
Room end=this.rooms.get(index+1);
Hallway hallway=start.getExit(end);
int length=hallway.getLength();
this.length=this.length+length;
}
}

public ArrayList<Room> getRooms() {
return rooms;
}

public int getLength() {
return length;
}


.Това е ,доста е голяма ако можеш да ми помогнеш ще се радвам.Искам да знам във всеки пакет какво се случва на всеки ред Извинявай че ще ти отнема време