X Make EscapeGameManagerImpl instance X Make Board instance X Make Coordinate # Basic moves (piece on 4,4) X [4,4] -> [4,4] false (Cannot move to current space) X [4,4] -> [4,5] true X Retrieving piece from board # Advanced moves square X [1,1] -> [1,2] false (no piece) # Refactored Basic moves section so they check for existing piece on spaces X [4,4] -> [50,50] false (out of bounds) X [4,4] -> [4,5] | [4,4] -> [4,5] false (no piece) X [4,4] -> [50,50] false (OOB) | [4,4] -> [4,5] X [4,4] -> [9,9] false (out of range) X Add error messages to console # Pathfinding # Put a bunch of blocks in the way of a Dog that can move 2 spaces X [7,12] -> [5,12] false (out of range) # Put a bunch of pieces in the way of a Dog that can move 2 spaces X [3,12] -> [5,12] false (out of range) # Have a Horse that can move 7 spaces path around the obstacles X [9,12] -> [5,12] # Rules X Add rules to EscapeGameManagerImpl # Test ScoreLimit X [9,12] -> [5,12] 'PLAYER 1 wins' | [10,12] -> [5,12] false (Game Over) # Test Ownership X [10,12] -> [5,12] false (Not PLAYER 1's piece) # Test TurnLimit X [4,4] -> [4,5] | [10,12] -> [8,12] | [4,5] -> [4,6] | [8,12] -> [5,11] 'Game Over' | [4,6] -> [4,7] false (Game Over) # Test Basic Hex, uses test1Hex.egc X [1,1] -> [2,2] false (out of range) # Refactor packages # Release 2, uses test2.egc unless stated otherwise # Implement destination checking (No block, REMOVE) X [3,4] -> [3,5] false (Destination invalid, block space) X [4,12] -> [4,11] | [4,11] -> [4,10] false (Not PLAYER 2's piece) X [3,4] -> [4,4] false (Can't remove own piece) # Uses test1.egc X [7,12] -> [9,12] false (piece on location) # Unblock, exit too far unless going through blocks X [7,12] -> [5,12] # Implement Fly # Bird with Fly 3 behind wall of blocks and a frog, would need 4 to go around X [8,12] -> [5,12] # Implement Linear movement pattern X [5,9] -> [5,12] | [3,3] -> [1,1] | [3,2] -> [1,1] false (No path available) # Uses test2Hex.egc X [-3,0] -> [0,0] | [0,-3] -> [0,0] | [-2,1] -> [0,0] false (No path available) # Uses test2Hex.egc X [-2,-2] -> [0,0] false (No path available, block in way) # Implement Value # Uses test2Hex.egc X [1,0] -> [0,0] | [0,-3] -> [0,0] false (Game over) # Implement observers # Refactor MoveValidator and EscapeGameManagerImpl to throw EscapeExceptions during events # Create EscapeObserver instance X [1,0] -> [0,0] PLAYER 1 wins | [0,-3] -> [0,0] Game is over and PLAYER1 has won X X [7,12] -> [9,12] Move Error: Cannot land on a piece