slide-puzzle-engine
TypeScript icon, indicating that this package has built-in type declarations

1.0.8 • Public • Published

Slide Puzzle Engine

It is a library that allows you to generate a sliding puzzle board, you can control its movement and check if the puzzle has been solved.

Imports

ES Module

import { Board } from 'slide-puzzle-engine';

CommonJs Module

const { Board } = require('slide-puzzle-engine/dist');

IIFE (web)

<!-- inside <head> -->
<script src='https://unpkg.com/slide-puzzle-engine@1.0.8/dist/index.iife.js' type="text/javascript"></script>

CLI test

By executing this command you will start a test of the engine on the command line

npm test

Test image

How to use it

Create a new board

The Board is the main object of the game, it can be instantiated as follows.

const { Board } = window.SlidePuzzleEngine // only for IIFE imports
const puzzle = new Board({
  dimensions: {
    width: 3,
    height: 3,
  }
})

Get a 2D Array of the board

Use this function to render your board, the "x" indicates the empty space.

console.log(puzzle.to2dArray())

// output example:
//[
//  [1, 3, 6],
//  [5, 7, 2],
//  [4, "x", 8],
//] 

Move across the board

You can move across the board by swapping positions between the empty space and a token. To do this, use the move() function and the Direction enum.

import directions:

EsModule
import { Direction } from 'slide-puzzle-engine'; 
CommonJs
const { Direction } = require('slide-puzzle-engine/dist')
IIFE (web)
const { Direction } = window.SlidePuzzleEngine

Use move()

puzzle.move([
  Direction.up,
  ...moreDirections // you can make more than one move at once
])

Check if the puzzle is solved

if (puzzle.solved) {
  // add your magic here
}

Readme

Keywords

Package Sidebar

Install

npm i slide-puzzle-engine

Weekly Downloads

48

Version

1.0.8

License

MIT

Unpacked Size

48.5 kB

Total Files

10

Last publish

Collaborators

  • daqaros