Strategy #31

Merged
schrom01 merged 24 commits from Strategy into main 2022-03-25 09:24:21 +01:00
1 changed files with 76 additions and 0 deletions
Showing only changes of commit 0b423b759e - Show all commits

View File

@ -0,0 +1,76 @@
package ch.zhaw.pm2.racetrack.strategy;
import ch.zhaw.pm2.racetrack.PositionVector;
import ch.zhaw.pm2.racetrack.Track;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
public class PathFinderStrategy implements MoveStrategy{
private ArrayList<tryOutPaths> possiblePaths;
private Track track;
List<PositionVector.Direction> directions = Arrays.asList(PositionVector.Direction.values());
public PathFinderStrategy(Track track, int carIndex) {
this.track = track;
possiblePaths = new ArrayList<>();
}
private void test(){
ArrayList<tryOutPaths> temporary = new ArrayList<>();
Iterator<tryOutPaths> it = possiblePaths.iterator();
while(it.hasNext()) {
tryOutPaths current = it.next();
if (!current.isFeasible()) {
it.remove();
}
else {
for (PositionVector.Direction direction : directions) {
temporary.add(current);
temporary.get(temporary.size() - 1).takeDirection(direction);
}
}
}
//ab hier zu löschen
for (tryOutPaths paths : possiblePaths){
for (PositionVector.Direction direction : directions) {
temporary.add(paths);
temporary.get(temporary.size() - 1).takeDirection(direction);
}
}
//bis hier löschen
possiblePaths.clear();
possiblePaths.addAll(temporary);
}
@Override
public PositionVector.Direction nextMove() {
return null;
}
public class tryOutPaths {
ArrayList<PositionVector.Direction> directionsTaken = new ArrayList<>();
PositionVector currentPosition;
Track track;
private boolean feasible;
private boolean finished;
public tryOutPaths(Track track){
this.track = track;
}
public boolean isFeasible(){
return feasible;
}
public void takeDirection(PositionVector.Direction direction) {
if(directionsTaken.size() >= 50){
feasible = false;
}
else if(finished){
}
else {
//check if possible eventuell hier??
directionsTaken.add(direction);
}
}
}
}