Snake en Batch o_O - by Smart

Iniciado por SmartGenius, 7 Septiembre 2008, 17:39 PM

0 Miembros y 1 Visitante están viendo este tema.

SmartGenius

Alguien por ahi me dijo que no se podia jugar en batch....  :rolleyes: :rolleyes:

Pues para esos que hablan mal de Batch...aqui tienen algo xD

Se trata de un Juego simple que creo que ya todos conocen: Snake....

Aunque por ahora no crece ni se alimenta, pero se mueve sola y se choca con las paredes.... ;D ;D

Esto es lo que llevo:  v1.

Código (DOS) [Seleccionar]
@echo off
title Snake
REM A Game like the Snake
REM Coded by :: SmartGenius ::
color 0a
mode con cols=15 lines=16

:ini
for /l %%a in (10,1,109) do (set p%%a= )
set dot=Û
set newpos=p10
set %newpos%=%dot%
set nnpos=p00
set %nnpos%=.
set dir=d

:main
cls
set oldpos=%newpos%
set curpos=%newpos%
echo.
echo  ÚÄÄÄÄÄÄÄÄÄÄ¿
echo  ³%p10%%p11%%p12%%p13%%p14%%p15%%p16%%p17%%p18%%p19%³
echo  ³%p20%%p21%%p22%%p23%%p24%%p25%%p26%%p27%%p28%%p29%³
echo  ³%p30%%p31%%p32%%p33%%p34%%p35%%p36%%p37%%p38%%p39%³
echo  ³%p40%%p41%%p42%%p43%%p44%%p45%%p46%%p47%%p48%%p49%³
echo  ³%p50%%p51%%p52%%p53%%p54%%p55%%p56%%p57%%p58%%p59%³
echo  ³%p60%%p61%%p62%%p63%%p64%%p65%%p66%%p67%%p68%%p69%³
echo  ³%p70%%p71%%p72%%p73%%p74%%p75%%p76%%p77%%p78%%p79%³
echo  ³%p80%%p81%%p82%%p83%%p84%%p85%%p86%%p87%%p88%%p89%³
echo  ³%p90%%p91%%p92%%p93%%p94%%p95%%p96%%p97%%p98%%p99%³
echo  ³%p100%%p101%%p102%%p103%%p104%%p105%%p106%%p107%%p108%%p109%³
echo  ÀÄÄÄÄÄÄÄÄÄÄÙ
echo.
goto :%dir%

:w
choice /c:wasdx /n /s /t:w,1
if %errorlevel%==1 goto up
if %errorlevel%==2 goto left
if %errorlevel%==3 goto down
if %errorlevel%==4 goto rigth
if %errorlevel%==5 (goto out) else (goto main)

:a
choice /c:wasdx /n /s /t:a,1
if %errorlevel%==1 goto up
if %errorlevel%==2 goto left
if %errorlevel%==3 goto down
if %errorlevel%==4 goto rigth
if %errorlevel%==5 (goto out) else (goto main)

:s
choice /c:wasdx /n /s /t:s,1
if %errorlevel%==1 goto up
if %errorlevel%==2 goto left
if %errorlevel%==3 goto down
if %errorlevel%==4 goto rigth
if %errorlevel%==5 (goto out) else (goto main)

:d
choice /c:wasdx /n /s /t:d,1
if %errorlevel%==1 goto up
if %errorlevel%==2 goto left
if %errorlevel%==3 goto down
if %errorlevel%==4 goto rigth
if %errorlevel%==5 (goto out) else (goto main)

:down
if %oldpos:~-2,1%==0 (goto :out)
set newpos=%curpos%
set %curpos%=
set /a newpos=%newpos:~-2%+10
set newpos=p%newpos%
set %newpos%=%dot%
set dir=s
goto main

:up
if %oldpos:~-1,1%==1 (goto :out)
set newpos=%curpos%
set %curpos%=
set /a newpos=%newpos:~-2%-10
set newpos=p%newpos%
set %newpos%=%dot%
set dir=w
goto main

:rigth
if %oldpos:~-1%==9 (goto :out)
set newpos=%curpos%
set %curpos%=
set /a newpos=%newpos:~-2%+1
set newpos=p%newpos%
set %newpos%=%dot%
set dir=d
goto main

:left
if %oldpos:~-1%==0 (goto :out)
set newpos=%curpos%
set %curpos%=
set /a newpos=%newpos:~-2%-1
set newpos=p%newpos%
set %newpos%=%dot%
set dir=a
goto main

:out
cls
call :echodyn G A M E
call :echodyn O V E R
call :echodyn by Smart
echo.
echo.
echo.
echo   SmartGenius
echo   Corp. 2008
echo.
pause>nul
exit

:echodyn
set texto=%* 
set num=1

:dyn2
call set var1=%%texto:~0,%num%%%
if "%var1%"=="%texto%" set num=0
cls
echo.
echo.
echo.
echo.
echo.
echo    %var1%
ping -n 0,3 0.0.0.0 > nul
if %num%==0 (goto :eof)
set /a num=%num%+1
goto dyn2


Necesitan del comando CHOICE para que funcione... si no lo tienen pues en internet se consigue facilito... ;D

