Track feature #21
|
@ -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,7 +139,6 @@ 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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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();
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue