Merge remote-tracking branch 'origin/Game' into Game
This commit is contained in:
		
						commit
						dd987a5a14
					
				| 
						 | 
					@ -1,6 +1,10 @@
 | 
				
			||||||
package ch.zhaw.pm2.racetrack;
 | 
					package ch.zhaw.pm2.racetrack;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import ch.zhaw.pm2.racetrack.given.GameSpecification;
 | 
					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.File;
 | 
				
			||||||
import java.io.FileNotFoundException;
 | 
					import java.io.FileNotFoundException;
 | 
				
			||||||
| 
						 | 
					@ -17,6 +21,7 @@ import static ch.zhaw.pm2.racetrack.PositionVector.Direction;
 | 
				
			||||||
public class Game implements GameSpecification {
 | 
					public class Game implements GameSpecification {
 | 
				
			||||||
    public static final int NO_WINNER = -1;
 | 
					    public static final int NO_WINNER = -1;
 | 
				
			||||||
    private Track track;
 | 
					    private Track track;
 | 
				
			||||||
 | 
					    int currentCarIndex;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    UserInterface userInterface;
 | 
					    UserInterface userInterface;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -24,15 +29,50 @@ public class Game implements GameSpecification {
 | 
				
			||||||
        userInterface = new UserInterface(welcometext);
 | 
					        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();
 | 
					        File[] listOfFiles = folder.listFiles();
 | 
				
			||||||
        List<String> tracks = new ArrayList<>();
 | 
					        if(listOfFiles.length > 0) {
 | 
				
			||||||
        for(File file : listOfFiles){
 | 
					            List<String> tracks = new ArrayList<>();
 | 
				
			||||||
            tracks.add(file.getName());
 | 
					            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;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        File selectedTrack = listOfFiles[userInterface.selectOption("Select Track file", tracks)];
 | 
					 | 
				
			||||||
        track = new Track(selectedTrack);
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -22,6 +22,14 @@ public class UserInterface {
 | 
				
			||||||
        textTerminal.println(welcomeText + "\n");
 | 
					        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.
 | 
					     * 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:"
 | 
					     * @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
 | 
					     * @return the list index of the selected option
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public int selectOption(String text, List<String> options) {
 | 
					    public int selectOption(String text, List<String> options) {
 | 
				
			||||||
        textTerminal.println(text + ":\n");
 | 
					        textTerminal.println(text + ":");
 | 
				
			||||||
        for(int option = 0; option < options.size(); option ++) {
 | 
					        for(int option = 0; option < options.size(); option ++) {
 | 
				
			||||||
            textTerminal.println(" " + (option + 1) +  ": " + options.get(option));
 | 
					            textTerminal.println(" " + (option + 1) +  ": " + options.get(option));
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
challenge_points.txt
 | 
					 | 
				
			||||||
		Loading…
	
		Reference in New Issue