elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Batch Game] Snake
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Batch Game] Snake  (Leído 3,133 veces)
modubat

Desconectado Desconectado

Mensajes: 7


Ver Perfil
[Batch Game] Snake
« en: 26 Agosto 2010, 17:29 pm »

Esta es mi versión del famoso juego snake :P

wasd para el movimiento

p para hacer una pausa

x para salir

Código
  1. :: [Batch Game] Snake
  2.  
  3. :: by modubat
  4.  
  5. @echo off
  6. setlocal enableextensions enabledelayedexpansion
  7. mode con cols=25 lines=14
  8. title Snake
  9. set "filas=9" & set "columnas=17"
  10. set "print=Û" & set "jugador=" & set "fondo= "
  11. set "coordenadas=" & set "personaje=;01X01Y" & set "punto=;09X05Y"
  12. set "puntos=-1"
  13. set "opcion=D"
  14. call :puntos "%filas%" "%columnas%" "%coordenadas%" "%personaje%"
  15.  
  16. :Ini
  17. more/c <nul
  18. set "coordenadas=%coordenadas%%personaje%"
  19. if "%personaje%"=="%punto%" ( call :puntos "%filas%" "%columnas%" "%coordenadas%" "%personaje%" ) else (
  20. call :eliminar "!coordenadas!"
  21. )
  22. call :coordenates "%filas%" "%columnas%" "%coordenadas%" "%fondo%" "%print%" "%personaje%" "%jugador%" "%punto%"
  23. call :set_pers "%personaje%"
  24. choice /c DASWPX /n /t 1 /d %opcion% >nul
  25. if "%errorlevel%" equ "5" set "opcion=%opcion%" & pause>nul
  26. if "%errorlevel%" equ "6" goto :lost
  27. set "token=%errorlevel%"
  28. for /f "tokens=%token% delims=$" %%a in ("D$A$S$W") do set "opcion=%%a"
  29. for /f "tokens=%token% delims=$" %%b in ("right$left$down$up") do (
  30. call :Move %%b "!Cord_x!" "!Cord_y!" "!filas!" "!columnas!")
  31. if "%errorlevel%" equ "1" goto :lost
  32. if "%errorlevel%" equ "0" call:col "%coordenadas%" "%personaje%" "%rangX%" "%rangY%"
  33. if "%errorlevel%" equ "1" goto :lost
  34. if "%errorlevel%" equ "0" set "personaje=;%rangX%X%rangY%Y"
  35. goto :Ini
  36.  
  37. :coordenates filas columnas coordenadas fondo print personaje
  38. setlocal enableextensions enabledelayedexpansion
  39. for %%X in ("%~1" "%~2" "%~3" "%~4" "%~5") do if /i "%%~X"=="" exit /b 1
  40. for /l %%i in (1 1 %~2) do (
  41. for /l %%j in (1 1 %~1) do (
  42. if not %%i LSS 10 (set var_x=%%i) else (set var_x=0%%i)
  43. if not %%j LSS 10 (set var_y=%%j) else (set var_y=0%%j)
  44. set "!var_x!X!var_y!Y=%~4"
  45. ))
  46. for %%f in (%~3) do set "%%f=%~5"
  47. for %%g in (%~6) do set "%%g=%~7"
  48. for %%h in (%~8) do set "%%h=Ï"
  49. for /l %%a in (1 1 %~1) do (
  50. if not %%a LSS 10 (set find_y=%%a) else (set find_y=0%%a)
  51. for /f "Tokens=2 delims==" %%b in ('set ^| find "!find_y!Y" ^| find /v ";" ^| sort') do (
  52. set "fila%%a=!fila%% style="color: #448888;">a!%% style="color: #448888;">b"))
  53. echo.  ±±±±±±±±±±±±±±±±±±±
  54. for /l %%z in (%~1 -1 1) do (echo.  ±!fila%% style="color: #448888;">z!±)
  55. echo.  ±±±±±±±±±±±±±±±±±±±
  56.  
  57. :set_pers
  58. for /f "tokens=1,2 delims=;XY" %%a in ("%~1") do (
  59. set Cord_x=%%~a
  60. set Cord_y=%%~b)
  61. goto:eof
  62.  
  63. :eliminar
  64. for /f "tokens=1* delims=; eol=" %%a in ("%~1") do (
  65. set "%%~a="
  66. set "coordenadas=;%%~b"
  67. )
  68.  
  69. set "Cord_X=%~2" & set "Cord_Y=%~3"
  70. for %%a in ("Cord_X" "Cord_Y") do if !% style="color: #448888;">%~a! lss 10 set "%%~a=!% style="color: #448888;">%~a:~1!"
  71. if "%1"=="right" set/a "rangX=Cord_X+1,rangY=Cord_Y"
  72. if "%1"=="left" set/a "rangX=Cord_X-1,rangY=Cord_Y"
  73. if "%1"=="down" set/a "rangX=Cord_X,rangY=Cord_Y-1
  74. if "%1"=="up" set/a "rangX=Cord_X,rangY=Cord_Y+1"
  75. if %rangX% GTR %~5 (exit/b 1) else if %rangX% LEQ 0 (exit/b 1)
  76. if %rangY% GTR %~4 (exit/b 1) else if %rangY% LEQ 0 (exit/b 1)
  77. for %%b in ("rangX" "rangY") do if !% style="color: #448888;">%~b! LSS 10 set "%%~b=0!% style="color: #448888;">%~b!"
  78. exit/b 0
  79.  
  80. :puntos filas columnas coordenadas personaje
  81. set/a Pos_x=%random%%%%~2+1,Pos_y=%random%%%%~1+1
  82. for %%a in ("Pos_X" "Pos_Y") do if !% style="color: #448888;">%~a! LSS 10 set "%%~a=0!% style="color: #448888;">%~a!"
  83. set "punto=%Pos_x%X%Pos_y%Y"
  84. for %%a in (%~3,%~4) do if "%%a"=="!punto!" goto :puntos
  85. set/a puntos+=1
  86. set "punto=;%punto%"
  87. goto:eof
  88.  
  89. :col
  90. for %%a in (%~1) do for %%b in (;%~3X%~4Y) do if "%%a"=="%%b" exit/b 1
  91. exit/b 0
  92.  
  93. :lost
  94. more/c <nul
  95. echo GAME OVER!!!
  96. echo.Puntos:%puntos%
  97. pause>nul
  98.  


saludos



En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ACM 3300 .. Snake Pit .. requiero un empujon
Programación General
Hadess_inf 3 3,387 Último mensaje 13 Enero 2012, 16:19 pm
por Hadess_inf
Video_Tutorial_de_Culebrita_(Snake)_HTML5_(canvas)_y_Javascript
Desarrollo Web
lluvplay 1 2,268 Último mensaje 1 Julio 2012, 01:11 am
por Graphixx
[BATCH GAME] ¡Batch Tetris V 1.0!
Scripting
Binary_Death 2 4,418 Último mensaje 3 Agosto 2012, 06:14 am
por Binary_Death
[C] Juego snake
Programación C/C++
Dacan 4 4,911 Último mensaje 22 Marzo 2013, 05:32 am
por Dacan
Ayuda en Código de Snake
Programación C/C++
Firu 5 3,594 Último mensaje 26 Marzo 2013, 22:08 pm
por 85
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines