Game #23

Merged
schrom01 merged 43 commits from Game into main 2022-03-20 16:56:34 +01:00
1 changed files with 15 additions and 6 deletions
Showing only changes of commit e159274085 - Show all commits

View File

@ -82,8 +82,7 @@ public class Game implements GameSpecification {
*/ */
@Override @Override
public int getCurrentCarIndex() { public int getCurrentCarIndex() {
// TODO: implementation return currentCarIndex;
throw new UnsupportedOperationException();
} }
/** /**
@ -163,8 +162,12 @@ public class Game implements GameSpecification {
*/ */
@Override @Override
public void switchToNextActiveCar() { public void switchToNextActiveCar() {
// TODO: implementation do {
throw new UnsupportedOperationException(); 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 @Override
public List<PositionVector> calculatePath(PositionVector startPosition, PositionVector endPosition) { 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. // Use Bresenham's algorithm to determine positions.
int x = startPosition.getX(); int x = startPosition.getX();
int y = startPosition.getY(); int y = startPosition.getY();
@ -246,7 +249,13 @@ public class Game implements GameSpecification {
@Override @Override
public boolean willCarCrash(int carIndex, PositionVector position) { 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 true;
} }
}
return false;
}
} }