mirror of
https://github.com/inf112-v20/Fiasko.git
synced 2025-02-01 07:39:35 +01:00
Merge branch 'master' of https://github.com/inf112-v20/Fiasko
This commit is contained in:
commit
d864e60f24
5
docs/team/referater/referat_12_03_2020.md
Normal file
5
docs/team/referater/referat_12_03_2020.md
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
## Oppmøte
|
||||||
|
Alle i teamet var tilstede.
|
||||||
|
|
||||||
|
## Gjennomgått
|
||||||
|
Vi har jobbet med parprogrammering.
|
@ -251,7 +251,7 @@ public class Board {
|
|||||||
* @param position The position to check
|
* @param position The position to check
|
||||||
* @return The robot id of the robot on the position or null if there is no robot there
|
* @return The robot id of the robot on the position or null if there is no robot there
|
||||||
*/
|
*/
|
||||||
private RobotID getRobotOnPosition(Position position) {
|
RobotID getRobotOnPosition(Position position) {
|
||||||
for (RobotID robotID : robots.keySet()) {
|
for (RobotID robotID : robots.keySet()) {
|
||||||
Robot robot = robots.get(robotID);
|
Robot robot = robots.get(robotID);
|
||||||
if (position.equals(robot.getPosition())) {
|
if (position.equals(robot.getPosition())) {
|
||||||
@ -266,7 +266,7 @@ public class Board {
|
|||||||
* @param position The position to check
|
* @param position The position to check
|
||||||
* @return True if there is a robot on the specified position
|
* @return True if there is a robot on the specified position
|
||||||
*/
|
*/
|
||||||
private boolean hasRobotOnPosition(Position position) {
|
boolean hasRobotOnPosition(Position position) {
|
||||||
return getRobotOnPosition(position) != null;
|
return getRobotOnPosition(position) != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@ package inf112.fiasko.roborally.objects;
|
|||||||
import inf112.fiasko.roborally.element_properties.Action;
|
import inf112.fiasko.roborally.element_properties.Action;
|
||||||
import inf112.fiasko.roborally.element_properties.Position;
|
import inf112.fiasko.roborally.element_properties.Position;
|
||||||
import inf112.fiasko.roborally.element_properties.RobotID;
|
import inf112.fiasko.roborally.element_properties.RobotID;
|
||||||
|
import inf112.fiasko.roborally.element_properties.TileType;
|
||||||
import inf112.fiasko.roborally.utility.BoardLoaderUtil;
|
import inf112.fiasko.roborally.utility.BoardLoaderUtil;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@ -15,6 +16,7 @@ import java.util.concurrent.TimeUnit;
|
|||||||
*/
|
*/
|
||||||
public class RoboRallyGame implements IDrawableGame {
|
public class RoboRallyGame implements IDrawableGame {
|
||||||
private Board gameBoard;
|
private Board gameBoard;
|
||||||
|
List<BoardElementContainer<Tile>> cogwheels;
|
||||||
|
|
||||||
public RoboRallyGame(boolean debug) {
|
public RoboRallyGame(boolean debug) {
|
||||||
if (debug) {
|
if (debug) {
|
||||||
@ -86,6 +88,8 @@ public class RoboRallyGame implements IDrawableGame {
|
|||||||
robots.add(new Robot(RobotID.ROBOT_2, new Position(1, 2)));
|
robots.add(new Robot(RobotID.ROBOT_2, new Position(1, 2)));
|
||||||
robots.add(new Robot(RobotID.ROBOT_3, new Position(1, 3)));
|
robots.add(new Robot(RobotID.ROBOT_3, new Position(1, 3)));
|
||||||
gameBoard = BoardLoaderUtil.loadBoard("boards/Checkmate.txt", robots);
|
gameBoard = BoardLoaderUtil.loadBoard("boards/Checkmate.txt", robots);
|
||||||
|
cogwheels = gameBoard.getPositionsOfTileOnBoard(TileType.COGWHEEL_RIGHT,
|
||||||
|
TileType.COGWHEEL_LEFT);
|
||||||
new Thread(() -> {
|
new Thread(() -> {
|
||||||
try {
|
try {
|
||||||
runGameLoop();
|
runGameLoop();
|
||||||
@ -182,4 +186,22 @@ public class RoboRallyGame implements IDrawableGame {
|
|||||||
sleep();
|
sleep();
|
||||||
gameBoard.moveRobotForward(robotID);
|
gameBoard.moveRobotForward(robotID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Rotates all robots that are standing on cogWheel tiles on the board.
|
||||||
|
* @throws InterruptedException If interrupted while sleeping.
|
||||||
|
*/
|
||||||
|
private void rotateCogwheels() throws InterruptedException {
|
||||||
|
for (BoardElementContainer<Tile> cogwheel : cogwheels) {
|
||||||
|
if (!gameBoard.hasRobotOnPosition(cogwheel.getPosition())) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
sleep();
|
||||||
|
if (cogwheel.obj.getTileType() == TileType.COGWHEEL_RIGHT) {
|
||||||
|
gameBoard.rotateRobotRight(gameBoard.getRobotOnPosition(cogwheel.getPosition()));
|
||||||
|
} else {
|
||||||
|
gameBoard.rotateRobotLeft(gameBoard.getRobotOnPosition(cogwheel.getPosition()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
@ -0,0 +1,27 @@
|
|||||||
|
package inf112.fiasko.roborally.objects;
|
||||||
|
|
||||||
|
import inf112.fiasko.roborally.element_properties.Direction;
|
||||||
|
import inf112.fiasko.roborally.element_properties.Position;
|
||||||
|
import inf112.fiasko.roborally.element_properties.TileType;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
|
||||||
|
public class BoardElementContainerTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getObjectTest() {
|
||||||
|
Position pos = new Position(1,2);
|
||||||
|
Tile tile = new Tile(TileType.TILE, Direction.NORTH);
|
||||||
|
BoardElementContainer<Tile> element = new BoardElementContainer<>(tile, pos);
|
||||||
|
assertEquals(tile, element.getObject());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getPositionTest() {
|
||||||
|
Position pos = new Position(1,2);
|
||||||
|
Tile tile = new Tile(TileType.TILE, Direction.NORTH);
|
||||||
|
BoardElementContainer<Tile> element = new BoardElementContainer<>(tile, pos);
|
||||||
|
assertEquals(pos, element.getPosition());
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user