Strategy #31
			
				
			
		
		
		
	| 
						 | 
					@ -21,11 +21,10 @@ public class PathFinderMoveStrategy implements MoveStrategy{
 | 
				
			||||||
        this.carIndex = carIndex;
 | 
					        this.carIndex = carIndex;
 | 
				
			||||||
        allDirections = Arrays.asList(PositionVector.Direction.values());
 | 
					        allDirections = Arrays.asList(PositionVector.Direction.values());
 | 
				
			||||||
        createMoveList();
 | 
					        createMoveList();
 | 
				
			||||||
        pointer = -1;
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
    private void createMoveList(){
 | 
					    private void createMoveList(){
 | 
				
			||||||
 | 
					        pointer = -1;
 | 
				
			||||||
        calculatedStates = new ArrayList<>();
 | 
					        calculatedStates = new ArrayList<>();
 | 
				
			||||||
        PossibleMove finishedMove = null;
 | 
					        PossibleMove finishedMove = null;
 | 
				
			||||||
        List<PossibleMove> possibleMoves= new ArrayList<>();
 | 
					        List<PossibleMove> possibleMoves= new ArrayList<>();
 | 
				
			||||||
| 
						 | 
					@ -145,6 +144,22 @@ public class PathFinderMoveStrategy implements MoveStrategy{
 | 
				
			||||||
    public PositionVector.Direction nextMove() { //TODO check for crash and recreate movelist if crash
 | 
					    public PositionVector.Direction nextMove() { //TODO check for crash and recreate movelist if crash
 | 
				
			||||||
        pointer += 1;
 | 
					        pointer += 1;
 | 
				
			||||||
        if (pointer < moveList.size()) {
 | 
					        if (pointer < moveList.size()) {
 | 
				
			||||||
 | 
					            PositionVector.Direction direction = moveList.get(pointer);
 | 
				
			||||||
 | 
					            PositionVector currentVelocity = track.getCarVelocity(carIndex);
 | 
				
			||||||
 | 
					            PositionVector newVelocity = new PositionVector(currentVelocity.getX() + direction.vector.getX(), currentVelocity.getY() + direction.vector.getY());
 | 
				
			||||||
 | 
					            PositionVector currentPosition = track.getCarPos(carIndex);
 | 
				
			||||||
 | 
					            PositionVector newPosition = new PositionVector(currentPosition.getX() + newVelocity.getX(), currentPosition.getY() + newVelocity.getY());
 | 
				
			||||||
 | 
					            System.out.println("currentVelocity:" + currentVelocity.getX()+ ","+ currentVelocity.getY());
 | 
				
			||||||
 | 
					            System.out.println("newVelocity:" + newVelocity.getX()+ ","+ newVelocity.getY());
 | 
				
			||||||
 | 
					            for(PositionVector point : track.calculatePointsOnPath(currentPosition, newPosition)){
 | 
				
			||||||
 | 
					                if(track.willCrashAtPosition(carIndex, point)){
 | 
				
			||||||
 | 
					                    createMoveList();
 | 
				
			||||||
 | 
					                    pointer = 0;
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return moveList.get(pointer);
 | 
					            return moveList.get(pointer);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return null;
 | 
					        return null;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue