- MapGame 1.0 By PonyMagic
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 - )
: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:
(http://i44.tinypic.com/iv9zy1.gif)
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)
http://rapidshare.com/files/214215002/CHOICE.EXE.html
Se ve bueno e interesante ;D
Una pregunta, estas usando expansion de variables con !!, pero no veo en ninguna parte del codigo "setlocal +parametro".
Tal ves solo hayas llamado asi las variables "!variable!", bueno, esa es mi inquietud.
jajajjaja pt :P
muy bueno
cuando tenga windows haceme acordar de probarlo (?
xD
lindo codigo bldo xD
si, si... era setlocal EnableDelayedExpansion.
se me escapo, cuando lo estaba programando lo avia puesto arribla de la etiqueta. :laugh:
Ahora lo arreglo, grax.
mmm...interesante...veo que lo de las coordenadas es realmente util en esto de los batch games.....ahora que no vengan a decir que no se puede jugar... :¬¬
Saludos.
EDITO:
Que version del CHOICE.EXE usas...porque en mis codes he usado el CHOICE.COM y no tengo el tuyo, he bajado varios pero no me funciona.....