initial commit
basic puzzle structure of a 3x3 tile grid
getAdjacentIndicies() returns neighbor tiles
detect if the hole is adjacent to a position
doAction() swaps if adjacent to hole
add a handler to notify when a swap occurs
use requireJS, wrap puzzle as a module
render puzzle as 3D model
puzzle model changes when puzzle data changes
bugfix: adjacent hole not detected if at index 0
pass an array to the puzzle object
when swapping tiles, operate directly on data array
refactor: use helper function for updating mesh position
refactor: encapsulate model in PuzzlePiece class
refactor: set puzzlePiece model position in constructor
refactor: encapsulate puzzle model positioning in PuzzlePiece object
refactor: rename createPuzzleTile -> createPuzzlePieceModel
refactor: use a constructor for PuzzlePieceModel
refactor: call setIndex directly on a puzzle array member
pass color to PuzzlePieceModel constructor
contain puzzle structure and models in one module