public PuzzlynBoardSnapShot(PuzzlynBoard puzzlynBoard)
 {
     var rows = puzzlynBoard.PuzzlynBoardLocationGrid.GetLength(0);
     var columns = puzzlynBoard.PuzzlynBoardLocationGrid.GetLength(1);
     PuzzlynBoardLocationGrid = new PuzzlynBoardLocation[rows,columns];
     for (var y = 0; y < rows; y++)
         for (var x = 0; x < columns; x++)
             PuzzlynBoardLocationGrid[y, x] = new PuzzlynBoardLocation(puzzlynBoard.PuzzlynBoardLocationGrid[y, x]);
 }
Example #2
0
        public PuzzlynBoard(int numberOfImageRows, int numberOfImageColumns)
        {
            PuzzlynImagePieceGrid = new PuzzlynImagePiece[numberOfImageRows, numberOfImageColumns];
            for (var y = 0; y < numberOfImageRows; y++)
                for (var x = 0; x < numberOfImageColumns; x++)
                    PuzzlynImagePieceGrid[y, x] = new PuzzlynImagePiece(y, x);

            //Add 2 to each dimension for spacing
            PuzzlynBoardLocationGrid = new PuzzlynBoardLocation[numberOfImageRows + (Padding*2), numberOfImageColumns + (Padding*2)];
            for (var y = 0; y < numberOfImageRows + (2 * Padding); y++)
            {
                for (var x = 0; x < numberOfImageColumns + (2 * Padding); x++)
                {
                    var puzzlynBoardLocation = new PuzzlynBoardLocation(y, x);
                    //Identify that we are part of the section that holds the image
                    if (y >= Padding && y < (numberOfImageRows + Padding)
                        && x >= Padding && x < (numberOfImageColumns + Padding))
                    {
                        //If so give it an image piece
                        puzzlynBoardLocation.PuzzlynImagePiece = PuzzlynImagePieceGrid[y - 1, x - 1];
                        _puzzlynImagePieceLocationLookup[puzzlynBoardLocation.PuzzlynImagePiece] = puzzlynBoardLocation;
                    }

                    PuzzlynBoardLocationGrid[y, x] = puzzlynBoardLocation;

                }
            }

            for (var y = Padding; y < numberOfImageRows + Padding; y++)
            {
                for (var x = Padding; x < numberOfImageColumns + Padding; x++)
                {
                    var currentPuzzlynBoardLocation = PuzzlynBoardLocationGrid[y, x];
                    var randY = _random.Next(Padding, numberOfImageRows + Padding);
                    var randX = _random.Next(Padding, numberOfImageColumns + Padding);
                    var randomPuzzlynBoardLocation = PuzzlynBoardLocationGrid[randY, randX];
                    SwapImagePieces(currentPuzzlynBoardLocation, randomPuzzlynBoardLocation);
                }
            }
        }
Example #3
0
 private void SwapImagePieces(PuzzlynBoardLocation u, PuzzlynBoardLocation v)
 {
     var puzzlynImagePiece = u.PuzzlynImagePiece;
     u.PuzzlynImagePiece = v.PuzzlynImagePiece;
     v.PuzzlynImagePiece = puzzlynImagePiece;
     _puzzlynImagePieceLocationLookup[u.PuzzlynImagePiece] = u;
     _puzzlynImagePieceLocationLookup[v.PuzzlynImagePiece] = v;
 }
 public PuzzlynBoardLocation(PuzzlynBoardLocation puzzlynBoardLocation)
 {
     X = puzzlynBoardLocation.X;
     Y = puzzlynBoardLocation.Y;
     PuzzlynImagePiece = puzzlynBoardLocation.PuzzlynImagePiece;
 }