File Exchange

image thumbnail

N-Puzzle (dynamic size and solver)

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


Updated 27 Jun 2007

View License

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 (2020). N-Puzzle (dynamic size and solver) (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (8)


Thank you very much!!! But I have found some problems, if I import the array as [7,4,9,6,3,12,14,10,2,5,16,15,11,13,1,8], the solution still have a tiny problem, the 11 and 15 are in the wrong place~

Sebastian Watters

which program do you open the file with?

Yuanhang Zhou

Liber Eleutherios

Michael Kung


Joseph Don


Joe Kirk

This is an excellent contribution! I'd give it 6 stars if I could. It has everything anyone could want in a sliding puzzle...(except maybe a High Scores table) :o)

John D'Errico

Its the 15 puzzle. Works nicely. Well implemented. Its got help. No problems that I found.


Generic solver added.

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