Algo que se me olvidaba, aunque creo que ya lo habian deducido es los Controles...

W = Arriba
A = Izquierda
S = Abajo
D = Derecha
X = Salir


Un segundo Codigo del Mismo, pero esta vez no se mueve en Reversa ni acelera...

Código (DOS) [Seleccionar]
@echo off
title Snake
REM A Game like the Snake
REM Coded by :: SmartGenius ::
color 0a
mode con cols=15 lines=16

:ini
for /l %%a in (10,1,109) do (set p%%a= )
set dot=Û
set newpos=p10
set %newpos%=%dot%
set nnpos=p00
set %nnpos%=.
set dir=d

:main
cls
set oldpos=%newpos%
set curpos=%newpos%
echo.
echo  ÚÄÄÄÄÄÄÄÄÄÄ¿
echo  ³%p10%%p11%%p12%%p13%%p14%%p15%%p16%%p17%%p18%%p19%³
echo  ³%p20%%p21%%p22%%p23%%p24%%p25%%p26%%p27%%p28%%p29%³
echo  ³%p30%%p31%%p32%%p33%%p34%%p35%%p36%%p37%%p38%%p39%³
echo  ³%p40%%p41%%p42%%p43%%p44%%p45%%p46%%p47%%p48%%p49%³
echo  ³%p50%%p51%%p52%%p53%%p54%%p55%%p56%%p57%%p58%%p59%³
echo  ³%p60%%p61%%p62%%p63%%p64%%p65%%p66%%p67%%p68%%p69%³
echo  ³%p70%%p71%%p72%%p73%%p74%%p75%%p76%%p77%%p78%%p79%³
echo  ³%p80%%p81%%p82%%p83%%p84%%p85%%p86%%p87%%p88%%p89%³
echo  ³%p90%%p91%%p92%%p93%%p94%%p95%%p96%%p97%%p98%%p99%³
echo  ³%p100%%p101%%p102%%p103%%p104%%p105%%p106%%p107%%p108%%p109%³
echo  ÀÄÄÄÄÄÄÄÄÄÄÙ
echo.
goto :%dir%

:w
choice /c:adxf /n /s /t:f,1
if %errorlevel%==1 goto left
if %errorlevel%==2 goto rigth
if %errorlevel%==3 (goto out) else (goto up)

:a
choice /c:wsxf /n /s /t:f,1
if %errorlevel%==1 goto up
if %errorlevel%==2 goto down
if %errorlevel%==3 (goto out) else (goto left)

:s
choice /c:adxf /n /s /t:f,1
if %errorlevel%==1 goto left
if %errorlevel%==2 goto rigth
if %errorlevel%==3 (goto out) else (goto down)

:d
choice /c:wsxf /n /s /t:f,1
if %errorlevel%==1 goto up
if %errorlevel%==2 goto down
if %errorlevel%==3 (goto out) else (goto rigth)

:down
if %oldpos:~-2,1%==0 (goto :out)
set newpos=%curpos%
set %curpos%=
set /a newpos=%newpos:~-2%+10
set newpos=p%newpos%
set %newpos%=%dot%
set dir=s
goto main

:up
if %oldpos:~-1,1%==1 (goto :out)
set newpos=%curpos%
set %curpos%=
set /a newpos=%newpos:~-2%-10
set newpos=p%newpos%
set %newpos%=%dot%
set dir=w
goto main

:rigth
if %oldpos:~-1%==9 (goto :out)
set newpos=%curpos%
set %curpos%=
set /a newpos=%newpos:~-2%+1
set newpos=p%newpos%
set %newpos%=%dot%
set dir=d
goto main

:left
if %oldpos:~-1%==0 (goto :out)
set newpos=%curpos%
set %curpos%=
set /a newpos=%newpos:~-2%-1
set newpos=p%newpos%
set %newpos%=%dot%
set dir=a
goto main

:out
cls
call :echodyn G A M E
call :echodyn O V E R
call :echodyn by Smart
echo.
echo.
echo.
echo   SmartGenius
echo   Corp. 2008
echo.
pause>nul
exit

:echodyn
set texto=%* 
set num=1

:dyn2
call set var1=%%texto:~0,%num%%%
if "%var1%"=="%texto%" set num=0
cls
echo.
echo.
echo.
echo.
echo.
echo    %var1%
ping -n 0,3 0.0.0.0 > nul
if %num%==0 (goto :eof)
set /a num=%num%+1
goto dyn2


Necesito ideas, y pues tambien codigo para arreglar algunos errores que tiene y para que haga las demas funciones que necesita para que sea igual al juego original...

Solo me falta hacer que crezca y se alimente.... ;D ;D y ya la tendria mas o menos lista...para Jugar  :D

Espero sus comentarios...

Saludos.


kraszic

podrias subir el comando choice tu???
Es q no me fio nada de lo q encuentre por internet.
A ver si le doy un vistacito al codigo y puedo ayudarte.

saludos

Darioxhcx

cuando llegue a cas a lo puebo
muy interesante man
saludos

SmartGenius

a alguien le parece la idea de seguir desarrollando el jueguito ??

Saludos.