Game #23
|
@ -82,8 +82,7 @@ public class Game implements GameSpecification {
|
|||
*/
|
||||
@Override
|
||||
public int getCurrentCarIndex() {
|
||||
// TODO: implementation
|
||||
throw new UnsupportedOperationException();
|
||||
return currentCarIndex;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -163,8 +162,12 @@ public class Game implements GameSpecification {
|
|||
*/
|
||||
@Override
|
||||
public void switchToNextActiveCar() {
|
||||
// TODO: implementation
|
||||
throw new UnsupportedOperationException();
|
||||
do {
|
||||
if (currentCarIndex++ > track.getCarCount()) {
|
||||
currentCarIndex = 0;
|
||||
}
|
||||
} while (track.getCar(currentCarIndex).isCrashed());
|
||||
// TODO: evtl andere Kapselung
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -181,7 +184,7 @@ public class Game implements GameSpecification {
|
|||
*/
|
||||
@Override
|
||||
public List<PositionVector> calculatePath(PositionVector startPosition, PositionVector endPosition) {
|
||||
ArrayList pathList = new ArrayList<PositionVector>();
|
||||
ArrayList<PositionVector> pathList = new ArrayList<>();
|
||||
// Use Bresenham's algorithm to determine positions.
|
||||
int x = startPosition.getX();
|
||||
int y = startPosition.getY();
|
||||
|
@ -246,7 +249,13 @@ public class Game implements GameSpecification {
|
|||
@Override
|
||||
public boolean willCarCrash(int carIndex, PositionVector position) {
|
||||
|
||||
List<PositionVector> positionList = calculatePath(track.getCarPos(carIndex),position);
|
||||
for(PositionVector location : positionList) {
|
||||
if(track.willCrashAtPosition(location)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue