Track feature #21

Merged
fassband merged 9 commits from track-feature into main 2022-03-11 18:41:11 +01:00
2 changed files with 47 additions and 19 deletions
Showing only changes of commit 571728b6fd - Show all commits

View File

@ -6,6 +6,7 @@ import ch.zhaw.pm2.racetrack.given.TrackSpecification;
import java.io.File; import java.io.File;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Scanner; import java.util.Scanner;
@ -61,6 +62,8 @@ public class Track implements TrackSpecification {
// TODO: Add necessary variables // TODO: Add necessary variables
private List<String> track; private List<String> track;
private List<Car> cars;
/** /**
* Initialize a Track from the given track file. * Initialize a Track from the given track file.
* *
@ -69,7 +72,9 @@ public class Track implements TrackSpecification {
* @throws InvalidTrackFormatException if the track file contains invalid data (no tracklines, ...) * @throws InvalidTrackFormatException if the track file contains invalid data (no tracklines, ...)
*/ */
public Track(File trackFile) throws FileNotFoundException, InvalidTrackFormatException { public Track(File trackFile) throws FileNotFoundException, InvalidTrackFormatException {
// TODO: implementation // TODO:
track = new ArrayList<>();
cars = new ArrayList<>();
readFile(trackFile); readFile(trackFile);
//TODO: throw error again... //TODO: throw error again...
@ -78,20 +83,43 @@ public class Track implements TrackSpecification {
/** /**
* This method reads the File and saves it to the track ArrayList Line by Line * This method reads the File and saves it to the track ArrayList Line by Line
*
* @param trackFile the File where the track has been documented * @param trackFile the File where the track has been documented
* @throws FileNotFoundException if the FilePath is invalid. * @throws FileNotFoundException if the FilePath is invalid.
*/ */
private void readFile(File trackFile) throws FileNotFoundException { private void readFile(File trackFile) throws FileNotFoundException {
track = new ArrayList<>();
Scanner scanner = new Scanner(trackFile); Scanner scanner = new Scanner(trackFile);
while (scanner.hasNextLine()) { while (scanner.hasNextLine()) {
track.add(scanner.nextLine()); track.add(scanner.nextLine());
} }
} }
public void findCar() {
ConfigSpecification.SpaceType[] spaceTypes = ConfigSpecification.SpaceType.values();
ArrayList<Character> allSpaceTypesAsChar = new ArrayList<>();
for (ConfigSpecification.SpaceType spaceType : spaceTypes) {
allSpaceTypesAsChar.add(spaceType.getValue());
}
for (String line : track) {
for (int i = 0; i < line.length(); i++) {
if (!allSpaceTypesAsChar.contains(line.charAt(i))) {
//TODO: CREATE CAR - ADD IT TO CARS - BUT CHECK THAT Symbol is not allready used for another car?
}
}
}
}
private void findFinish() {
//TODO:
}
/** /**
*
* @return the track * @return the track
*/ */
public List<String> getTrack() { public List<String> getTrack() {
@ -111,9 +139,8 @@ public class Track implements TrackSpecification {
char charAtPosition = track.get(position.getY()).charAt(position.getX()); char charAtPosition = track.get(position.getY()).charAt(position.getX());
ConfigSpecification.SpaceType[] spaceTypes = ConfigSpecification.SpaceType.values(); ConfigSpecification.SpaceType[] spaceTypes = ConfigSpecification.SpaceType.values();
for (ConfigSpecification.SpaceType spaceType : spaceTypes) { for (ConfigSpecification.SpaceType spaceType : spaceTypes) {
if(spaceType.getValue() == charAtPosition) { if (spaceType.getValue() == charAtPosition) {
return spaceType; return spaceType;
} }
} }
@ -203,6 +230,11 @@ public class Track implements TrackSpecification {
@Override @Override
public String toString() { public String toString() {
// TODO: implementation // TODO: implementation
throw new UnsupportedOperationException(); String str = "";
for (String line : track) {
str += line+"\n";
}
return str;
//throw new UnsupportedOperationException();
} }
} }

View File

@ -7,9 +7,6 @@ import org.junit.jupiter.api.Test;
import java.io.File; import java.io.File;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import java.util.List;
public class TrackTest { public class TrackTest {
@ -36,20 +33,19 @@ public class TrackTest {
* Dirty test... * Dirty test...
*/ */
@Test @Test
void compareTrack() { void printOutTrack() {
try { System.out.println(trackObj);
List<String> track = trackObj.getTrack();
for (String s: track
) {
System.out.println(s);
}
} catch (Exception e) {
System.err.println("Error in Test compareTrack" + e.getMessage());
}
} }
@Test @Test
void getSpaceTyp() { void getSpaceTyp() {
Assertions.assertEquals(ConfigSpecification.SpaceType.FINISH_RIGHT,trackObj.getSpaceType(new PositionVector(22,24))); Assertions.assertEquals(ConfigSpecification.SpaceType.FINISH_RIGHT,trackObj.getSpaceType(new PositionVector(22,24)));
} }
//TODO:
@Test
void findCarAtInit() {
trackObj.findCar();
}
} }