parent
							
								
									d038132055
								
							
						
					
					
						commit
						8581b7ee64
					
				
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| 
						 | 
				
			
			@ -271,7 +271,6 @@ public class Game implements GameSpecification {
 | 
			
		|||
                currentCarIndex++;
 | 
			
		||||
            }
 | 
			
		||||
        } while (track.getCar(currentCarIndex).isCrashed());
 | 
			
		||||
        // TODO: evtl andere Kapselung
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -123,7 +123,6 @@ public class Track implements TrackSpecification {
 | 
			
		|||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    //TODO: THIS
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     *  Determines the finish line and saves it in a list, throws an Exception if none is found.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,10 +5,14 @@ import ch.zhaw.pm2.racetrack.PositionVector;
 | 
			
		|||
import static ch.zhaw.pm2.racetrack.PositionVector.Direction;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Do not accelerate in any direction.
 | 
			
		||||
 * This Class represents the DoNotMoveStrategy.
 | 
			
		||||
 */
 | 
			
		||||
public class DoNotMoveStrategy implements MoveStrategy {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * This method will be used to return the next Direction for the car.
 | 
			
		||||
     * @return a NONE Direction
 | 
			
		||||
     */
 | 
			
		||||
    @Override
 | 
			
		||||
    public Direction nextMove() {
 | 
			
		||||
        return PositionVector.Direction.NONE;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,6 +10,11 @@ import java.util.ArrayList;
 | 
			
		|||
import java.util.List;
 | 
			
		||||
import java.util.Scanner;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * This Class represent the MoveListStrategy. The Directions returned by the
 | 
			
		||||
 * nextMove() are written down in a List.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
public class MoveListStrategy implements MoveStrategy {
 | 
			
		||||
 | 
			
		||||
    private final List<Direction> moveList;
 | 
			
		||||
| 
						 | 
				
			
			@ -21,6 +26,12 @@ public class MoveListStrategy implements MoveStrategy {
 | 
			
		|||
        readFile(new File(path));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * This Method will read in a File and checks line by line if the file contains a valid direction.
 | 
			
		||||
     * If so the direction will be added to the moveList.
 | 
			
		||||
     * @param trackFile the file to read in the directions
 | 
			
		||||
     * @throws FileNotFoundException if the file does not exist.
 | 
			
		||||
     */
 | 
			
		||||
    private void readFile(File trackFile) throws FileNotFoundException {
 | 
			
		||||
        Scanner scanner = new Scanner(new FileInputStream(trackFile), StandardCharsets.UTF_8);
 | 
			
		||||
        Direction[] directions = Direction.values();
 | 
			
		||||
| 
						 | 
				
			
			@ -35,6 +46,10 @@ public class MoveListStrategy implements MoveStrategy {
 | 
			
		|||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * This method will be used to return the next Direction for the car.
 | 
			
		||||
     * @return the next direction from the list. Returns null if the list is empty.
 | 
			
		||||
     */
 | 
			
		||||
    @Override
 | 
			
		||||
    public Direction nextMove() {
 | 
			
		||||
        pointer += 1;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -141,7 +141,7 @@ public class PathFinderMoveStrategy implements MoveStrategy{
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public PositionVector.Direction nextMove() { //TODO check for crash and recreate movelist if crash
 | 
			
		||||
    public PositionVector.Direction nextMove() {
 | 
			
		||||
        pointer += 1;
 | 
			
		||||
        if (pointer < moveList.size()) {
 | 
			
		||||
            PositionVector.Direction direction = moveList.get(pointer);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,6 +5,7 @@ import ch.zhaw.pm2.racetrack.UserInterface;
 | 
			
		|||
 | 
			
		||||
/**
 | 
			
		||||
 * Let the user decide the next move.
 | 
			
		||||
 * Therefore it uses the UserInterface class to ask for a direction.
 | 
			
		||||
 */
 | 
			
		||||
public class UserMoveStrategy implements MoveStrategy {
 | 
			
		||||
    private final UserInterface userInterface;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,11 +1,8 @@
 | 
			
		|||
package ch.zhaw.pm2.racetrack;
 | 
			
		||||
 | 
			
		||||
import ch.zhaw.pm2.racetrack.strategy.UserMoveStrategy;
 | 
			
		||||
import org.junit.jupiter.api.Nested;
 | 
			
		||||
import org.junit.jupiter.api.DisplayName;
 | 
			
		||||
import org.junit.jupiter.api.BeforeEach;
 | 
			
		||||
import org.junit.jupiter.api.Test;
 | 
			
		||||
import org.junit.jupiter.api.Assertions;
 | 
			
		||||
import org.junit.jupiter.api.*;
 | 
			
		||||
 | 
			
		||||
import java.io.File;
 | 
			
		||||
import java.io.FileNotFoundException;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
| 
						 | 
				
			
			@ -14,7 +11,7 @@ import static ch.zhaw.pm2.racetrack.PositionVector.Direction.*;
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Test for Class Game
 | 
			
		||||
 * Test for Class Game. The Class is split up in nested classes.
 | 
			
		||||
 */
 | 
			
		||||
class GameTest {
 | 
			
		||||
    private UserInterface userInterface;
 | 
			
		||||
| 
						 | 
				
			
			@ -26,7 +23,7 @@ class GameTest {
 | 
			
		|||
    private final int CAR_INDEX_TWO = 1;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * This nested Class tests if the game gets initiatet correctly
 | 
			
		||||
     * This nested Class tests if the game gets initiatet correctly.
 | 
			
		||||
     */
 | 
			
		||||
    @Nested
 | 
			
		||||
    @DisplayName("Test correct Setup")
 | 
			
		||||
| 
						 | 
				
			
			@ -124,7 +121,8 @@ class GameTest {
 | 
			
		|||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * This nested Class tests a Playtrough. And implements a UserInterface interagtion to pretend a real player
 | 
			
		||||
     * This nested Class tests a playtrough and implements a userInterface which pretends to be a real player.
 | 
			
		||||
     * At the end of every Test the Userinterface stays open for 10 more sec to visualize the game.
 | 
			
		||||
     */
 | 
			
		||||
    @Nested
 | 
			
		||||
    @DisplayName("Playtrough")
 | 
			
		||||
| 
						 | 
				
			
			@ -183,8 +181,28 @@ class GameTest {
 | 
			
		|||
            Assertions.assertEquals("b",game.gamePhase());
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        @Test
 | 
			
		||||
        void passFinishLineInWrongDirection() {
 | 
			
		||||
            game = new Game(new interFace("Test",new Integer[]{1,0,1},new PositionVector.Direction[]{LEFT,NONE,NONE,RIGHT,RIGHT}));
 | 
			
		||||
            game.initPhase();
 | 
			
		||||
            Assertions.assertEquals("a",game.gamePhase());
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        @AfterEach
 | 
			
		||||
        void cleanUp() {
 | 
			
		||||
            try {
 | 
			
		||||
                Thread.sleep(10000);
 | 
			
		||||
            } catch (InterruptedException e) {
 | 
			
		||||
                e.printStackTrace();
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * This Class is used to communicate with the UserInterface. It overrides crucial methods and returns an instruction based on the instructions data field.
 | 
			
		||||
     * To implement the right instructions the user has to be aware of the game sequence.
 | 
			
		||||
     */
 | 
			
		||||
    private class interFace extends UserInterface {
 | 
			
		||||
 | 
			
		||||
        private PositionVector.Direction[] directions;
 | 
			
		||||
| 
						 | 
				
			
			@ -210,9 +228,6 @@ class GameTest {
 | 
			
		|||
        public void printInformation(String text) {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void printTrack(Track track) {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void quit(String text) {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue