Merge remote-tracking branch 'origin/Game' into Game
This commit is contained in:
commit
dd987a5a14
|
@ -1,6 +1,10 @@
|
|||
package ch.zhaw.pm2.racetrack;
|
||||
|
||||
import ch.zhaw.pm2.racetrack.given.GameSpecification;
|
||||
import ch.zhaw.pm2.racetrack.strategy.DoNotMoveStrategy;
|
||||
import ch.zhaw.pm2.racetrack.strategy.MoveListStrategy;
|
||||
import ch.zhaw.pm2.racetrack.strategy.PathFollowerMoveStrategy;
|
||||
import ch.zhaw.pm2.racetrack.strategy.UserMoveStrategy;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
|
@ -17,6 +21,7 @@ import static ch.zhaw.pm2.racetrack.PositionVector.Direction;
|
|||
public class Game implements GameSpecification {
|
||||
public static final int NO_WINNER = -1;
|
||||
private Track track;
|
||||
int currentCarIndex;
|
||||
|
||||
UserInterface userInterface;
|
||||
|
||||
|
@ -24,15 +29,50 @@ public class Game implements GameSpecification {
|
|||
userInterface = new UserInterface(welcometext);
|
||||
}
|
||||
|
||||
public void initphase() throws InvalidTrackFormatException, FileNotFoundException {
|
||||
File folder = new File("your/path");
|
||||
|
||||
public boolean initphase() throws InvalidTrackFormatException, FileNotFoundException {
|
||||
File folder = new File("tracks");
|
||||
File[] listOfFiles = folder.listFiles();
|
||||
if(listOfFiles.length > 0) {
|
||||
List<String> tracks = new ArrayList<>();
|
||||
for(File file : listOfFiles){
|
||||
tracks.add(file.getName());
|
||||
}
|
||||
File selectedTrack = listOfFiles[userInterface.selectOption("Select Track file", tracks)];
|
||||
try {
|
||||
track = new Track(selectedTrack);
|
||||
} catch (FileNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
List<String> moveStrategies = new ArrayList<>();
|
||||
moveStrategies.add("Do not move Strategy");
|
||||
moveStrategies.add("User Move Strategy");
|
||||
moveStrategies.add("Move List Strategy");
|
||||
moveStrategies.add("Path Follow Move Strategy");
|
||||
for(int i = 0; i < track.getCarCount() ; i++ ) {
|
||||
int moveStrategie = userInterface.selectOption(
|
||||
"Select Strategy for Car " + i + " (" + track.getCarId(i) + ")", moveStrategies);
|
||||
switch (moveStrategie) { //TODO: set Movestrategy with method in Track
|
||||
case 1:
|
||||
track.getCar(i).setMoveStrategy(new DoNotMoveStrategy()); //TODO: add Arguments
|
||||
break;
|
||||
case 2:
|
||||
track.getCar(i).setMoveStrategy(new UserMoveStrategy()); //TODO: add Arguments
|
||||
break;
|
||||
case 3:
|
||||
track.getCar(i).setMoveStrategy(new MoveListStrategy()); //TODO: add Arguments
|
||||
break;
|
||||
case 4:
|
||||
track.getCar(i).setMoveStrategy(new PathFollowerMoveStrategy()); //TODO: add Arguments
|
||||
break;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else{
|
||||
userInterface.printInformation("No Trackfile found!");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -22,6 +22,14 @@ public class UserInterface {
|
|||
textTerminal.println(welcomeText + "\n");
|
||||
}
|
||||
|
||||
/**
|
||||
* Prints the given Text in textTerminal
|
||||
* @param text The Text which should be printed.
|
||||
*/
|
||||
public void printInformation(String text) {
|
||||
textTerminal.println(text);
|
||||
}
|
||||
|
||||
/**
|
||||
* asks the user to choose one of the options given.
|
||||
* @param text Text which is printed befor the options are printed. Example: "Select Track file:"
|
||||
|
@ -29,7 +37,7 @@ public class UserInterface {
|
|||
* @return the list index of the selected option
|
||||
*/
|
||||
public int selectOption(String text, List<String> options) {
|
||||
textTerminal.println(text + ":\n");
|
||||
textTerminal.println(text + ":");
|
||||
for(int option = 0; option < options.size(); option ++) {
|
||||
textTerminal.println(" " + (option + 1) + ": " + options.get(option));
|
||||
}
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
challenge_points.txt
|
Loading…
Reference in New Issue