UNPKG

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
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(); });