All about flooble | fun stuff | Get a free chatterbox | Free JavaScript | Avatars
 perplexus dot info

 Sliding Puzzle (Posted on 2004-06-10)
Here is one of the older sliding puzzles:

You have a sliding puzzle that looks like this:

```AB
C
DE```
You may move a block with a letter on it to the blank space by sliding it there. How many moves does it take to put D where E is and E where D is at the same time? (The other pieces don't need to be in their original spots.)

 See The Solution Submitted by Gamer Rating: 2.6667 (6 votes)

Comments: ( Back to comment list | You must be logged in to post comments.)
 Two shortest--computer solution | Comment 4 of 13 |

Two solutions were found in 17 moves:

`decbadbcebdacdbedab ab ab ab a   a da da da da da  a a  ac ac ac ac ac  c dc dc d  db db  b b  bc bc  c dc dc d   d bd bd b  de  e e  ec ec ec ec ec e   e be be be be be  e e  ed `
`decdabdceacdbcaedab ab ab ab ab  b b  bd bd bd bd bd b   b cb cb cb cb  c dc dc d   d ad ad a  ac ac  c c  cd cd  d ad ad a  de  e e  ec ec ec ec ec e   e ae ae ae ae ae  e e  ed `

by this program, which searched for solutions up to 20 steps:

DECLARE SUB move (lvl%)
CLEAR , , 16000
DEFINT A-Z
DIM SHARED box(21, 3, 2), hist(21), zeroRow, zeroCol, maxLvl
DATA 1,2,0,3,4,5
FOR row = 1 TO 3
FOR col = 1 TO 2
NEXT
NEXT
maxLvl = 20
zeroRow = 2: zeroCol = 1

OPEN "slidpuz.txt" FOR OUTPUT AS #2

move 1

CLOSE
END

'
SUB move (lvl)
IF lvl > maxLvl THEN EXIT SUB
row = zeroRow - 1: col = zeroCol: GOSUB tryIt
row = zeroRow + 1: col = zeroCol: GOSUB tryIt
row = zeroRow: col = zeroCol + 1: GOSUB tryIt
row = zeroRow: col = zeroCol - 1: GOSUB tryIt
EXIT SUB

tryIt:
IF row > 0 AND row < 4 AND col > 0 AND col < 3 THEN
IF box(lvl - 1, zeroRow, zeroCol) <> box(lvl, row, col) THEN
FOR r = 1 TO 3
FOR c = 1 TO 2
box(lvl + 1, r, c) = box(lvl, r, c)
NEXT
NEXT
box(lvl + 1, zeroRow, zeroCol) = box(lvl, row, col)
box(lvl + 1, row, col) = 0
good = 1
FOR l = lvl - 1 TO 1 STEP -1
match = 1
FOR r = 1 TO 3
FOR c = 1 TO 2
IF box(l, r, c) <> box(lvl + 1, r, c) THEN match = 0: EXIT FOR
NEXT
IF match = 0 THEN EXIT FOR
NEXT
IF match THEN good = 0: EXIT FOR
NEXT l
IF good THEN
hist(lvl) = box(lvl + 1, zeroRow, zeroCol)
IF box(lvl + 1, 3, 1) = 5 AND box(lvl + 1, 3, 2) = 4 THEN
FOR l = 1 TO lvl
PRINT #2, MID\$(" abcde", hist(l) + 1, 1);
NEXT
PRINT #2,
FOR r = 1 TO 3
FOR l = 1 TO lvl + 1
FOR c = 1 TO 2
PRINT #2, MID\$(" abcde", box(l, r, c) + 1, 1);
NEXT c
PRINT #2, " ";
NEXT l
PRINT #2,
NEXT
PRINT #2,
END IF
szc = zeroCol: szr = zeroRow
zeroCol = col: zeroRow = row
move lvl + 1
zeroCol = szc: zeroRow = szr
END IF
END IF
END IF
RETURN
END SUB

All the solutions with 20 or fewer steps are:

`abcedabcebadbecaebdeab  b b  bc bc bc bc  c c  ce ce ce ce ce c   c ac ac ac ac ac  c ac ac a  ae ae  e be be b   b ab ab a  ae ae  e e  eb eb  b de de de de d   d ad ad ad ad ad  d d  db db db db db d   d ed `
`abcedaecbeadcaebacdeab  b b  bc bc bc bc bc b   b eb eb eb eb eb  b b  ba ba ba ba  c ac ac a  ae ae  e e  ec ec  c ac ac a   a ea ea e  ec ec  c de de de de d   d ad ad ad ad ad  d d  dc dc dc dc dc d   d ed `
`decbadbcebdacebdebdeab ab ab ab a   a da da da da da  a a  ac ac ac ac ac ac ac ac  c dc dc d  db db  b b  bc bc  c dc dc d  de de  e e  eb eb  b de  e e  ec ec ec ec ec e   e be be be be b   b db db d   d ed `
`decbadbcebdacdbedab ab ab ab a   a da da da da da  a a  ac ac ac ac ac  c dc dc d  db db  b b  bc bc  c dc dc d   d bd bd b  de  e e  ec ec ec ec ec e   e be be be be be  e e  ed `
`decbadbcebdacdbedcab ab ab ab a   a da da da da da  a a  ac ac ac ac ac a   c dc dc d  db db  b b  bc bc  c dc dc d   d bd bd b  bc de  e e  ec ec ec ec ec e   e be be be be be  e e  ed ed `
`decbadbcebdacdbedcaab ab ab ab a   a da da da da da  a a  ac ac ac ac ac a   a  c dc dc d  db db  b b  bc bc  c dc dc d   d bd bd b  bc bc de  e e  ec ec ec ec ec e   e be be be be be  e e  ed ed ed `
`decbadbcebdacdbedcabab ab ab ab a   a da da da da da  a a  ac ac ac ac ac a   a ba  c dc dc d  db db  b b  bc bc  c dc dc d   d bd bd b  bc bc  c de  e e  ec ec ec ec ec e   e be be be be be  e e  ed ed ed ed `
`decbadbcebdacdbedbab ab ab ab a   a da da da da da  a a  ac ac ac ac ac ac  c dc dc d  db db  b b  bc bc  c dc dc d   d bd bd b   b de  e e  ec ec ec ec ec e   e be be be be be  e e  ed ed `
`decbadbcebdacdbedbaab ab ab ab a   a da da da da da  a a  ac ac ac ac ac ac  c  c dc dc d  db db  b b  bc bc  c dc dc d   d bd bd b   b ab de  e e  ec ec ec ec ec e   e be be be be be  e e  ed ed ed `
`decbadbcebdacdbedbacab ab ab ab a   a da da da da da  a a  ac ac ac ac ac ac  c c   c dc dc d  db db  b b  bc bc  c dc dc d   d bd bd b   b ab ab de  e e  ec ec ec ec ec e   e be be be be be  e e  ed ed ed ed `
`decdabdceacdbcaedab ab ab ab ab  b b  bd bd bd bd bd b   b cb cb cb cb  c dc dc d   d ad ad a  ac ac  c c  cd cd  d ad ad a  de  e e  ec ec ec ec ec e   e ae ae ae ae ae  e e  ed `
`decdabdceacdbcaedbab ab ab ab ab  b b  bd bd bd bd bd b   b cb cb cb cb c   c dc dc d   d ad ad a  ac ac  c c  cd cd  d ad ad a  ab de  e e  ec ec ec ec ec e   e ae ae ae ae ae  e e  ed ed `
`decdabdceacdbcaedbcab ab ab ab ab  b b  bd bd bd bd bd b   b cb cb cb cb c   c  c dc dc d   d ad ad a  ac ac  c c  cd cd  d ad ad a  ab ab de  e e  ec ec ec ec ec e   e ae ae ae ae ae  e e  ed ed ed `
`decdabdceacdbcaedbcaab ab ab ab ab  b b  bd bd bd bd bd b   b cb cb cb cb c   c ac  c dc dc d   d ad ad a  ac ac  c c  cd cd  d ad ad a  ab ab  b de  e e  ec ec ec ec ec e   e ae ae ae ae ae  e e  ed ed ed ed `
`decdabdceacdbcaedaab ab ab ab ab  b b  bd bd bd bd bd b   b cb cb cb cb cb  c dc dc d   d ad ad a  ac ac  c c  cd cd  d ad ad a   a de  e e  ec ec ec ec ec e   e ae ae ae ae ae  e e  ed ed `
`decdabdceacdbcaedacab ab ab ab ab  b b  bd bd bd bd bd b   b cb cb cb cb cb  b  c dc dc d   d ad ad a  ac ac  c c  cd cd  d ad ad a   a ca de  e e  ec ec ec ec ec e   e ae ae ae ae ae  e e  ed ed ed `
`decdabdceacdbcaedacbab ab ab ab ab  b b  bd bd bd bd bd b   b cb cb cb cb cb  b b   c dc dc d   d ad ad a  ac ac  c c  cd cd  d ad ad a   a ca ca de  e e  ec ec ec ec ec e   e ae ae ae ae ae  e e  ed ed ed ed `
`decdecdbaecdbceacbdeab ab ab ab ab ab ab ab a   a ea ea ea ea ea  a a  ac ac ac ac  c dc dc d   d ed ed e  eb eb  b cb cb c   c ec ec e  eb eb  b de  e e  ec ec  c c  cd cd cd cd  d d  db db db db db d   d ed `
`cedcabeacdaebceadeab ab ab ab ab  b b  be be be be be b   b cb cb cb cb cb  c c  ce ce  e ae ae a   a ca ca c  ce ce  e e  ea ea  a de de d   d cd cd cd cd cd  d d  da da da da da d   d ed `
`cedcabeacdaebceadecab ab ab ab ab  b b  be be be be be b   b cb cb cb cb cb  b  c c  ce ce  e ae ae a   a ca ca c  ce ce  e e  ea ea  a ca de de d   d cd cd cd cd cd  d d  da da da da da d   d ed ed `
`cedcabeacdaebceadecbab ab ab ab ab  b b  be be be be be b   b cb cb cb cb cb  b b   c c  ce ce  e ae ae a   a ca ca c  ce ce  e e  ea ea  a ca ca de de d   d cd cd cd cd cd  d d  da da da da da d   d ed ed ed `
`cedcabeacdaebceadeaab ab ab ab ab  b b  be be be be be b   b cb cb cb cb cb cb  c c  ce ce  e ae ae a   a ca ca c  ce ce  e e  ea ea  a a  de de d   d cd cd cd cd cd  d d  da da da da da d   d ed ed `
`cedcabeacdaebceadeabab ab ab ab ab  b b  be be be be be b   b cb cb cb cb cb cb c   c c  ce ce  e ae ae a   a ca ca c  ce ce  e e  ea ea  a a  ab de de d   d cd cd cd cd cd  d d  da da da da da d   d ed ed ed `
`cedcebaecdbceacbdeab ab ab ab ab ab a   a ea ea ea ea ea  a a  ac ac ac ac  c c  ce ce  e e  eb eb  b cb cb c   c ec ec e  eb eb  b de de d   d cd cd cd cd cd  d d  db db db db db d   d ed `
`cedcebaecdbceacbdeaab ab ab ab ab ab a   a ea ea ea ea ea  a a  ac ac ac ac  c  c c  ce ce  e e  eb eb  b cb cb c   c ec ec e  eb eb  b ab de de d   d cd cd cd cd cd  d d  db db db db db d   d ed ed `
`cedcebaecdbceacbdeacab ab ab ab ab ab a   a ea ea ea ea ea  a a  ac ac ac ac  c c   c c  ce ce  e e  eb eb  b cb cb c   c ec ec e  eb eb  b ab ab de de d   d cd cd cd cd cd  d d  db db db db db d   d ed ed ed `
`cedcebaecdbceacbdebab ab ab ab ab ab a   a ea ea ea ea ea  a a  ac ac ac ac ac  c c  ce ce  e e  eb eb  b cb cb c   c ec ec e  eb eb  b b  de de d   d cd cd cd cd cd  d d  db db db db db d   d ed ed `
`cedcebaecdbceacbdebcab ab ab ab ab ab a   a ea ea ea ea ea  a a  ac ac ac ac ac a   c c  ce ce  e e  eb eb  b cb cb c   c ec ec e  eb eb  b b  bc de de d   d cd cd cd cd cd  d d  db db db db db d   d ed ed ed `

 Posted by Charlie on 2004-06-10 09:16:39

 Search: Search body:
Forums (0)