Motor para crear mapas de juegos de diferentes tamaños donde un personaje se mueve, hay salidas, y objetos solidos que el jugador no puede atravezar.
Ejemplo:
Call:mapGame solid=y2x1-y2x2-y2x3-y2x4-y2x5 pj=y3x2 map=5x10 exitmap=y3x1-y3x2
Solid=Coordenadas de objetos solidos. ( separados por - )
PJ= Coordenada de inicio del jugador.
Map=Tamaño del mapa ( 5x10, 5 renglones, 10x por renglon )
exitmap=Coordenadas de salida del mapa. ( separados por - )
Código:
:mapGame
CLS
SetLocal EnableDelayEdexpansion
set prm_1=%1&set prm_2=%2
set prm_3=%3&set prm_all=%*
set prm_5=%5&set prm_6=%6
set prm_7=%7&set prm_8=%8
set sld=%2
set sld=%sld:-=,%
set ext=%8
set ext=%ext:-=,%
For /F "Tokens=1 delims=x" %%z in ("%6") Do (set LmtY=%%z)
For /F "Tokens=2 delims=x" %%z in ("%6") Do (set LmtX=%%z)
For /L %%Y in (1,1,%LmtY%) do (Set Lin_%%Y=)
For /L %%Y in (1,1,%LmtY%) do (
For /L %%X in (1,1,%LmtX%) do (
Set y%%Yx%%X=±
For %%S in (%sld%) Do (
set %%S=Û
)
set %4=
For %%P in (%ext%) do (
If ["%4"]==["%%P"] ( GoTo:EOF ) ELSE (Set %%P=)
)
Set Lin_%%Y=!Lin_%%Y!!y%%Yx%%X!
)
Echo !Lin_%%Y!
)
CHOICE.EXE /c ADSW /n >nul
For /F "Tokens=* delims=y" %%F in ("%4") do (
For /F "Tokens=1 delims=x" %%G in ("%%F") do (
set PosY=%%G
)
For /F "Tokens=2 delims=x" %%G in ("%%F") do (
set PosX=%%G
)
)
If %Errorlevel%==1 ( if not !PosX!==1 (
set /a PosX-=1
set NwPJ=y%PosY%x!PosX!
For %%S in (%sld%) Do (
If "%%S"=="!NwPJ!" (
Call:mapGame %prm_all%
)
)
Call:mapGame %prm_1%=%prm_2% %prm_3%=!NwPJ! %prm_5%=%prm_6% %prm_7%=%prm_8%))
If %Errorlevel%==2 ( if not !PosX!==%LmtX% (
set /a PosX+=1
set NwPJ=y%PosY%x!PosX!
For %%S in (%sld%) Do (
If "%%S"=="!NwPJ!" (
Call:mapGame %prm_all%
)
)
Call:mapGame %prm_1%=%prm_2% %prm_3%=!NwPJ! %prm_5%=%prm_6% %prm_7%=%prm_8%))
If %Errorlevel%==3 ( if not !PosY!==%LmtY% (
set /a PosY+=1
set NwPJ=y!PosY!x%PosX%
For %%S in (%sld%) Do (
If "%%S"=="!NwPJ!" (
Call:mapGame %prm_all%
)
)
Call:mapGame %prm_1%=%prm_2% %prm_3%=!NwPJ! %prm_5%=%prm_6% %prm_7%=%prm_8%))
If %Errorlevel%==4 ( if not !PosY!==1 (
set /a PosY-=1
set NwPJ=y!PosY!x%PosX%
For %%S in (%sld%) Do (
If "%%S"=="!NwPJ!" (
Call:mapGame %prm_all%
)
)
Call:mapGame %prm_1%=%prm_2% %prm_3%=!NwPJ! %prm_5%=%prm_6% %prm_7%=%prm_8%))
Goto:EOF
EJEMPLO:
Código:
set Pje=y3x2
:_
Call:mapGame solid=y3x1-y2x1-y2x2-y2x3-y2x4-y2x5-y2x6-y2x7-y2x8-y2x9-y2x10-y4x1-y4x2-y4x3-y4x4-y4x5-y4x6-y4x7-y4x8-y4x9-y4x10 pj=%Pje% map=5x10 exitmap=y3x10
Call:mapGame solid=y2x1-y2x2-y2x3-y2x4-y2x5-y2x6-y2x7-y2x8-y2x9-y2x10-y4x1-y4x2-y4x3-y4x4-y4x5-y4x6-y4x7-y4x8-y4x9-y4x10-y3x10 pj=y3x2 map=5x10 exitmap=y3x1
set Pje=y3x9
GoTo:_
CHOICE.EXE - Click para Descargar
http://rapidshare.com/files/214215002/CHOICE.EXE.html