Código:
@echo off
mode con cols=80 lines=25
MEM/C | FIND /I "ANSI">NUL || ((
ECHO.DEVICE=%SystemRoot%\System32\ANSI.SYS /X
)>>%SystemRoot%\System32\CONFIG.NT
IF "%~1" NEQ "1" (
START "" %0 1 && EXIT/B 0
) ELSE ( EXIT/B 1
))
set per=
set px=2
set py=2
set "lim=X5Y2,X5Y3,X5Y4,X5Y5,X5Y6,X5Y7,X8Y11,X8Y12,X8Y13,X10Y0,X10Y1,X10Y2,X10Y3,X10Y4,X10Y5,X10Y6,X10Y7,X10Y8,X10Y9,X10Y10,X10Y11,X10Y12,X10Y13,X10Y14,X12Y5,X12Y6,X12Y7,X12Y8,X12Y9,X12Y10,X12Y11,X12Y12,X12Y13,X12Y14,X12Y15,X12Y16,X12Y17,X14Y0,X14Y1,X14Y2,X14Y3,X16Y0,X16Y1,X16Y2,X16Y3,X19Y0,X19Y1,X19Y2,X19Y3,X19Y4,X19Y5,X19Y6,X19Y7,X19Y8,X19Y9,X19Y10,X19Y11,X19Y12,X19Y13,X19Y14,X19Y15,X19Y17,X19Y18"
set llen=19
for %%i in (%lim%) do (
set/a llen1+=1
)
set slt=3
:init
cls
echo.
echo.
echo.
echo.
echo. XXXXXX
echo.
echo.
echo. XXX
echo.
echo.XXXXXXXXXXXXXX
echo.
echo. XXXXXXXXXXXXX
echo.
echo.XXX
echo.
echo.XXX
echo.
echo.
echo.XXXXXXXXXXXXXXXXXX
call:mov %py% %px% 1 34 %per%
choice /cwad0 /t0,01 /n
set/a py+=1
if %errorlevel%==1 (
if %slt%==0 (
set /a py-=3
set slt=99
)
)
if %errorlevel%==2 (
set/a px-=1
)
if %errorlevel%==3 (
set/a px+=1
)
if %px% LEQ 0 (
set/a px+=1
)
set/a l=llen-1
if %px% GEQ %l% (
set/a px-=1
)
if %slt% NEQ 0 (
set/a salto-=1
)
for %%i in (%lim%) do (
if X%py%Y%px% == %%i (
set /a py-=1
set slt=0
)
)
goto:init
:mov
COMMAND /C ECHO.[%1;%2H[0;%3;%4m%5
goto:eof
Saludos