implemented calculate winner and needed int in in car to hold winpoints.

This commit is contained in:
Leonardo Brandenberger 2022-03-18 09:51:11 +01:00
parent e94053fee8
commit b606f20d9f
2 changed files with 28 additions and 12 deletions

View File

@ -24,6 +24,10 @@ public class Car implements CarSpecification {
* Current position of the car on the track grid using a {@link PositionVector} * Current position of the car on the track grid using a {@link PositionVector}
*/ */
private PositionVector position; private PositionVector position;
/**
* Points that car is holding for determining winner.
*/
private int winPoints;
/** /**
* Current velocity of the car using a {@link PositionVector} * Current velocity of the car using a {@link PositionVector}
@ -59,6 +63,18 @@ public class Car implements CarSpecification {
return id; return id;
} }
public void increaseWinPoints() {
winPoints ++;
}
public void deductWinPoints() {
winPoints --;
}
public int getWinPoints() {
return winPoints;
}
/** /**
* Returns the current velocity of the car as a PositionVector. * Returns the current velocity of the car as a PositionVector.
* *

View File

@ -266,42 +266,42 @@ public class Game implements GameSpecification {
return pathList; return pathList;
} }
private void calculateWinner(PositionVector start, PositionVector finish, int carIndex ){ private void calculateWinner(PositionVector start, PositionVector finish, int carIndex ) {
List<PositionVector> path = calculatePath(start, finish); List<PositionVector> path = calculatePath(start, finish);
for (PositionVector point : path){ for (PositionVector point : path){
switch (track.getSpaceType(point)) { switch (track.getSpaceType(point)) {
case FINISH_UP: case FINISH_UP:
if(start.getY() < finish.getY()) { if(start.getY() < finish.getY()) {
//track.getCar(carIndex).addWinPoint; track.getCar(carIndex).increaseWinPoints();
//TODO: add point
} }
else if( start.getY() < finish.getY()) { else if(start.getY() < finish.getY()) {
//TODO: deduct point track.getCar(carIndex).deductWinPoints();
} }
break; break;
case FINISH_DOWN: case FINISH_DOWN:
if(start.getY() > finish.getY()){ if(start.getY() > finish.getY()){
//track.getCar(carIndex).addWinPoint; track.getCar(carIndex).increaseWinPoints();
} }
else if (start.getY() < finish.getY()){ else if (start.getY() < finish.getY()){
track.getCar(carIndex).deductWinPoints();
} }
break; break;
case FINISH_RIGHT: case FINISH_RIGHT:
if(start.getX() < finish.getX()){ if(start.getX() < finish.getX()){
//track.getCar(carIndex).addWinPoint; track.getCar(carIndex).increaseWinPoints();
} }
else if (start.getX() < finish.getX()){ else if (start.getX() < finish.getX()){
track.getCar(carIndex).deductWinPoints();
} }
break; break;
case FINISH_LEFT: case FINISH_LEFT:
if(start.getX() > finish.getX()){ if(start.getX() > finish.getX()){
//track.getCar(carIndex).addWinPoint; track.getCar(carIndex).increaseWinPoints();
} }
else if (start.getX() < finish.getX()){ else if (start.getX() < finish.getX()){
track.getCar(carIndex).increaseWinPoints();
} }
break;
} }
} }