labyrinth-game-logic
Version:
A libary that implements the boardgame labyrinth and exposes the functionality to create and interact with games
56 lines (48 loc) • 2.39 kB
text/typescript
import { BoardPosition } from "./BoardPosition";
import { Heading } from "./Heading";
import { ShiftPosition } from "./ShiftPosition";
test("shiftPlayer x axis", () => {
// not affected
let shiftPosition = new ShiftPosition(Heading.EAST, 0);
let playerPos = shiftPosition.shiftPlayer(new BoardPosition(0, 0), 7, 7);
expect(playerPos.equals(new BoardPosition(0, 0))).toBeTruthy();
// + 1
shiftPosition = new ShiftPosition(Heading.WEST, 1);
playerPos = shiftPosition.shiftPlayer(new BoardPosition(3, 3), 7, 7);
expect(playerPos.equals(new BoardPosition(4, 3))).toBeTruthy();
// - 1
shiftPosition = new ShiftPosition(Heading.EAST, 1);
playerPos = shiftPosition.shiftPlayer(new BoardPosition(3, 3), 7, 7);
expect(playerPos.equals(new BoardPosition(2, 3))).toBeTruthy();
// overflow EAST
shiftPosition = new ShiftPosition(Heading.WEST, 1);
playerPos = shiftPosition.shiftPlayer(new BoardPosition(6, 3), 7, 7);
expect(playerPos.equals(new BoardPosition(0, 3))).toBeTruthy();
// overflow WEST
shiftPosition = new ShiftPosition(Heading.EAST, 1);
playerPos = shiftPosition.shiftPlayer(new BoardPosition(0, 3), 7, 7);
expect(playerPos.equals(new BoardPosition(6, 3))).toBeTruthy();
});
test("shiftPlayer y axis", () => {
// not affected
let shiftPosition = new ShiftPosition(Heading.NORTH, 0);
let playerPos = shiftPosition.shiftPlayer(new BoardPosition(0, 0), 7, 7);
expect(playerPos.equals(new BoardPosition(0, 0))).toBeTruthy();
// + 1
shiftPosition = new ShiftPosition(Heading.NORTH, 1);
playerPos = shiftPosition.shiftPlayer(new BoardPosition(3, 3), 7, 7);
expect(playerPos.equals(new BoardPosition(3, 4))).toBeTruthy();
// - 1
shiftPosition = new ShiftPosition(Heading.SOUTH, 1);
playerPos = shiftPosition.shiftPlayer(new BoardPosition(3, 3), 7, 7);
expect(playerPos.equals(new BoardPosition(3, 2))).toBeTruthy();
// overflow EAST
shiftPosition = new ShiftPosition(Heading.NORTH, 1);
playerPos = shiftPosition.shiftPlayer(new BoardPosition(3, 6), 7, 7);
console.log(playerPos);
expect(playerPos.equals(new BoardPosition(3, 0))).toBeTruthy();
// overflow WEST
shiftPosition = new ShiftPosition(Heading.SOUTH, 1);
playerPos = shiftPosition.shiftPlayer(new BoardPosition(3, 0), 7, 7);
expect(playerPos.equals(new BoardPosition(3, 6))).toBeTruthy();
});