## N-Puzzle (dynamic size and solver)

version 1.0.0.0 (7.08 KB) by
Graphical User Interface for playing and solving the N-Puzzle game.

Updated 27 Jun 2007

The Game:
The N-puzzle is known in various versions, including the 8 puzzle, the
15 puzzle, and with various names. It is a sliding puzzle that consists of a grid of numbered squares with one square missing, and the labels on the squares jumbled up. If the grid is 3?the puzzle is called the 8-puzzle or 9-puzzle. If the grid is 4?the puzzle is called the 15-puzzle or 16-puzzle. The goal of the puzzle is to un-jumble the squares by only making moves which slide squares into the empty space, in turn revealing another empty space in the position of the moved piece. (From Wikipedia)

Game Board:
The N-Puzzle interface lets the user choose between several predefined sizes of boards, and also to choose any custom (valid) size N. A valid
size of N is such that round(sqrt(N+1))^2-1 equals to N.
All generated games are solvable. A game is generated by performing 1000 random moves of the empty space starting from the solution.
User can also import any puzzle into the interface. Puzzle must be defined as an array or as a matrix with numbers spanning from 1 where
the largest number is the empty space.

Game Controls:
The N-puzzle game can be played using either mouse or keyboard (or both). Move around marker using arrow keys and make a switch using space. With mouse you move around marker using left-click and make a switch using any other type of click (double-click, right-click, shift-click, etc.)

Extra Game Features:
The N-Puzzle game has Undo and Redo functionality that can be reached from the menu or by the shortcuts Ctrl-Z (Undo) and Ctrl-R (Redo).
A simulation of the game so far can also be viewed using the control in the menu.
The game now also has a built-in solver.

### Cite As

Per-Anders Ekstrom (2021). N-Puzzle (dynamic size and solver) (https://www.mathworks.com/matlabcentral/fileexchange/13900-n-puzzle-dynamic-size-and-solver), MATLAB Central File Exchange. Retrieved .

##### MATLAB Release Compatibility
Created with R2006a
Compatible with any release
##### Platform Compatibility
Windows macOS Linux