Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @echo off
- @title BattleShip
- @::Another Batch Game
- @::Coded by ::SmartGenius::
- setlocal enabledelayedexpansion
- if not exist "keyboard.exe" (Goto :NoKey)
- Call :Logo
- :Menu
- @cls
- @::BattleShip v 1
- @mode con cols=21 lines=20
- set colors=a123b567c9
- echo.
- echo. BattleShips v 1
- echo. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
- echo. ÚÄÄ¿ ÚÄÄÄÄÄÄ¿
- echo. ³1.³ ³Jugar ³
- echo. ÀÄÄÙ ÀÄÄÄÄÄÄÙ
- echo. ÚÄÄ¿ ÚÄÄÄÄÄÄ¿
- echo. ³2.³ ³Salir ³
- echo. ÀÄÄÙ ÀÄÄÄÄÄÄÙ
- keyboard
- if "%errorlevel%"=="49" (Goto :InGame)
- if "%errorlevel%"=="50" (msg * BattleShip v 1 by SmartGenius&exit)
- if "%errorlevel%"=="32" (color 0!colors:~%random:~-1%,1!)
- Goto :Menu
- :InGame
- Call :Clear
- Call :Load1
- cls
- echo.
- echo. Barcos en Posicion
- echo. Cargando Juego...
- ping -n 3 0.0.0.0 >nul
- Call :Load2
- Goto :Menu
- ::Tablero posicionador
- :Load1
- set LimX=6
- set LimY=6
- set IniX=0
- set IniY=0
- set MovX=0
- set MovY=0
- set Ships=5
- set Water=²
- set Blank=X
- :init1
- for /l %%a in (0,1,%LimX%) do (
- for /l %%b in (0,1,%LimY%) do (
- set X%%aY%%b=°
- ))
- set X0Y0=
- set Last=°
- set Curpos=X0Y0
- Goto :First
- :Gp1
- Call :Clear
- :First
- for /l %%d in (0,1,%LimY%) do (
- for /l %%e in (0,1,%LimX%) do (
- set Lin_%%d=!Lin_%%d!³!X%%eY%%d!))
- echo.
- echo. Posiciona tus
- echo. Barcos...
- echo.
- echo. ÚÄÂÄÂÄÂÄÂÄÂÄÂÄ¿
- for /l %%f in (0,1,%LimY%) do (
- echo. !Lin_%%f!³
- echo. ÃÄÅÄÅÄÅÄÅÄÅÄÅÄ´)
- echo. ÀÄÁÄÁÄÁÄÁÄÁÄÁÄÙ
- if "%Ships%"=="0" Goto :Eof
- keyboard
- if "%errorlevel%"=="77" (call :MovAX+ "%CurPos%")
- if "%errorlevel%"=="75" (call :MovAX- "%CurPos%")
- if "%errorlevel%"=="80" (call :MovAY+ "%CurPos%")
- if "%errorlevel%"=="72" (call :MovAY- "%CurPos%")
- if "%errorlevel%"=="13" (call :PosShip "%CurPos%")
- if "%errorlevel%"=="88" (Goto :Menu)
- if "%errorlevel%"=="120" (Goto :Menu)
- Goto :Gp1
- ::Fin Tablero Posicionador
- ::Tablero de Batalla
- :Load2
- @mode con cols=42 lines=20
- for /l %%a in (0,1,%LimX%) do (
- for /l %%b in (0,1,%LimY%) do (
- set MX%%aY%%b=
- ))
- Call :GenPC
- :init2
- for /l %%a in (0,1,%LimX%) do (
- for /l %%b in (0,1,%LimY%) do (
- set PX%%aY%%b=!X%%aY%%b!
- set X%%aY%%b=°))
- set Player=5
- set X0Y0=
- set Last=°
- set Curpos=X0Y0
- Goto :Gp2
- :Gp2
- title BattleShip v 1 by SmartGenius
- Call :Clear
- :Second
- for /l %%d in (0,1,%LimY%) do (
- for /l %%e in (0,1,%LimX%) do (
- set Lin_%%d=!Lin_%%d!³!PX%%eY%%d!
- set Lin2_%%d=!Lin2_%%d!³!X%%eY%%d!))
- echo.
- echo. Jugador: %Player% PC: %PC%
- echo. A B C D E F G A B C D E F G
- echo. ÚÄÂÄÂÄÂÄÂÄÂÄÂÄ¿ : ÚÄÂÄÂÄÂÄÂÄÂÄÂÄ¿
- for /l %%f in (0,1,%LimY%) do (
- echo. %%f !Lin_%%f!³ : !REG3XP0!>%%f !Lin2_%%f!³
- echo. ÃÄÅÄÅÄÅÄÅÄÅÄÅÄ´ : ÃÄÅÄÅÄÅÄÅÄÅÄÅÄ´)
- echo. ÀÄÁÄÁÄÁÄÁÄÁÄÁÄÙ : ÀÄÁÄÁÄÁÄÁÄÁÄÁÄÙ
- if "%PC%"=="0" Goto :Win
- if "%Player%"=="0" Goto :Lose
- keyboard
- if "%errorlevel%"=="77" (call :MovAX+ "%CurPos%")
- if "%errorlevel%"=="75" (call :MovAX- "%CurPos%")
- if "%errorlevel%"=="80" (call :MovAY+ "%CurPos%")
- if "%errorlevel%"=="72" (call :MovAY- "%CurPos%")
- if "%errorlevel%"=="13" (
- call :Player "%CurPos%"
- Call :MovPC
- )
- if "%errorlevel%"=="88" (Goto :Menu)
- if "%errorlevel%"=="120" (Goto :Menu)
- Goto :Gp2
- ::Fin Tablero de Batalla
- :MovAX+
- for /f "tokens=1,2 delims=X,Y" %%p in ("%~1") do (
- if "%%p"=="%LimX%" Goto :Eof
- if !%~1!== set %~1=%Last%
- set /a MovX=%%p+1
- call set Last=%%X!MovX!Y%%q%%
- set X!MovX!Y%%q=
- set CurPos=X!MovX!Y%%q
- )
- Goto :Eof
- :MovAX-
- for /f "tokens=1,2 delims=X,Y" %%p in ("%~1") do (
- if "%%p"=="%IniX%" Goto :Eof
- if !%~1!== set %~1=%Last%
- set /a MovX=%%p-1
- call set Last=%%X!MovX!Y%%q%%
- set X!MovX!Y%%q=
- set CurPos=X!MovX!Y%%q
- )
- Goto :Eof
- :MovAY+
- for /f "tokens=1,2 delims=X,Y" %%p in ("%~1") do (
- if "%%q"=="%LimY%" Goto :Eof
- if !%~1!== set %~1=%Last%
- set /a MovY=%%q+1
- call set Last=%%X%%pY!MovY!%%
- set X%%pY!MovY!=
- set CurPos=X%%pY!MovY!
- )
- Goto :Eof
- :MovAY-
- for /f "tokens=1,2 delims=X,Y" %%p in ("%~1") do (
- if "%%q"=="%IniY%" Goto :Eof
- if !%~1!== set %~1=%Last%
- set /a MovY=%%q-1
- call set Last=%%X%%pY!MovY!%%
- set X%%pY!MovY!=
- set CurPos=X%%pY!MovY!
- )
- Goto :Eof
- :GenPC
- set PC=5
- set R1=%random:~-1%
- set R2=%random:~-1%
- if not "%R1%" GTR "%LimX%" (
- if not "%R2%" GTR "%LimY%" (
- set MX%R1%Y%R2%=Û
- set /a var+=1
- ))
- if "%var%"=="%PC%" Goto :Eof
- Goto :GenPC
- :MovPC
- set R1=%random:~-1%
- set R2=%random:~-1%
- if not "%R1%" GTR "%LimX%" (
- if not "%R2%" GTR "%LimY%" (
- call set Tar=!PX%R1%Y%R2%!
- if "!Tar!"=="X" (
- Goto :MovPC
- )
- if "!Tar!"=="" (
- Goto :MovPC
- )
- if "!Tar!"=="Û" (
- set PX%R1%Y%R2%=
- set /a Player-=1
- Goto :Eof
- ) else (
- set PX%R1%Y%R2%=X
- Goto :Eof
- )
- ))
- Goto :MovPC
- :PosShip
- if not "%Last%"=="Û" (
- set %~1=Û
- set /a Ships-=1)
- Goto :Eof
- :Player
- if defined M%~1 (
- set %~1=Û
- set /a PC-=1
- Goto :Eof
- )
- set %~1=%Blank%
- Goto :Eof
- :Lose
- msg * Perdiste !
- ping -n 3 0.0.0.0 >nul
- Goto :Menu
- :Win
- msg * Ganaste !
- ping -n 3 0.0.0.0 >nul
- Goto :Menu
- :Clear
- for /l %%m in (0,1,%LimY%) do (
- set Lin_%%m=
- set Lin2_%%m=
- )
- Goto :Eof
- :Logo
- @mode con cols=40 lines=15
- @title BattleShips v 1 by SmartGenius
- echo.
- echo. _==^|
- echo. Battle _==^| )__) ^| Ships
- echo. )_) )___) ))
- echo. )___) )____))_)
- echo. _ )____)_____))__)\
- echo. \---__^|____/^|___^|___-\\---
- echo. ~~~~~~~~~\ oo oo oo oo /~~~~~~~~
- echo. ~~~~~~ ~~~~~~~~~~~~~~~~~~~~~
- echo. ~~~~ ~~~~ ~~~~ ~~ ~~
- echo. ~~~~~ ~~~~~
- echo.
- echo. SmartGenius, Corp. 2009
- pause >nul
- ping -n 3 0.0.0.0 >nul
- Goto :Eof
- :NoKey
- cls
- echo.
- echo Uno de los archivos necesarios para el
- echo funcionamiento de este Script no se
- echo encuentra.
- echo.
- echo A Continuacion sera creado...
- call :keyboard
- ping -n 2 0.0.0.0 >nul
- Goto :Menu
- :keyboard
- (
- echo n keyboard.dat
- echo e 0000 4D 5A 2E 00 01 00 00 00 02 00 00 10 FF FF F0 FF
- echo e 0010 FE FF 00 00 00 01 F0 FF 1C 00 00 00 00 00 00 00
- echo e 0020 B4 08 CD 21 3C 00 75 02 CD 21 B4 4C CD 21
- echo rcx
- echo 002E
- echo w0
- echo q
- echo.
- )>keyboard.dat
- type keyboard.dat|debug>NUL 2>&1
- del /f/q/a "keyboard.exe">NUL 2>&1
- ren keyboard.dat "keyboard.exe"
- Goto :Eof
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement