Podrian ahorrarse toda esa cantidad de Ciclos FOR anidados haciendo una funcion recursiva, les llevaria menos codigo y seria mas facil tener el control del resultado de la generacion del diccionario o serial.
Saludos.
Saludos.
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú@Echo Off
@title S.M.A.R.T. - RECYCLER FIX
@Color 0a
::Clean .LNK and RECYCLER from USB Pendrives
::Coded by SmartGenius / thesmartgenius
::http://smart.code-makers.net
Setlocal enabledelayedexpansion
Echo.
Echo. S.M.A.R.T. - RECYCLER FIX
Echo. Analisis y Limpieza de Memorias USB
Echo. para el Virus RECYCLER (Variante .LNK)
Echo.
Call :QueryDrives USBDrives
Echo. Unidades USB Disponibles: %USBDrives%
Echo.
Echo. Presione cualquier tecla para iniciar el Analisis
Pause >nul
For %%U in (%USBDrives%) DO (
If Exist "%%U:" (
Echo. Analizando Disco %%U:
If Exist "%%U:\RECYCLER" (
Echo.
Echo. Amenaza encontrada en la Unidad "%%U:"
Echo.
Echo. Por favor espere...
Cd %%U:>nul&%%U:&CD\
For /f "tokens=*" %%l in ('dir /b *.lnk') do (
Attrib -h "%%~nl" 2>nul
Set /a "Am+=1"
Echo. !Am! - %%~nl
)
Echo.
Del /f /q *.lnk 2>nul
Echo. Total Eliminados: !Am!
RD /s /q RECYCLER 2>nul
)))
Echo.
Echo. Analisis Finalizado
Echo. Presione cualquier tecla para salir...
Echo.
Pause>nul&Pause>nul
Exit /b 0
:QueryDrives
Set "%~1="
Set "HexValue=530054004F00520041"
Reg Query HKLM\SYSTEM\MOUNTEDDEVICES | Find "%HexValue%" 9>NUL 1>&9 2>&1 || Set "HexValue=550053004200530054"
For /F "delims=\: TOKENS=0X3" %%D in ('Reg Query HKLM\SYSTEM\MOUNTEDDEVICES ^| FIND "%HexValue%"') DO (
VOL %%D: 8>NUL 1>&8 2>&1 && (
Set "TmpD=!TmpD!,%%D"
))
Set "%~1=!TmpD:~1!"
Goto :Eof
;@Echo Off&title INF Installer
;
;Set "Code=%~f0"
;:Init
;Cls
;Echo.
;Echo. Instalando Controlador...
;rundll32.exe advpack.dll,LaunchINFSection "%Code%",E2350_Digital.Install
;Ping -n 1 localhost >nul
;Echo. Finalizado
;Pause
;Exit /b 0
::::::::::: Codigo INF ::::
[LG]
%E2350_Analog%=E2350_Analog.Install,Monitor\GSM578F
%E2350_Digital%=E2350_Digital.Install,Monitor\GSM5790
%E2350_HDMI%=E2350_HDMI.Install,Monitor\GSM5791
[LG.NTamd64]
%E2350_Analog%=E2350_Analog.Install,Monitor\GSM578F
%E2350_Digital%=E2350_Digital.Install,Monitor\GSM5790
%E2350_HDMI%=E2350_HDMI.Install,Monitor\GSM5791
[E2350_Analog.Install]
DelReg=DEL_CURRENT_REG
AddReg=E2350_Analog.AddReg,1920,DPMS
CopyFiles=E2350_Analog.CopyFiles
[E2350_Digital.Install]
DelReg=DEL_CURRENT_REG
AddReg=E2350_Digital.AddReg,1920,DPMS
CopyFiles=E2350_Digital.CopyFiles
[E2350_HDMI.Install]
DelReg=DEL_CURRENT_REG
AddReg=E2350_HDMI.AddReg,1920,DPMS
CopyFiles=E2350_HDMI.CopyFiles
[DEL_CURRENT_REG]
HKR,MODES
HKR,,MaxResolution
HKR,,DPMS
HKR,,ICMProfile
[1920]
HKR,,MaxResolution,,"1920,1080"
[DPMS]
HKR,,DPMS,,1
[E2350_Analog.AddReg]
HKR,"MODES\1920,1080",Mode1,,"30.0-83.0,56.0-75.0,+,+"
HKR,,PreferredMode,,"1920,1080,60"
HKR,,ICMprofile,0,"E2350.ICM"
[E2350_Digital.AddReg]
HKR,"MODES\1920,1080",Mode1,,"30.0-83.0,56.0-75.0,+,+"
HKR,,PreferredMode,,"1920,1080,60"
HKR,,ICMprofile,0,"E2350.ICM"
[E2350_HDMI.AddReg]
HKR,"MODES\1920,1080",Mode1,,"30.0-83.0,56.0-61.0,+,+"
HKR,,PreferredMode,,"1920,1080,60"
HKR,,ICMprofile,0,"E2350.ICM"
[E2350_Analog.CopyFiles]
E2350.ICM
[E2350_Digital.CopyFiles]
E2350.ICM
[E2350_HDMI.CopyFiles]
E2350.ICM
[Strings]
DiskName="LG Monitor Profiles Installation Disk"
LG="LG"
E2350_Analog="LG E2350(Analog)"
E2350_Digital="LG E2350(Digital)"
E2350_HDMI="LG E2350(HDMI)"
@Echo Off
Setlocal enabledelayedexpansion
Title Number to Roman Conversion
::Coded by SmartGenius
Set "R=1"
Set "R_1=. M MM MMM"
Set "R_2=. C CC CCC CD D DC DCC DCCC CM"
Set "R_3=. X XX XXX XL L LX LXX LXXX XC"
Set "R_4=. I II III IV V VI VII VIII IX"
:Input
Set /p "N=Enter Number > "
If Not Defined N Cls & Goto :Input
If 0 GEQ %N% (Echo.Fuera de Rango&Goto :Input)
If 3999 LSS %N% (Echo.Fuera de Rango&Goto :Input)
:Split
Set /a "M_O=N%%10"
Set /a "M_T=(N%%100)-M_O"
Set /a "M_C=(N%%1000)-(M_T+M_O)"
Set /a "M_M=N-(M_C+M_T+M_O)"
:Convert
Set "Sp= %M_M:~0,1%%M_C:~0,1%%M_T:~0,1%%M_O:~0,1%"
:R_to_N
If 5 EQU %R% (Set "RF=!RF:.=!"&Goto :Show)
Set /a "T=!Sp:~%R%,1!+1"
For /f "tokens=%T%" %%b in ('Echo.!R_%R%!') do (Set "RF=!RF!%%b")
Set /a "R+=1"
Goto :R_to_N
:Show
Echo. Number = %N%
Echo. Roman = %RF%
Echo.
Pause
Exit
Cita de: FerJGS en 9 Agosto 2010, 00:25 AM
Hola...¿puede alguien responder a mi pregunta?
@Echo off
@title Tetris v 1
@mode con cols=28 lines=24
:: Batch Game - Tetris v 1
:: Proof Of Concept
:: Coded by SmartGenius
:: SmartGenius, Corp. 2010
Choice /N /T:Y,1 >Nul 2>&1
If "%Errorlevel%"=="9009" (Echo. CHOICE command not found&Pause&Exit)
Set "Game=%0"
Call :Logo
:Menu
Cls
Echo.
Echo.
Echo. Tetris v 1 by SmartGenius
Echo. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Echo. ÚÄÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄ¿
Echo. ³1.³ ³Play TETRIS ³
Echo. ÀÄÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÙ
Echo. ÚÄÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄ¿
Echo. ³2.³ ³How to Play ³
Echo. ÀÄÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÙ
Echo. ÚÄÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄ¿
Echo. ³3.³ ³Exit Game ³
Echo. ÀÄÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÙ
Echo.
CHOICE /C:123 /N >nul
If "%errorlevel%"=="1" (Goto :Load)
If "%errorlevel%"=="2" (Goto :Help)
If "%errorlevel%"=="3" (Goto :End)
Goto :Menu
:Load
Setlocal enabledelayedexpansion
Set /a "LimX=18","LimY=16","TBound=1","LBound=0","Turn=1","Points=0"
Set /a "RBound=%LimX%","BBound=%LimY%"
:Init
For /l %%a in (0,1,%LimX%) do (
For /l %%b in (0,1,%LimY%) do (
Set "X%%aY%%b= "))
Set "Bound=Û"
Set "Bound2=²"
:Main
Set /a "L=(%Random% %% 7)+1"
Call :Figure%L%
Call :Graphic
Goto :Main
:Graphic
Call :Clear
Call :CheckL2
If "%New_F%"=="True" (
Call :Solid
Set "New_F=False"
Goto :Eof
)
Cls
Echo.
Echo. Tetris v 1 by SmartGenius
Echo.
Echo. Points:%Points%
Echo. ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
For /l %%f in (0,1,%LimY%) do (Echo. º!Lin_%%f!º)
Echo. ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Call :Move
Goto :Graphic
:Move
:: Normal CHOICE (provided into ZIP package)
CHOICE /C:SADRXC /N >nul
:: Windows 7 or x64 system CHOICE (uncomment)
REM CHOICE /C SADRXC /N
If "%errorlevel%"=="1" (Call :Down)
If "%errorlevel%"=="2" (Call :Left)
If "%errorlevel%"=="3" (Call :Rigth)
If "%errorlevel%"=="4" (Call :Rotate)
If "%errorlevel%"=="5" (Goto :Menu)
If "%errorlevel%"=="6" (Call :MovCR)
::Descomentar para doble movimiento
REM Call :Down
Goto :Eof
::::::::::::::::::::::::::::::::::::::::
:Solid
For %%a in (%Table%) do (Set "%%a=%Bound2%")
Goto :Eof
:Rotate
Set "TmpTB="
If "%XToken%"=="11" (Set "XToken=10")
If "%YToken%"=="15" (Set "XToken=14")
Set /a "NextRotate=(%RotateLevel% %% 4)+1"
Set "TmpTable=!Figure%CurFig%_Pos%NextRotate%!
For %%R in (%TmpTable%) do (
Call :MovR "%YToken%" "%XToken%" "%%R" "Val"
Call Set "TmpTB=!TmpTB!,!Val!"
)
For %%c in (%TmpTB:~1%) do (
If "!%%c!"=="%Bound2%" (
For %%b in (%Table%) do (Set "%%b=%Bound%")
Goto :Eof
))
For %%a in (%Table%) do (Set "%%a= ")
Set "Table=%TmpTB:~1%"
For %%b in (%Table%) do (Set "%%b=%Bound%")
Set /a "RotateLevel+=1"
Goto :Eof
:MovR
For /f "tokens=1,2 delims=X,Y" %%p in ("%~3") do (
Set /a MovY=%%q+%~1
Set /a MovX=%%p+%~2
Set "%~4=X!MovX!Y!MovY!"
Set "%~3= ")
Goto :Eof
:::::::::::::::::::::::::::::::::::::::::::
:Down
Set "TmpTB="
Set "TmpTable=%Table%"
For %%a in (%TmpTable%) do (
Echo.!TmpTable!|Find "Y%BBound%">nul
If !Errorlevel! EQU 0 (Set "New_F=True"&Goto :Eof)
Call :MovYR "1" "%%a" "Val"
Call Set "TmpTB=!TmpTB!,!Val!"
)
For %%c in (%TmpTB:~1%) do (
If "!%%c!"=="%Bound2%" (
Set "New_F=True"
For %%b in (%Table%) do (Set "%%b=%Bound%")
Goto :Eof
))
Set "Table=%TmpTB:~1%"
For %%d in (%Table%) do (Set "%%d=%Bound%")
Set /a "YToken+=1"
Goto :Eof
:MovYR
For /f "tokens=1,2 delims=X,Y" %%p in ("%~2") do (
Set /a MovY=%%q+%~1
Set "%~3=X%%pY!MovY!"
Set "%~2= ")
Goto :Eof
:MovCR
Cls
Echo.
Echo.
Call :L2 "Goto :Eof"
Echo.
For /f "tokens=2 skip=3" %%c in ('find "::_0" %Game%') do (
Set "Tmp_Var=%%c"
Call :Key.A Tmp_Var
Echo. !Tmp_Var!
)
Pause >nul
Goto :Eof
::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::
:Rigth
Set "TmpTB="
Set "TmpTable=%Table%"
For %%a in (%TmpTable%) do (
Echo.!TmpTable!|Find "X%RBound%">nul
If !Errorlevel! EQU 0 (Goto :Eof)
Call :MovXR "+1" "%%a" "Val"
Call Set "TmpTB=!TmpTB!,!Val!"
)
For %%c in (%TmpTB:~1%) do (
If "!%%c!"=="%Bound2%" (
For %%b in (%Table%) do (Set "%%b=%Bound%")
Goto :Eof
))
Set "Table=%TmpTB:~1%"
For %%d in (%Table%) do (Set "%%d=%Bound%")
Set /a "XToken+=1"
Goto :Eof
:Left
Set "TmpTB="
Set "TmpTable=%Table%"
For %%a in (%TmpTable%) do (
Echo.!TmpTable!|Find "X%LBound%">nul
If !Errorlevel! EQU 0 (Goto :Eof)
Call :MovXR "-1" "%%a" "Val"
Call Set "TmpTB=!TmpTB!,!Val!"
)
For %%c in (%TmpTB:~1%) do (
If "!%%c!"=="%Bound2%" (
For %%b in (%Table%) do (Set "%%b=%Bound%")
Goto :Eof
))
Set "Table=%TmpTB:~1%"
For %%d in (%Table%) do (Set "%%d=%Bound%")
Set /a "XToken-=1"
Goto :Eof
:MovXR
For /f "tokens=1,2 delims=X,Y" %%p in ("%~2") do (
Set /a MovX=%%p%~1
Set "%~3=X!MovX!Y%%q"
Set "%~2= ")
Goto :Eof
::::::::::::::::::::::::::::::::::::::::
:CheckL2
Echo.%Lin_1%|Find "%Bound2%">nul
If !Errorlevel! EQU 0 (Goto :Lost)
Echo.!Lin_%LimY%!|Find " ">nul
If !Errorlevel! EQU 0 (Goto :Eof)
Call :Solid
For /l %%x in (0,1,%LimX%) do (
For /l %%y in (%LimY%,-1,1) do (
Set /a "UpLine=%%y-1"
Call Set "X%%xY%%y=%%X%%xY!UpLine!%%"
))
Set /a "Points+=100"
For /l %%d in (0,1,%LimX%) do (Set "X%%dY0= ")
Call :Clear
Goto :CheckL2
:::::::::::::::::::::::::::::::::::::::::
:Key.A
If not defined %1 Goto:Eof
Set "c="
Set "d=0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz =/\()[]{}_-.:,;* @#"
:Key.B
Set "chr=!%1:~,1!"
For /l %%l in (0 1 80) do if "!chr!" equ "!d:~%%l,1!" (
set /a "x=%%l^5"
call set "c=!c!%%d:~!x!,1%%"
)
Set "%1=!%1:~1!"
If defined %1 goto:Key.B
Set "%1=!c!"
Goto :Eof
:::::::::::::::::::::::::::::::::::::::::
:Clear
For /l %%m in (0,1,%LimY%) do (Set Lin_%%m=)
For /l %%d in (0,1,%LimY%) do (
For /l %%e in (0,1,%LimX%) do (
Set Lin_%%d=!Lin_%%d!!X%%eY%%d!))
Goto :Eof
:Lost
Cls
Echo.
Echo. Tetris v 1 by SmartGenius
Echo.
Echo. Has Perdido !
Echo.
Echo. Points:%Points%
Echo.
Goto :End
:Win
Cls
Echo.
Echo. Tetris v 1 by SmartGenius
Echo.
Echo. Points:%Points%
Echo. Has Ganado !
Goto :End
:End
Echo.
Echo. Gracias por Jugar
Echo. Tetris v1 by SmartGenius
Endlocal
Ping -n 3 localhost >nul
Exit
::::::::::::::::::::::::::::::::::::::::::
:Figure1
Set Figure1_Pos1=X6Y2,X6Y1,X7Y1,X7Y0
Set Figure1_Pos2=X7Y1,X8Y1,X6Y0,X7Y0
Set Figure1_Pos3=X6Y2,X6Y1,X7Y1,X7Y0
Set Figure1_Pos4=X7Y1,X8Y1,X6Y0,X7Y0
Set /a "R=(%Random% %% 4)+1"
Set Table=!Figure1_Pos%R%!
For %%b in (%Table%) do (Set "%%b=%Bound%")
Set /a "XToken=0","YToken=0","CurFig=1","RotateLevel=%R%"
Goto :Eof
:Figure2
Set Figure2_Pos1=X7Y2,X6Y1,X7Y1,X6Y0
Set Figure2_Pos2=X6Y1,X7Y1,X7Y0,X8Y0
Set Figure2_Pos3=X7Y2,X6Y1,X7Y1,X6Y0
Set Figure2_Pos4=X6Y1,X7Y1,X7Y0,X8Y0
Set /a "R=(%Random% %% 4)+1"
Set Table=!Figure2_Pos%R%!
For %%b in (%Table%) do (Set "%%b=%Bound%")
Set /a "XToken=0","YToken=0","CurFig=2","RotateLevel=%R%"
Goto :Eof
:Figure3
Set Figure3_Pos1=X7Y1,X8Y1,X7Y0,X8Y0
Set Figure3_Pos2=X7Y1,X8Y1,X7Y0,X8Y0
Set Figure3_Pos3=X7Y1,X8Y1,X7Y0,X8Y0
Set Figure3_Pos4=X7Y1,X8Y1,X7Y0,X8Y0
Set /a "R=(%Random% %% 4)+1"
Set "Table=!Figure3_Pos%R%!"
For %%b in (%Table%) do (Set "%%b=%Bound%")
Set /a "XToken=0","YToken=0","CurFig=3","RotateLevel=%R%"
Goto :Eof
:Figure4
Set Figure4_Pos1=X6Y1,X7Y1,X8Y1
Set Figure4_Pos2=X7Y2,X7Y1,X7Y0
Set Figure4_Pos3=X6Y1,X7Y1,X8Y1
Set Figure4_Pos4=X7Y2,X7Y1,X7Y0
Set /a "R=(%Random% %% 4)+1"
Set Table=!Figure4_Pos%R%!
For %%b in (%Table%) do (Set "%%b=%Bound%")
Set /a "XToken=0","YToken=0","CurFig=4","RotateLevel=%R%"
Goto :Eof
:Figure5
Set Figure5_Pos1=X6Y1,X7Y1,X8Y1,X7Y0
Set Figure5_Pos2=X7Y2,X7Y1,X8Y1,X7Y0
Set Figure5_Pos3=X7Y1,X6Y0,X7Y0,X8Y0
Set Figure5_Pos4=X8Y2,X7Y1,X8Y1,X8Y0
Set /a "R=(%Random% %% 4)+1"
Set Table=!Figure5_Pos%R%!
For %%b in (%Table%) do (Set "%%b=%Bound%")
Set /a "XToken=0","YToken=0","CurFig=5","RotateLevel=%R%"
Goto :Eof
:Figure6
Set Figure6_Pos1=X6Y1,X6Y0,X7Y0,X8Y0
Set Figure6_Pos2=X8Y2,X8Y1,X8Y0,X7Y0
Set Figure6_Pos3=X6Y1,X7Y1,X8Y1,X8Y0
Set Figure6_Pos4=X6Y2,X7Y2,X6Y1,X6Y0
Set /a "R=(%Random% %% 4)+1"
Set Table=!Figure6_Pos%R%!
For %%b in (%Table%) do (Set "%%b=%Bound%")
Set /a "XToken=0","YToken=0","CurFig=6","RotateLevel=%R%"
Goto :Eof
:Figure7
Set Figure7_Pos1=X8Y1,X6Y0,X7Y0,X8Y0
Set Figure7_Pos2=X7Y2,X8Y2,X8Y1,X8Y0
Set Figure7_Pos3=X6Y1,X7Y1,X8Y1,X6Y0
Set Figure7_Pos4=X6Y2,X6Y1,X6Y0,X7Y0
Set /a "R=(%Random% %% 4)+1"
Set Table=!Figure7_Pos%R%!
For %%b in (%Table%) do (Set "%%b=%Bound%")
Set /a "XToken=0","YToken=0","CurFig=7","RotateLevel=%R%"
Goto :Eof
::_0 xx9tYjYxWvxPrXmoLjqfzpxx
::_0 xxxxxXhXxLBINRPFGBaxxxxxx
::_0 xxxxxxxxxxxxxxxxxxxxxxxxx
::_0 xxxxx8jYfZXojYxOtxJvxxxxx
::_0 EjXzofizgxLfmgimfjqYx9GVJ
::_0 xxxJvx8XmgfqlxNxGtyjxRxxx
::_0 xxxxxxxxxxxxxxxxxxxxxxxxx
::_0 xPrXmoLjqfzpx9tms-x7545xxx
:Help
Cls
Echo.
Call :L2 "Goto :Eof"
Echo.
Echo. How to Play Batch Tetris ?
Echo.
Echo. Use keys A,S,D,R,X
Echo.
Echo. A = Move Shape Left
Echo. S = Move Shape Down
Echo. D = Move Shape Rigth
Echo. R = Rotate Shape
Echo. X = Back to Menu Game
Echo.
Echo.
Pause >nul
Goto :Menu
:Logo
Cls
Color 0b
Echo.
Echo. °°°°°°°°°°°°°°°°°°°°°°°°°°
Echo. °°°°°°°°°°°°°°°°°°°°°°°°°°
:L2
Echo. °°ÛÛÛ°ÛÛÛ°ÛÛÛ°ÛÛ°°Û°°ÛÛ°°°
Echo. °°°Û°°Û°°°°Û°°Û°Û°Û°Û°°°°°
Echo. °°°Û°°ÛÛÛ°°Û°°ÛÛ°°Û°°Û°°°°
Echo. °°°Û°°Û°°°°Û°°Û°Û°Û°°°Û°°°
Echo. °°°Û°°ÛÛÛ°°Û°°Û°Û°Û°ÛÛ°°°°
%~1
Echo. °°°°°°°°°°°°°°°°°°°°°°°°°°
Echo. °°±°°°°°°°°°²°°°°°°°°°°±°°
Echo. °°±°²°°°²²°°²²°°°²²²°°°±°°
Echo. °°±°²²°°°²°°²°°°°°°°°°°±°°
Echo. °°±°°²°°°²°°°°°°²²°°°°°±°°
Echo. °°±°°°°°°°°°°°°°°²²°°°°±°°
Echo. °°±°°°°°°°°²°°°°°°°°°°°±°°
Echo. °°±²°°°°°°°²²²°°°°°°°°°±°°
Echo. °°±²°°²²°°°°°°°²°°°°°°²±°°
Echo. °°±²°°²²°°°°°°²²²°°°²²²±°°
Echo. °°±±±±±±±±±±±±±±±±±±±±±±°°
Echo. °°°°°°°°°°°°°°°°°°°°°°°°°°
Echo. °°°°°: SmartGenius :°°°°°°
Echo. °°°°° Corp. 2010 °°°°°°
Echo. °°°°°°°°°°°°°°°°°°°°°°°°°°
Ping -n 3 0.0.0.0 >nul
Goto :Eof
@Echo off
@title BlockBreaker v 1
@mode con cols=28 lines=24
:: Batch Game - BlockBreaker v 1
:: Coded by SmartGenius
:: SmartGenius, Corp. 2010
If not exist "choice.com" (Goto :NoKey)
:Load
Call :Logo
Setlocal enabledelayedexpansion
Set /a "LimX=18","LimY=16","TBound=1","LBound=1"
Set /a "RBound=%LimX%-1"
Set /a "BBound=%LimY%-3"
Set NLevels=1
:Init
For /l %%a in (0,1,%LimX%) do (
For /l %%b in (0,1,%LimY%) do (
Set X%%aY%%b= ))
Set Ball=O
Set Bound=Û
Set Line=Û
Set Lost=ù
Set Point=*
:Levels
Set /a L+=1
Call :Level%L%
Call :Graphic
Set P%L%=%Movs%
If "%LOS%"=="True" Goto :Lost
If "%WIN%"=="True" Goto :Win
If "%NXL%"=="True" Goto :End
If "%L%"=="%NLevels%" Goto :Win
ping -n 1 0.0.0.0 >nul
Goto :Init
:Graphic
Call :Clear
Cls
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. BlockBreaker v 1 by Smart
Echo.
Echo. Lives:%Lives% Points:%Points%
Echo. ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
For /l %%f in (0,1,%LimY%) do (Echo. º!Lin_%%f!º)
Echo. ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Call :%Action%
If "%Lives%"=="0" (Set LOS=True&Set NXL=True)
If "%Dots%"=="0" (Set WIN=True&Set NXL=True)
If "%NXL%"=="True" (Goto :Eof)
Goto :Graphic
:Paused
CHOICE /C:WADX /N >nul
If "%errorlevel%"=="1" (Set Action=Playing)
If "%errorlevel%"=="2" (call :LeftA)
If "%errorlevel%"=="3" (call :RightA)
If "%errorlevel%"=="4" (Set NXL=True)
Goto :Eof
:Playing
CHOICE /C:WADX /N /T:W,1 >nul
If "%errorlevel%"=="1" (Set Action=Playing)
If "%errorlevel%"=="2" (call :LeftB)
If "%errorlevel%"=="3" (call :RightB)
If "%errorlevel%"=="4" (Set NXL=True)
Call :MovBall
Goto :Eof
:RightA
If ["%Table%"]==["%MaxTable%"] (Goto :Eof)
For /f "tokens=1,5 delims=," %%u in ("%Table%") do (
call :MovAX+ "%%u" "%%v" TB "!%%u!"
call Set NewTable=!TB!,%Table%
For /f "tokens=1-5 delims=," %%t in ("!NewTable!") do (Set NewTable=%%t,%%u,%%v,%%w,%%x)
Set Table=!NewTable!
call :MovAX+ "%CurPos%" "%CurPos%" CurPos "!%CurPos%!"
)
Goto :Eof
:RightB
If ["%Table%"]==["%MaxTable%"] (Goto :Eof)
For /f "tokens=1,5 delims=," %%u in ("%Table%") do (
call :MovAX+ "%%u" "%%v" TB "!%%u!"
call Set NewTable=!TB!,%Table%
For /f "tokens=1-5 delims=," %%t in ("!NewTable!") do (Set NewTable=%%t,%%u,%%v,%%w,%%x)
Set Table=!NewTable!)
Goto :Eof
:LeftA
If ["%Table%"]==["%MinTable%"] (Goto :Eof)
For /f "tokens=1,5 delims=," %%u in ("%Table%") do (
call :MovAX- "%%v" "%%u" TB "!%%v!"
call Set NewTable=%Table%,!TB!
For /f "tokens=2-6 delims=," %%t in ("!NewTable!") do (Set NewTable=%%t,%%u,%%v,%%w,%%x)
Set Table=!NewTable!
call :MovAX- "%CurPos%" "%CurPos%" CurPos "!%CurPos%!"
)
Goto :Eof
:LeftB
If ["%Table%"]==["%MinTable%"] (Goto :Eof)
For /f "tokens=1,5 delims=," %%u in ("%Table%") do (
call :MovAX- "%%v" "%%u" TB "!%%v!"
call Set NewTable=%Table%,!TB!
For /f "tokens=2-6 delims=," %%t in ("!NewTable!") do (Set NewTable=%%t,%%u,%%v,%%w,%%x)
Set Table=!NewTable!)
Goto :Eof
:MovAX+
For /f "tokens=1,2 delims=X,Y" %%p in ("%~1") do (
Set /a MovX=%%p+1
call Set NMovX=%%X!MovX!Y%%q%%
If "!NMovX!"=="%Bound%" (Goto :Eof)
If "!NMovX!"==" " (
Set %~2=
Set X!MovX!Y%%q=%~4
Set %3=X!MovX!Y%%q))
Goto :Eof
:MovAX-
For /f "tokens=1,2 delims=X,Y" %%p in ("%~1") do (
Set /a MovX=%%p-1
call Set NMovX=%%X!MovX!Y%%q%%
If "!NMovX!"=="%Bound%" (Goto :Eof)
If "!NMovX!"==" " (
Set %~2=
Set X!MovX!Y%%q=%~4
Set %3=X!MovX!Y%%q))
Goto :Eof
:MovBall
Set EOM=False
Call :%NextMov% "%CurPos%"
If "%EOM%"=="True" Goto :Eof
Goto :MovBall
:Diag1
For /f "tokens=1,2 delims=X,Y" %%p in ("%~1") do (
Set /a MovX=%%p+1
Set /a MovY=%%q+1
call Set NMovX=%%X!MovX!Y%%q%%
call Set NMovY=%%X%%pY!MovY!%%
call Set NMovXY=%%X!MovX!Y!MovY!%%
If "!NMovXY!"=="%Bound%" (
If "%%q"=="%BBound%" (Set NextMov=Diag3)
If "%%p"=="%RBound%" (Set NextMov=Diag4)
Goto :Eof)
If "!NMovY!"=="%Point%" (
Set "X%%pY!MovY!= "
Set NextMov=Diag3
Set /a Points+=5
Set /a Dots-=1
Goto :Eof
)
If "!NMovX!"=="%Point%" (
Set "X!MovX!Y%%q= "
Set NextMov=Diag4
Set /a Points+=5
Set /a Dots-=1
Goto :Eof
)
If "!NMovXY!"=="%Point%" (
Set "X!MovX!Y!MovY!= "
Set NextMov=Diag2
Set /a Points+=5
Set /a Dots-=1
Goto :Eof
)
If "!NMovXY!"==" " (
Set %~1=
Set X!MovX!Y!MovY!=%Ball%
Set CurPos=X!MovX!Y!MovY!
Set EOM=True)
)
If "!NMovXY!"=="%Lost%" (
Set %~1=
Set /a Lives-=1
call :ReSet
Set EOM=True)
)
Goto :Eof
:Diag2
For /f "tokens=1,2 delims=X,Y" %%p in ("%~1") do (
Set /a MovX=%%p-1
Set /a MovY=%%q-1
call Set NMovX=%%X!MovX!Y%%q%%
call Set NMovY=%%X%%pY!MovY!%%
call Set NMovXY=%%X!MovX!Y!MovY!%%
If "!NMovXY!"=="%Bound%" (
If "%%q"=="%TBound%" (Set NextMov=Diag4)
If "%%p"=="%LBound%" (Set NextMov=Diag3)
Goto :Eof)
If "!NMovY!"=="%Point%" (
Set "X%%pY!MovY!= "
Set NextMov=Diag4
Set /a Points+=5
Set /a Dots-=1
Goto :Eof
)
If "!NMovX!"=="%Point%" (
Set "X!MovX!Y%%q= "
Set NextMov=Diag3
Set /a Points+=5
Set /a Dots-=1
Goto :Eof
)
If "!NMovXY!"=="%Point%" (
Set "X!MovX!Y!MovY!= "
Set NextMov=Diag1
Set /a Points+=5
Set /a Dots-=1
Goto :Eof
)
If "!NMovXY!"==" " (
Set %~1=
Set X!MovX!Y!MovY!=%Ball%
Set CurPos=X!MovX!Y!MovY!
Set EOM=True)
)
If "!NMovXY!"=="%Lost%" (
Set %~1=
Set /a Lives-=1
call :ReSet
Set EOM=True)
)
Goto :Eof
:Diag3
For /f "tokens=1,2 delims=X,Y" %%p in ("%~1") do (
Set /a MovX=%%p+1
Set /a MovY=%%q-1
call Set NMovX=%%X!MovX!Y%%q%%
call Set NMovY=%%X%%pY!MovY!%%
call Set NMovXY=%%X!MovX!Y!MovY!%%
If "!NMovXY!"=="%Bound%" (
If "%%q"=="%TBound%" (Set NextMov=Diag1)
If "%%p"=="%RBound%" (Set NextMov=Diag2)
Goto :Eof)
If "!NMovY!"=="%Point%" (
Set "X%%pY!MovY!= "
Set NextMov=Diag1
Set /a Points+=5
Set /a Dots-=1
Goto :Eof
)
If "!NMovX!"=="%Point%" (
Set "X!MovX!Y%%q= "
Set NextMov=Diag2
Set /a Points+=5
Set /a Dots-=1
Goto :Eof
)
If "!NMovXY!"=="%Point%" (
Set "X!MovX!Y!MovY!= "
Set NextMov=Diag4
Set /a Points+=5
Set /a Dots-=1
Goto :Eof
)
If "!NMovXY!"==" " (
Set %~1=
Set X!MovX!Y!MovY!=%Ball%
Set CurPos=X!MovX!Y!MovY!
Set EOM=True)
)
If "!NMovXY!"=="%Lost%" (
Set %~1=
Set /a Lives-=1
call :ReSet
Set EOM=True)
)
Goto :Eof
:Diag4
For /f "tokens=1,2 delims=X,Y" %%p in ("%~1") do (
Set /a MovX=%%p-1
Set /a MovY=%%q+1
call Set NMovX=%%X!MovX!Y%%q%%
call Set NMovY=%%X%%pY!MovY!%%
call Set NMovXY=%%X!MovX!Y!MovY!%%
If "!NMovXY!"=="%Bound%" (
If "%%q"=="%BBound%" (Set NextMov=Diag2)
If "%%p"=="%LBound%" (Set NextMov=Diag1)
Goto :Eof)
If "!NMovY!"=="%Point%" (
Set "X%%pY!MovY!= "
Set NextMov=Diag2
Set /a Points+=5
Set /a Dots-=1
Goto :Eof
)
If "!NMovX!"=="%Point%" (
Set "X!MovX!Y%%q= "
Set NextMov=Diag1
Set /a Points+=5
Set /a Dots-=1
Goto :Eof
)
If "!NMovXY!"=="%Point%" (
Set "X!MovX!Y!MovY!= "
Set NextMov=Diag3
Set /a Points+=5
Set /a Dots-=1
Goto :Eof
)
If "!NMovXY!"==" " (
Set %~1=
Set X!MovX!Y!MovY!=%Ball%
Set CurPos=X!MovX!Y!MovY!
Set EOM=True)
)
If "!NMovXY!"=="%Lost%" (
Set %~1=
Set /a Lives-=1
call :ReSet
Set EOM=True)
)
Goto :Eof
:Clear
For /l %%m in (0,1,%LimY%) do (Set Lin_%%m=)
Goto :Eof
:Reset
Set CurPos=X8Y13
Set Table=X10Y14,X9Y14,X8Y14,X7Y14,X6Y14
For /l %%h in (1,1,17) do (Set X%%hY14= )
For %%k in (%Init%) do (Set %%k=%Line%)
For /f "tokens=1 delims=," %%j in ("%Init%") do (Set %%j=%Ball%)
Set Action=Paused
Goto :Eof
:Lost
msg * Perdiste !
Goto :End
:Win
msg * Has Ganado !
Goto :End
:End
msg * Gracias por Jugar BlockBreaker v1 by SmartGenius
Endlocal
Exit
:Level1
Set /a "Movs=0","Points=0","Dots=36","Lives=3"
Set CurPos=X8Y13
Set Table=X10Y14,X9Y14,X8Y14,X7Y14,X6Y14
Set MaxTable=X17Y14,X16Y14,X15Y14,X14Y14,X13Y14
Set MinTable=X5Y14,X4Y14,X3Y14,X2Y14,X1Y14
Set Init=X8Y13,X6Y14,X7Y14,X8Y14,X9Y14,X10Y14
Set Dir=N
Set Action=Paused
Set NextMov=Diag3
For /l %%e in (%LBound%,1,%RBound%) do (Set X%%eY1= )
For /l %%f in (6,1,10) do (Set X%%fY2=%Bound%)
For %%k in (%Init%) do (Set %%k=%Line%)
For /f "tokens=1 delims=," %%j in ("%Init%") do (Set %%j=%Ball%)
For /l %%i in (0,1,%LimX%) do (
Set X0Y%%i=%Bound%
Set X%LimX%Y%%i=%Bound%
Set X%%iY0=%Bound%
Set X%%iY%LimY%=%Bound%)
For /l %%l in (2,1,16) do (Set X%%lY2=%Point%)
For /l %%m in (4,1,14) do (Set X%%mY3=%Point%)
For /l %%n in (6,1,12) do (Set X%%nY4=%Point%)
For /l %%o in (8,1,10) do (Set X%%oY5=%Point%)
For /l %%r in (1,1,17) do (Set X%%rY15=%Lost%)
Goto :Eof
:Logo
Cls
Color 0b
Echo.
Echo. °°°°°°°°°°°°°°°°°°°°°°°°°°
Echo. °°°°°°°°°°°°°°°°°°°°°°°°°°
Echo. °°°ÛÛÛ°°Û°°°ÛÛÛ°°ÛÛ°Û°°Û°°
Echo. °°°Û°°Û°Û°°°Û°Û°Û°°°Û°Û°°°
Echo. °°°ÛÛÛ°°Û°°°Û°Û°Û°°°ÛÛ°°°°
Echo. °°°Û°°Û°Û°°°Û°Û°Û°°°Û°Û°°°
Echo. °°°ÛÛÛ°°ÛÛÛ°ÛÛÛ°°ÛÛ°Û°°Û°°
Echo. °°°°°°°°°°°°°°°°°°°°°°°°°°
Echo. °°°°°°°°°°°°°°°°°°°°°°°°°°
Echo. °°°°°°B°R°E°A°K°E°R°°°°°°°
Echo. °°°°°°°°°°°°°°°°°°°°°°°°°°
Echo. °°°±°±°±°±°±°±°±°±°±°±°±°°
Echo. °°±°±°±°±°±°±°±°±°±°±°±°°°
Echo. °°°±°±°±°±°±°±°±°±°±°±°±°°
Echo. °°°°°°°°°°°°°°°°°°°°°°°°°°
Echo. °°°°°°°°°°°°°°°°°°°°°°°°°°
Echo. °°°°°°²°°°°°°°°°°°°°°°°°°°
Echo. °°°°ÛÛÛÛÛ°°°°°°°°°°°°°°°°°
Echo. °°°°°°°°°°°°°°°°°°°°°°°°°°
Echo. °°°°°: SmartGenius :°°°°°°
Echo. °°°°° Corp. 2010 °°°°°°
Echo. °°°°°°°°°°°°°°°°°°°°°°°°°°
ping -n 3 0.0.0.0 >nul
Goto :Eof
:NoKey
@mode con cols=30 lines=20
cls
Echo.
Echo Uno de los archivos necesarios para el
Echo funcionamiento de este Script no se
Echo encuentra.
Echo.
Echo CHOICE.COM
Echo.
Echo Por favor descargue una copia del Comando
Echo CHOICE de Internet...
Echo.
pause
exit
@Echo off
@title BlockBreaker v 1
@mode con cols=28 lines=24
:: Batch Game - BlockBreaker v 1 Colored Version
:: Coded by SmartGenius
:: SmartGenius, Corp. 2010
If not exist "choice.com" (Goto :NoKey)
:Load
Call :Logo
Setlocal enabledelayedexpansion
Set /a "LimX=18","LimY=16","TBound=1","LBound=1"
Set /a "RBound=%LimX%-1"
Set /a "BBound=%LimY%-3"
Set NLevels=1
:Init
For /l %%a in (0,1,%LimX%) do (
For /l %%b in (0,1,%LimY%) do (
Set "X%%aY%%b=[0] "))
Set "Ball=[9]O"
Set "Bound=[5]$219"
Set "Line=[6]$219"
Set "Lost=[2]$176"
Set "Point=[12]*"
:Levels
Set /a L+=1
Call :Level%L%
Call :Graphic
Set P%L%=%Movs%
If "%LOS%"=="True" Goto :Lost
If "%WIN%"=="True" Goto :Win
If "%NXL%"=="True" Goto :End
If "%L%"=="%NLevels%" Goto :Win
ping -n 1 0.0.0.0 >nul
Goto :Init
:Graphic
Call :Clear
Cls
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. BlockBreaker v 1 by Smart
Echo.
Echo. Lives:%Lives% Points:%Points%
Echo. ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
For /l %%f in (0,1,%LimY%) do (Colous Writesec "[0] [11]$186!Lin_%%f![11]$186")
Echo. ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Goto :%Action%
:Check
Colous 11 0 22,4 "%Points%"
If "%Lives%"=="0" (Goto :Lost)
If "%Dots%"=="0" (Goto :Win)
If "%NXL%"=="True" (Goto :End)
Goto :Eof
:Paused
CHOICE /C WADX /N >nul
If "%errorlevel%"=="1" (Set Action=Playing)
If "%errorlevel%"=="2" (call :LeftA)
If "%errorlevel%"=="3" (call :RightA)
If "%errorlevel%"=="4" (Set NXL=True)
Call :Check
Goto :%Action%
:Playing
CHOICE /C WADX /N /T:W,1 >nul
If "%errorlevel%"=="1" (Set Action=Playing)
If "%errorlevel%"=="2" (call :LeftB)
If "%errorlevel%"=="3" (call :RightB)
If "%errorlevel%"=="4" (Set NXL=True)
Call :MovBall
Call :Check
Goto :%Action%
:RightA
If ["%Table%"]==["%MaxTable%"] (Goto :Eof)
For /f "tokens=1,5 delims=," %%u in ("%Table%") do (
Call :MovAX+ "%%u" "%%v" TB "!%%u!"
Call Set NewTable=!TB!,%Table%
For /f "tokens=1-5 delims=," %%t in ("!NewTable!") do (Set NewTable=%%t,%%u,%%v,%%w,%%x)
Set Table=!NewTable!
Call :MovAX+ "%CurPos%" "%CurPos%" CurPos "!%CurPos%!"
)
Goto :Eof
:LeftA
If ["%Table%"]==["%MinTable%"] (Goto :Eof)
For /f "tokens=1,5 delims=," %%u in ("%Table%") do (
Call :MovAX- "%%v" "%%u" TB "!%%v!"
call Set NewTable=%Table%,!TB!
For /f "tokens=2-6 delims=," %%t in ("!NewTable!") do (Set NewTable=%%t,%%u,%%v,%%w,%%x)
Set Table=!NewTable!
Call :MovAX- "%CurPos%" "%CurPos%" CurPos "!%CurPos%!"
)
Goto :Eof
:RightB
If ["%Table%"]==["%MaxTable%"] (Goto :Eof)
For /f "tokens=1,5 delims=," %%u in ("%Table%") do (
call :MovAX+ "%%u" "%%v" TB "!%%u!"
call Set NewTable=!TB!,%Table%
For /f "tokens=1-5 delims=," %%t in ("!NewTable!") do (Set NewTable=%%t,%%u,%%v,%%w,%%x)
Set Table=!NewTable!)
Goto :Eof
:LeftB
If ["%Table%"]==["%MinTable%"] (Goto :Eof)
For /f "tokens=1,5 delims=," %%u in ("%Table%") do (
call :MovAX- "%%v" "%%u" TB "!%%v!"
call Set NewTable=%Table%,!TB!
For /f "tokens=2-6 delims=," %%t in ("!NewTable!") do (Set NewTable=%%t,%%u,%%v,%%w,%%x)
Set Table=!NewTable!)
Goto :Eof
:MovAX+
For /f "tokens=1,2 delims=X,Y" %%p in ("%~1") do (
Set /a MovX=%%p+1
call Set NMovX=%%X!MovX!Y%%q%%
If "!NMovX!"=="%Bound%" (Goto :Eof)
If "!NMovX!"=="[0] " (
Call :Color %2 "[0] "
Set "%~2=[0] "
Set X!MovX!Y%%q=%~4
Set %3=X!MovX!Y%%q
Call :Color !%3! "%%!%3!%%"
))
Goto :Eof
:MovAX-
For /f "tokens=1,2 delims=X,Y" %%p in ("%~1") do (
Set /a MovX=%%p-1
call Set NMovX=%%X!MovX!Y%%q%%
If "!NMovX!"=="%Bound%" (Goto :Eof)
If "!NMovX!"=="[0] " (
Call :Color %2 "[0] "
Set "%~2=[0] "
Set X!MovX!Y%%q=%~4
Set %3=X!MovX!Y%%q
Call :Color !%3! "%%!%3!%%"
))
Goto :Eof
:MovBall
Set EOM=False
Call :%NextMov% "%CurPos%"
If "%EOM%"=="True" Goto :Eof
Goto :MovBall
:Color
For /f "tokens=1,2 delims=X,Y" %%p in ("%~1") do (Set /a "ColX=%%p+5"&Set /a "ColY=%%q+6")
Set "Symbol=%~2"
rem Echo.%Symbol%
Colous %Symbol:~1,1% 0 %ColX%,%ColY% "%Symbol:~3%"
Colous Cursoroff
Goto :Eof
:Diag1
For /f "tokens=1,2 delims=X,Y" %%p in ("%~1") do (
Set /a MovX=%%p+1
Set /a MovY=%%q+1
call Set NMovX=%%X!MovX!Y%%q%%
call Set NMovY=%%X%%pY!MovY!%%
call Set NMovXY=%%X!MovX!Y!MovY!%%
If "!NMovXY!"=="%Bound%" (
If "%%q"=="%BBound%" (Set NextMov=Diag3)
If "%%p"=="%RBound%" (Set NextMov=Diag4)
Goto :Eof)
If "!NMovXY!"=="%Line%" (
If "%%q"=="%BBound%" (Set NextMov=Diag3)
If "%%p"=="%RBound%" (Set NextMov=Diag4)
Goto :Eof)
If "!NMovY!"=="%Point%" (
Set "X%%pY!MovY!=[0] "
Call :Color "X%%pY!MovY!" "[0] "
Set NextMov=Diag3
Set /a Points+=5
Set /a Dots-=1
Goto :Eof
)
If "!NMovX!"=="%Point%" (
Set "X!MovX!Y%%q=[0] "
Call :Color "X!MovX!Y%%q" "[0] "
Set NextMov=Diag4
Set /a Points+=5
Set /a Dots-=1
Goto :Eof
)
If "!NMovXY!"=="%Point%" (
Set "X!MovX!Y!MovY!=[0] "
Call :Color "X!MovX!Y!MovY!" "[0] "
Set NextMov=Diag2
Set /a Points+=5
Set /a Dots-=1
Goto :Eof
)
If "!NMovXY!"=="[0] " (
Call :Color "%~1" "[0] "
Set "%~1=[0] "
Set X!MovX!Y!MovY!=%Ball%
Set CurPos=X!MovX!Y!MovY!
Call :Color "!CurPos!" "%Ball%"
Set EOM=True)
)
If "!NMovXY!"=="%Lost%" (
Set "%~1=[0] "
Set /a Lives-=1
Goto :ReSet
)
)
Goto :Eof
:Diag2
For /f "tokens=1,2 delims=X,Y" %%p in ("%~1") do (
Set /a MovX=%%p-1
Set /a MovY=%%q-1
call Set NMovX=%%X!MovX!Y%%q%%
call Set NMovY=%%X%%pY!MovY!%%
call Set NMovXY=%%X!MovX!Y!MovY!%%
If "!NMovXY!"=="%Bound%" (
If "%%q"=="%TBound%" (Set NextMov=Diag4)
If "%%p"=="%LBound%" (Set NextMov=Diag3)
Goto :Eof)
If "!NMovXY!"=="%Line%" (
If "%%q"=="%TBound%" (Set NextMov=Diag4)
If "%%p"=="%LBound%" (Set NextMov=Diag3)
Goto :Eof)
If "!NMovY!"=="%Point%" (
Set "X%%pY!MovY!=[0] "
Call :Color "X%%pY!MovY!" "[0] "
Set NextMov=Diag4
Set /a Points+=5
Set /a Dots-=1
Goto :Eof
)
If "!NMovX!"=="%Point%" (
Set "X!MovX!Y%%q=[0] "
Call :Color "X!MovX!Y%%q" "[0] "
Set NextMov=Diag3
Set /a Points+=5
Set /a Dots-=1
Goto :Eof
)
If "!NMovXY!"=="%Point%" (
Set "X!MovX!Y!MovY!=[0] "
Call :Color "X!MovX!Y!MovY!" "[0] "
Set NextMov=Diag1
Set /a Points+=5
Set /a Dots-=1
Goto :Eof
)
If "!NMovXY!"=="[0] " (
Call :Color "%~1" "[0] "
Set "%~1=[0] "
Set X!MovX!Y!MovY!=%Ball%
Set CurPos=X!MovX!Y!MovY!
Call :Color "!CurPos!" "%Ball%"
Set EOM=True)
)
If "!NMovXY!"=="%Lost%" (
Set "%~1=[0] "
Set /a Lives-=1
Goto :ReSet
)
)
Goto :Eof
:Diag3
For /f "tokens=1,2 delims=X,Y" %%p in ("%~1") do (
Set /a MovX=%%p+1
Set /a MovY=%%q-1
call Set NMovX=%%X!MovX!Y%%q%%
call Set NMovY=%%X%%pY!MovY!%%
call Set NMovXY=%%X!MovX!Y!MovY!%%
If "!NMovXY!"=="%Bound%" (
If "%%q"=="%TBound%" (Set NextMov=Diag1)
If "%%p"=="%RBound%" (Set NextMov=Diag2)
Goto :Eof)
If "!NMovXY!"=="%Line%" (
If "%%q"=="%TBound%" (Set NextMov=Diag1)
If "%%p"=="%RBound%" (Set NextMov=Diag2)
Goto :Eof)
If "!NMovY!"=="%Point%" (
Set "X%%pY!MovY!=[0] "
Call :Color "X%%pY!MovY!" "[0] "
Set NextMov=Diag1
Set /a Points+=5
Set /a Dots-=1
Goto :Eof
)
If "!NMovX!"=="%Point%" (
Set "X!MovX!Y%%q=[0] "
Call :Color "X!MovX!Y%%q" "[0] "
Set NextMov=Diag2
Set /a Points+=5
Set /a Dots-=1
Goto :Eof
)
If "!NMovXY!"=="%Point%" (
Set "X!MovX!Y!MovY!=[0] "
Call :Color "X!MovX!Y!MovY!" "[0] "
Set NextMov=Diag4
Set /a Points+=5
Set /a Dots-=1
Goto :Eof
)
If "!NMovXY!"=="[0] " (
Call :Color "%~1" "[0] "
Set "%~1=[0] "
Set X!MovX!Y!MovY!=%Ball%
Set CurPos=X!MovX!Y!MovY!
Call :Color "!CurPos!" "%Ball%"
Set EOM=True)
)
If "!NMovXY!"=="%Lost%" (
Set "%~1=[0] "
Set /a Lives-=1
Goto :ReSet
)
)
Goto :Eof
:Diag4
For /f "tokens=1,2 delims=X,Y" %%p in ("%~1") do (
Set /a MovX=%%p-1
Set /a MovY=%%q+1
call Set NMovX=%%X!MovX!Y%%q%%
call Set NMovY=%%X%%pY!MovY!%%
call Set NMovXY=%%X!MovX!Y!MovY!%%
If "!NMovXY!"=="%Bound%" (
If "%%q"=="%BBound%" (Set NextMov=Diag2)
If "%%p"=="%LBound%" (Set NextMov=Diag1)
Goto :Eof)
If "!NMovXY!"=="%Line%" (
If "%%q"=="%BBound%" (Set NextMov=Diag2)
If "%%p"=="%LBound%" (Set NextMov=Diag1)
Goto :Eof)
If "!NMovY!"=="%Point%" (
Set "X%%pY!MovY!=[0] "
Call :Color "X%%pY!MovY!" "[0] "
Set NextMov=Diag2
Set /a Points+=5
Set /a Dots-=1
Goto :Eof
)
If "!NMovX!"=="%Point%" (
Set "X!MovX!Y%%q=[0] "
Call :Color "X!MovX!Y%%q" "[0] "
Set NextMov=Diag1
Set /a Points+=5
Set /a Dots-=1
Goto :Eof
)
If "!NMovXY!"=="%Point%" (
Set "X!MovX!Y!MovY!=[0] "
Call :Color "X!MovX!Y!MovY!" "[0] "
Set NextMov=Diag3
Set /a Points+=5
Set /a Dots-=1
Goto :Eof
)
If "!NMovXY!"=="[0] " (
Call :Color "%~1" "[0] "
Set "%~1=[0] "
Set X!MovX!Y!MovY!=%Ball%
Set CurPos=X!MovX!Y!MovY!
Call :Color "!CurPos!" "%Ball%"
Set EOM=True)
)
If "!NMovXY!"=="%Lost%" (
Set "%~1=[0] "
Set /a Lives-=1
Goto :ReSet
)
)
Goto :Eof
:Clear
For /l %%m in (0,1,%LimY%) do (Set Lin_%%m=)
Goto :Eof
:Reset
Set CurPos=X8Y13
Set Table=X10Y14,X9Y14,X8Y14,X7Y14,X6Y14
For /l %%h in (1,1,17) do (Set "X%%hY14=[0] ")
For %%k in (%Init%) do (Set %%k=%Line%)
For /f "tokens=1 delims=," %%j in ("%Init%") do (Set %%j=%Ball%)
Set Action=Paused
Call :Check
Goto :Graphic
:Lost
msg * Perdiste !
Goto :End
:Win
msg * Has Ganado !
Goto :End
:End
msg * Gracias por Jugar BlockBreaker v1 by SmartGenius
Endlocal
Exit
:Level1
Set /a "Movs=0","Points=0","Dots=36","Lives=3"
Set CurPos=X8Y13
Set Table=X10Y14,X9Y14,X8Y14,X7Y14,X6Y14
Set MaxTable=X17Y14,X16Y14,X15Y14,X14Y14,X13Y14
Set MinTable=X5Y14,X4Y14,X3Y14,X2Y14,X1Y14
Set Init=X8Y13,X6Y14,X7Y14,X8Y14,X9Y14,X10Y14
Set Dir=N
Set Action=Paused
Set NextMov=Diag3
For /l %%e in (%LBound%,1,%RBound%) do (Set "X%%eY1=[0] ")
For /l %%f in (6,1,10) do (Set "X%%fY2=%Bound%")
For %%k in (%Init%) do (Set "%%k=%Line%")
For /f "tokens=1 delims=," %%j in ("%Init%") do (Set "%%j=%Ball%")
For /l %%i in (0,1,%LimX%) do (
Set "X0Y%%i=%Bound%"
Set "X%LimX%Y%%i=%Bound%"
Set "X%%iY0=%Bound%"
Set "X%%iY%LimY%=%Bound%")
For /l %%l in (2,1,16) do (Set "X%%lY2=%Point%")
For /l %%m in (4,1,14) do (Set "X%%mY3=%Point%")
For /l %%n in (6,1,12) do (Set "X%%nY4=%Point%")
For /l %%o in (8,1,10) do (Set "X%%oY5=%Point%")
For /l %%r in (1,1,17) do (Set "X%%rY15=%Lost%")
Goto :Eof
:Logo
Cls
Color 0b
Echo.
Echo. °°°°°°°°°°°°°°°°°°°°°°°°°°
Echo. °°°°°°°°°°°°°°°°°°°°°°°°°°
Echo. °°°ÛÛÛ°°Û°°°ÛÛÛ°°ÛÛ°Û°°Û°°
Echo. °°°Û°°Û°Û°°°Û°Û°Û°°°Û°Û°°°
Echo. °°°ÛÛÛ°°Û°°°Û°Û°Û°°°ÛÛ°°°°
Echo. °°°Û°°Û°Û°°°Û°Û°Û°°°Û°Û°°°
Echo. °°°ÛÛÛ°°ÛÛÛ°ÛÛÛ°°ÛÛ°Û°°Û°°
Echo. °°°°°°°°°°°°°°°°°°°°°°°°°°
Echo. °°°°°°°°°°°°°°°°°°°°°°°°°°
Echo. °°°°°°B°R°E°A°K°E°R°°°°°°°
Echo. °°°°°°°°°°°°°°°°°°°°°°°°°°
Echo. °°°±°±°±°±°±°±°±°±°±°±°±°°
Echo. °°±°±°±°±°±°±°±°±°±°±°±°°°
Echo. °°°±°±°±°±°±°±°±°±°±°±°±°°
Echo. °°°°°°°°°°°°°°°°°°°°°°°°°°
Echo. °°°°°°°°°°°°°°°°°°°°°°°°°°
Echo. °°°°°°²°°°°°°°°°°°°°°°°°°°
Echo. °°°°ÛÛÛÛÛ°°°°°°°°°°°°°°°°°
Echo. °°°°°°°°°°°°°°°°°°°°°°°°°°
Echo. °°°°°: SmartGenius :°°°°°°
Echo. °°°°° Corp. 2010 °°°°°°
Echo. °°°°°°°°°°°°°°°°°°°°°°°°°°
Ping -n 3 0.0.0.0 >nul
Goto :Eof
:NoKey
Mode con cols=30 lines=20
Cls
Echo.
Echo Uno de los archivos necesarios para el
Echo funcionamiento de este Script no se
Echo encuentra.
Echo.
Echo CHOICE.COM
Echo.
Echo Por favor descargue una copia del Comando
Echo CHOICE de Internet...
Echo.
Pause
Exit
@Echo Off
@Title The Pair Game
@Mode Con Cols=30 Lines=12
Setlocal Enabledelayedexpansion
Color 0a
Colous Cursoroff
::Batch Game - The Pair Game
::Coded by SmartGenius
::Using COLOUS command from Bolivianito
::SmartGenius, Corp. 2010
:Load
Call :GenSymbols
Call :InitVars
:Init
Cls
Echo.
Echo. ÚÄÂÄÂÄÂÄÂÄÂÄ¿
Echo. ³°³°³°³°³°³°³ Puntaje:%Points%
Echo. ÃÄÅÄÅÄÅÄÅÄÅÄ´
Echo. ³°³°³°³°³°³°³
Echo. ÃÄÅÄÅÄÅÄÅÄÅÄ´
Echo. ³°³°³°³°³°³°³
Echo. ÃÄÅÄÅÄÅÄÅÄÅÄ´
Echo. ³°³°³°³°³°³°³
Echo. ÀÄÁÄÁÄÁÄÁÄÁÄÙ
Echo.
:Coord
Set /a "R+=1"
For /f "tokens=*" %%a in ('Colous Mouse') do (Call :Check %%a)
Colous 14 8 24,3 "!Points! "
If "%Pairs%"=="12" (
Colous 14 8 16,6 "You Win, press"
Colous 14 8 16,7 " any key to"
Colous 14 8 16,8 " restart game"
Pause >nul
Goto :Load
)
Goto :Coord
:Check
For /l %%X in (3,2,13) do (
For /l %%Y in (3,2,9) do (
If Defined O_%~2_%~3 (Goto :Eof)
If "%~2 %~3"=="%%X %%Y" (
Colous 12 8 %2,%3 !V_%~2_%~3!
If Not Defined Sel_1 (
Set "Sel_1=!V_%~2_%~3!"
Set "Pos_1=%~2,%~3"
Goto :Eof
)
If Not Defined Sel_2 (
Set "Sel_2=!V_%~2_%~3!"
Set "Pos_2=%~2,%~3"
)
If Not "!Sel_1!"=="!Sel_2!" (
Set /a "Points-=5"
Ping -n 2 localhost >nul
Colous 10 8 !Pos_1! $176
Colous 10 8 !Pos_2! $176
Set "Sel_1="
Set "Sel_2="
Goto :Eof
) else (
Set /a "Points+=10"
Set /a "Pairs+=1"
Ping -n 2 localhost >nul
Colous 0 8 !Pos_1! $219
Colous 0 8 !Pos_2! $219
Set "Sel_1="
Set "Sel_2="
Call :Def !Pos_1! !Pos_2!
Goto :Eof
))))
Goto :Eof
:Def
If "%~1"=="" Goto :Eof
Set "O_%~1_%~2=Nul"
Shift&Shift
Goto :Def
:GenSymbols
Set "Symbols=$001,$002,$003,$004,$005,$006,$011,$012,$014,$015,$020,$021"
For %%S in (%Symbols%) do (
Set /a "S+=1"
Set "Symbol_!S!=%%S"
)
Goto :Eof
:InitVars
For /l %%X in (3,2,13) do (
For /l %%Y in (3,2,9) do (
Call :Generate "%%X" "%%Y"
Set "O_%%X_%%Y="
))
Set /a "Points=0","Pairs=0"
Goto :Eof
:Generate
Set /a "RX=(!Random! %% 12)+1"
If Defined Sym_%RX% (Goto :Generate)
If Not Defined S1_%RX% (
Set "V_%~1_%~2=!Symbol_%RX%!"
Set "S1_%RX%=Nul"
Goto :Eof
)
If Not Defined S2_%RX% (
Set "V_%~1_%~2=!Symbol_%RX%!"
Set "S2_%RX%=Nul"
Goto :Eof
)
Set "Sym_%RX%=Nul"
Goto :Generate