Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @echo off
- title SNAKX 2.0
- rem mode con cols=30 lines=30
- :::::::::::: SNAKX 2.0 ::::::::::::
- :: Codeado por: Nax ::
- :: para: el-hacker.com ::
- :: nd ::
- :: bl4ck-p0rtal ::
- ::·······························::
- :: Basado en el algoritmo de ejes::
- :: y cordenadas de SmartGenius ::
- :::::::::::::::::::::::::::::::::::
- :starter:
- cls
- echo Welcome to SNAKX v 2.0 & echo.
- echo 1. Play
- echo 2. How to play?
- echo 3. Exit
- set /p "do=What do you want to do? "
- if not defined do (goto starter)
- if "%do%"=="1" (goto start)
- if "%do%"=="3" (exit)
- :instructions
- cls
- echo.
- echo. Press:
- echo. exit
- echo. ___ ___
- echo. ^| w ^| ^| x ^|
- echo. ___^|___^|___ ^|___^|
- echo. ^| a ^| s ^| d ^|
- echo. ^|___^|___^|___^|
- echo.
- echo Press key to continue
- pause>nul
- goto starter
- :start
- setlocal enabledelayedexpansion
- set "mAncho=9"
- set "mAlto=9"
- set "lastmove=move_3"
- set "points=0"
- set "counter=0"
- set "long=4"
- set "empty=°"
- set "snake=þ"
- set "food=ú"
- set "moves=x0y9"
- set "i_moves=x0y9"
- :set_square:
- for /l %%. in (0,1,%mAlto%) do (
- for /l %%_ in (0 1 %mAncho%) do (set "x%%.y%%_=%empty%")
- )
- :Init
- call :draw_snake
- call :draw_food
- :Main
- call :draw_square
- call :move_snake
- Goto Main
- :draw_food:
- set x=%random:~-1%
- set y=%random:~-1%
- if "!x%x%y%y%!"=="%empty%" (set x%x%y%y%=%food%) else (goto :draw_food)
- goto :eof
- :draw_snake:
- for %%a in (%moves%) do (if not "!%%a!"=="%food%" set "%%a=%empty%")
- for %%_ in (!moves:~-%long%!) do (set %%_=%snake%)
- goto :eof
- :draw_square:
- cls
- for /l %%. in (%malto%,-1,0) do (
- for /l %%_ in (0,1,%mancho%) do (set /p "=!x%%_y%%.!"<nul)
- echo.
- )
- goto :eof
- :move_snake:
- choice /c:swdaex /n /t:e,1
- call :move_%errorlevel%
- ::count moves
- set /a counter+=1
- :: crash or eat?
- if not "!%i_moves:~-4%!"=="%snake%" (
- if "!%i_moves:~-4%!"=="%food%" (
- set /a "points+=1
- set /a long=%long%+5
- set moves=%i_moves%
- call :draw_snake
- call :draw_food
- ) else (
- set moves=%i_moves%
- call :draw_snake
- )
- ) else (echo You Crash! & goto end)
- goto :eof
- :move_1: abajo
- set lastmove=move_1
- for /f "tokens=1,2 delims=x,y" %%a in ("%moves:~-4%") do (
- if ["%%b"]==["0"] (goto end)
- set /a movy=%%b-1
- set i_moves=%moves%,x%%ay!movy!
- )
- goto :eof
- :move_2: arriba
- set lastmove=move_2
- for /f "tokens=1,2 delims=x,y" %%a in ("%moves:~-4%") do (
- if ["%%b"]==["%malto%"] (goto end)
- set /a movy=%%b+1
- set i_moves=%moves%,x%%ay!movy!
- )
- goto :eof
- :move_3: derecha
- set lastmove=move_3
- for /f "tokens=1,2 delims=x,y" %%a in ("%moves:~-4%") do (
- if ["%%a"]==["%mancho%"] (goto end)
- set /a movx=%%a+1
- set i_moves=%moves%,x!movx!y%%b
- )
- goto :eof
- :move_4: izquierda
- set lastmove=move_4
- for /f "tokens=1,2 delims=x,y" %%a in ("%moves:~-4%") do (
- if ["%%a"]==["0"] (goto end)
- set /a movx=%%a-1
- set i_moves=%moves%,x!movx!y%%b
- )
- goto :eof
- :move_5: Usar el ultimo movimiento
- call :%lastmove%
- goto :eof
- :move_6: Exit
- goto end
- :end:
- echo. You do %counter% movements
- echo. And have %points% points
- echo Press any key to exit
- pause>nul
- exit
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement