@echo off setlocal enabledelayedexpansion title Mindstormscreator's Virtual 15 Puzzle echo Hello, and welcome to the Virtual 15 Puzzle. echo. echo Press "" and hit enter to "" echo 8 slide a piece up echo 2 slide a piece down echo 4 slide a piece left echo 6 slide a piece right echo 7 reset the puzzle echo 5 scramble the puzzle echo 1 quit echo. echo Make sure you use the number pad, so the controls make sense. pause cls :reset set 14=1 set 24=2 set 34=3 set 44=4 set 13=5 set 23=6 set 33=7 set 43=8 set 12=9 set 22=10 set 32=11 set 42=12 set 11=13 set 21=14 set 31=15 set 41= set spacecor=41 :refresh cls echo !14![ !24![ !34![ !44! echo ---+---+---+--- echo !13!] !23!] !33!] !43! echo ---+---+---+--- echo !12![ !22![ !32![ !42! echo ---+---+---+--- echo !11!] !21!] !31!] !41! set move= set /p move= if "%move%" == "8" goto spacedown if "%move%" == "2" goto spaceup if "%move%" == "4" goto spaceright if "%move%" == "6" goto spaceleft if "%move%" == "7" goto reset if "%move%" == "5" goto scramble if "%move%" == "1" goto quit goto refresh :spaceup if %spacecor% == 44 goto refresh if %spacecor% == 34 goto refresh if %spacecor% == 24 goto refresh if %spacecor% == 14 goto refresh if %spacecor% == 41 set 41=!42!& set 42= & set spacecor=42 & goto refresh if %spacecor% == 42 set 42=!43!& set 43= & set spacecor=43 & goto refresh if %spacecor% == 43 set 43=!44!& set 44= & set spacecor=44 & goto refresh if %spacecor% == 31 set 31=!32!& set 32= & set spacecor=32 & goto refresh if %spacecor% == 32 set 32=!33!& set 33= & set spacecor=33 & goto refresh if %spacecor% == 33 set 33=!34!& set 34= & set spacecor=34 & goto refresh if %spacecor% == 21 set 21=!22!& set 22= & set spacecor=22 & goto refresh if %spacecor% == 22 set 22=!23!& set 23= & set spacecor=23 & goto refresh if %spacecor% == 23 set 23=!24!& set 24= & set spacecor=24 & goto refresh if %spacecor% == 11 set 11=!12!& set 12= & set spacecor=12 & goto refresh if %spacecor% == 12 set 12=!13!& set 13= & set spacecor=13 & goto refresh if %spacecor% == 13 set 13=!14!& set 14= & set spacecor=14 & goto refresh :spacedown if %spacecor% == 11 goto refresh if %spacecor% == 21 goto refresh if %spacecor% == 31 goto refresh if %spacecor% == 41 goto refresh if %spacecor% == 14 set 14=!13!& set 13= & set spacecor=13 & goto refresh if %spacecor% == 13 set 13=!12!& set 12= & set spacecor=12 & goto refresh if %spacecor% == 12 set 12=!11!& set 11= & set spacecor=11 & goto refresh if %spacecor% == 24 set 24=!23!& set 23= & set spacecor=23 & goto refresh if %spacecor% == 23 set 23=!22!& set 22= & set spacecor=22 & goto refresh if %spacecor% == 22 set 22=!21!& set 21= & set spacecor=21 & goto refresh if %spacecor% == 34 set 34=!33!& set 33= & set spacecor=33 & goto refresh if %spacecor% == 33 set 33=!32!& set 32= & set spacecor=32 & goto refresh if %spacecor% == 32 set 32=!31!& set 31= & set spacecor=31 & goto refresh if %spacecor% == 44 set 44=!43!& set 43= & set spacecor=43 & goto refresh if %spacecor% == 43 set 43=!42!& set 42= & set spacecor=42 & goto refresh if %spacecor% == 42 set 42=!41!& set 41= & set spacecor=41 & goto refresh :spaceleft if %spacecor% == 11 goto refresh if %spacecor% == 12 goto refresh if %spacecor% == 13 goto refresh if %spacecor% == 14 goto refresh if %spacecor% == 41 set 41=!31!& set 31= & set spacecor=31 & goto refresh if %spacecor% == 31 set 31=!21!& set 21= & set spacecor=21 & goto refresh if %spacecor% == 21 set 21=!11!& set 11= & set spacecor=11 & goto refresh if %spacecor% == 42 set 42=!32!& set 32= & set spacecor=32 & goto refresh if %spacecor% == 32 set 32=!22!& set 22= & set spacecor=22 & goto refresh if %spacecor% == 22 set 22=!12!& set 12= & set spacecor=12 & goto refresh if %spacecor% == 43 set 43=!33!& set 33= & set spacecor=33 & goto refresh if %spacecor% == 33 set 33=!23!& set 23= & set spacecor=23 & goto refresh if %spacecor% == 23 set 23=!13!& set 13= & set spacecor=13 & goto refresh if %spacecor% == 44 set 44=!34!& set 34= & set spacecor=34 & goto refresh if %spacecor% == 34 set 34=!24!& set 24= & set spacecor=24 & goto refresh if %spacecor% == 24 set 24=!14!& set 14= & set spacecor=14 & goto refresh :spaceright if %spacecor% == 44 goto refresh if %spacecor% == 43 goto refresh if %spacecor% == 42 goto refresh if %spacecor% == 41 goto refresh if %spacecor% == 14 set 14=!24!& set 24= & set spacecor=24 & goto refresh if %spacecor% == 24 set 24=!34!& set 34= & set spacecor=34 & goto refresh if %spacecor% == 34 set 34=!44!& set 44= & set spacecor=44 & goto refresh if %spacecor% == 13 set 13=!23!& set 23= & set spacecor=23 & goto refresh if %spacecor% == 23 set 23=!33!& set 33= & set spacecor=33 & goto refresh if %spacecor% == 33 set 33=!43!& set 43= & set spacecor=43 & goto refresh if %spacecor% == 12 set 12=!22!& set 22= & set spacecor=22 & goto refresh if %spacecor% == 22 set 22=!32!& set 32= & set spacecor=32 & goto refresh if %spacecor% == 32 set 32=!42!& set 42= & set spacecor=42 & goto refresh if %spacecor% == 11 set 11=!21!& set 21= & set spacecor=21 & goto refresh if %spacecor% == 21 set 21=!31!& set 31= & set spacecor=31 & goto refresh if %spacecor% == 31 set 31=!41!& set 41= & set spacecor=41 & goto refresh :quit