Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @echo off
- :: You need the other file to play the game
- :: http://pastebin.com/fsA7CYZ4
- SetLocal EnableDelayedExpansion
- mode con cols=34 lines=18
- title Snake Display by Oysi
- color 0a
- :: File directory
- cd "%userprofile%"
- if not exist "iccs" md "iccs"
- cd "%userprofile%\iccs"
- if not exist "Snake" md "Snake"
- cd "%userprofile%\iccs\Snake"
- :setup
- :: Load settings
- set pings=10
- set slength=4
- set foodEaten=0
- :: Clear out the map
- for /L %%X in (1,1,32) do (
- for /L %%Y in (1,1,16) do (
- set g%%X_%%Y=
- )
- )
- :: Create borders
- for /L %%X in (1,1,32) do (set g%%X_1=Û& set g%%X_16=Û)
- for /L %%Y in (1,1,16) do (set g1_%%Y=Û& set g32_%%Y=Û)
- :: Create snake
- for /L %%S in (1,1,%slength%) do (
- set /a y=2+%%S
- set s%%Sx=3
- set s%%Sy=!y!
- set g!s%%Sx!_!s%%Sy!=O
- )
- :: Create food
- set g10_10=X
- goto menu
- :menu
- call "move.bat"
- if not "%move%"=="" (
- :: Take away snake's tail from map
- set g!s%slength%x!_!s%slength%y!=
- :: Move snake a notch
- for /L %%S in (%slength%,-1,2) do (
- set /a n=%%S - 1
- for /L %%N in (!n!,!n!,!n!) do (
- set s%%Sx=!s%%Nx!
- set s%%Sy=!s%%Ny!
- )
- )
- )
- :: Handle input
- if "%move%"=="a" (set /a s1x=%s1x% - 1)
- if "%move%"=="w" (set /a s1y=%s1y% - 1)
- if "%move%"=="s" (set /a s1y=%s1y% + 1)
- if "%move%"=="d" (set /a s1x=%s1x% + 1)
- if not "%move%"=="" (
- :: Collision detection
- if "!g%s1x%_%s1y%!"=="Û" (goto fail)
- if "!g%s1x%_%s1y%!"=="O" (goto fail)
- :: Food eating
- if "!g%s1x%_%s1y%!"=="X" (
- set /a foodEaten=%foodEaten% + 1
- set /a slength=%slength% + 1
- set /a pingDrop=!foodEaten! / 3
- set /a pings=10 - !pingDrop!
- if !pings! LSS 3 (set pings=3)
- :: Spawn more food
- :foodLoop
- set /a x=%Random%*29/32767 + 2
- set /a y=%Random%*13/32767 + 2
- for /L %%X in (!x!,!x!,!x!) do (
- for /L %%Y in (!y!,!y!,!y!) do (
- if not "!g%%X_%%Y!"==" " (goto foodLoop)
- )
- )
- set g!x!_!y!=X
- )
- :: Add snake's head to map
- set g%s1x%_%s1y%=O
- )
- cls
- echo.
- :: Render image
- for /L %%Y in (1,1,16) do (
- set line=
- for /L %%X in (1,1,32) do (
- set line=!line!!g%%X_%%Y!
- )
- echo !line!
- )
- :: Ping to wait for screen to refresh
- for /L %%P in (1,1,%pings%) do (ping localhost -n 1 >nul)
- goto menu
- :fail
- > "move.bat" echo set move=
- set space=
- if "%foodEaten:~1,1%"=="" (set space=%space% )
- if "%foodEaten:~2,1%"=="" (set space=%space% )
- cls
- echo.
- echo ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
- echo Û Û
- echo Û S N A K E by Oysi Û
- echo Û Û
- echo Û You failed at %foodEaten% food eaten %space%Û
- echo Û Û
- echo Û Write ^<start^> and press Û
- echo Û ^<Enter^> to play again Û
- echo Û Û
- echo ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
- :failLoop
- ping localhost -n 1 >nul
- call "move.bat"
- if not "%move%"=="start" (goto failLoop)
- > "move.bat" echo set move=
- goto setup
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement