|
Mostrar Temas
|
Páginas: [1] 2 3 4 5
|
1
|
Programacin / Scripting / [Batch] Don't Worry
|
en: 31 Agosto 2013, 19:42 pm
|
@Echo Off&Title Be Happy, Smile!!&Color 0A Setlocal EnableDelayedExpansion ::Coded by SmartGenius, Just For Fun :) Pushd %Windir% For /f %%? in ('Tree^|Find " "') do ( For /f %%_ in ('Cmd /U /C Echo.%%?^|More') Do ( Set "%%_=%%_"&Call Set /P "!Smart!=!%%:~0,1!"<Nul)) Pause&Exit
|
|
|
2
|
Programacin / Scripting / [Batch Game] Tetris v 1 - by SmartGenius
|
en: 2 Agosto 2010, 21:26 pm
|
[Batch Game] Tetris v 1 - by SmartGenius Pensaron que era imposible hacerlo, o que consumiria una cantidad inmensa de lineas de codigo y que seria dificil controlarlo todo, y mas aun en Batch que no es un "lenguaje", pero para mi nada de eso vale 8) Descargar: http://smart.code-makers.net/BatchGames/TetrisBatchBySmartGenius.zipYa lo saben, el clasico juego del Tetris, ahora en Batch, usan las teclas A,S,D,R,X, en el mismo juego se explica como funciona, no anda solo, pero eso se acomoda con el CHOICE, salen todas las figuras y tambien rotan, tiene sus reglas para los movimientos, lo hice a modo de prueba pero es totalmente funcional, los invito a probarlo @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
Espero que les guste, cualquier comentario o sugerencia son bien recibidos. Saludos. 8)
|
|
|
3
|
Programacin / Scripting / [Batch Game] Block Breaker (BRIX) - by SmartGenius
|
en: 1 Agosto 2010, 01:06 am
|
[Batch Game] Block Breaker (BRIX) - by SmartGeniusDescargar: http://smart.code-makers.net/BatchGames/BlockBreakerv1BySmartgenius.zipCreo que este juego ya lo conocen, es un clasico en el cual mueven una plataforma con una pelota y el objetivo es hacerla rebotar y que vaya agarrando puntos o bloques, la imagen lo dice todo He hecho dos versiones, una en Batch usando CHOICE.COM y el sistema de coordenadas, y el otro es el mismo juego pero agregando el comando COLOUS para que el juego salga a color y sin parpadeos de pantalla. Manejan la tabla con las teclas A (Izquierda) D (Derecha) W (Lanzar / Acelerar pelota ) y con X salen del juego. Codigo version normal: @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. BREAKER 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
Y aqui el codigo de la version colorida del juego @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. BREAKER 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
Espero que les guste, y cualquier comentario o sugerencia es bien recibido ! Saludis.
|
|
|
4
|
Programacin / Scripting / [Batch Game] The Pair Game - by SmartGenius
|
en: 1 Agosto 2010, 01:00 am
|
Batch Game - The Pair Game - by SmartGeniusDescargar -->> http://smart.code-makers.net/BatchGames/ThePairGameBySmartgenius.zipEste es un pequeo Juego Batch que he diseado, usando el comando COLOUS de Bolivianito, y cuyo objetivo es hacer parejas de objetos, es un juego clasico ya conocido, interactuan con el mouse dando click en a ficha a descubrir, te da 10 puntos por acierto en una pareja y quita 5 puntos al desacertar. @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 Espero sea de su agrado, y cualquier duda o comentario favor hacerlos ! Saludos.
|
|
|
5
|
Programacin / Scripting / [Batch Game] The Labyrinth - usando COLOUS
|
en: 1 Agosto 2010, 00:58 am
|
Tal como le habia dicho a Bolivianito que haria, este juego es una demostracion de uso del comando COLOUS creado por el, para la implementacion de un Juego Batch simple, usando el sistema de coordenadas mio @title The Labyrinth - SmartGenius Mode con cols=45 lines=16 :: Batch Game - The Labyrinth :: Coded by SmartGenius :: Using Graphic Command (colous) by Bolivianito :Game_Vars Set /a "LimX=44","LimY=15","IniX=1","IniY=1","MovX=0","MovY=0","Points=0" :Game_Init For /l %%a in (%IniX%,1, %LimX%) do ( For /l %%b in (%IniY%,1, %LimY%) do ( Call : Color " %Player%" "12 0" :Display For /l %%d in (%IniX%,1, %LimY%) do ( For /l %%e in (%IniX%,1, %LimX%) do Set Lin_ %%d= !Lin_%% style="color: #448888;">d!!X%%eY%%d!) For /l %%f in (%IniY%,1, %LimY%) do (Colous Writesec " !Lin_%% style="color: #448888;">f!") :Game_Move Colous Readkey If " %ErrorLevel%"=="100" (call : Mov "X" "+" ) If " %ErrorLevel%"=="97" (call : Mov "X" "-" ) If " %ErrorLevel%"=="115" (call : Mov "Y" "+" ) If " %ErrorLevel%"=="119" (call : Mov "Y" "-" ) If " %ErrorLevel%"=="88" (Goto : Win) If " %ErrorLevel%"=="120" (Goto : Win) :Mov For /f "tokens=1,2 delims=X,Y" %%p in (" %CurPos%" ) do (Set "MovX= %%p" &Set "MovY= %%q" ) if " !Mov% style="color: #448888;">~1!"=="!Lim% style="color: #448888;">~1!" Goto :Eof Set "NMovY= !X%MovX%Y %MovY%!" If " !NMovY!"=="% style="color: #448888;">Bound%" (Goto :Eof) If " !NMovY!"=="% style="color: #448888;">Exit%" (Goto :Win) If " !NMovY!"=="% style="color: #448888;">Point%" (Set /a Points+=5) Set "X %MovX%Y %MovY%= %Player%" Set "CurPos=X %MovX%Y %MovY%" Call : Color " %Player%" "12 0" :Color For /f "tokens=1,2 delims=X,Y" %%p in (" %CurPos%" ) do (Set "ColX= %%p" &Set "ColY= %%q" ) Colous %~2 %ColX%,%ColY% %~1 Colous Cursoroff :Win Cls If %Points% GEQ 200 (Echo. Excelent %Nick%, You Get 3 Extra Lives &Set /a Lives+=3 ) If %Points% GEQ 150 (If %Points% LEQ 195 (Echo. Well Done %Nick%, You Get 2 Extra Lives &Set /a Lives+=2 )) If %Points% GEQ 100 (If %Points% LEQ 145 (Echo. You Did it %Nick%, You Get 1 Extra Live &Set /a Lives+=1 )) If %Points% LSS 100 (Echo. Level Completed %Nick%, No Lives Won ) Echo. You Get %Points% Points :Game_Level For %%a in (X7Y10,X8Y6,X9Y2,X9Y6,X9Y14,X10Y14,X13Y8,X18Y6,X18Y10,X18Y12,X20Y12,X23Y9,X27Y7,X29Y2,X38Y10,X41Y6,X43Y14 ) do ( X1Y1,X1Y2,X1Y3,X1Y4,X1Y5,X1Y6,X1Y7,X1Y8,X1Y9,X1Y10,X1Y11,X1Y12,X1Y13,X2Y1,X2Y3,X2Y8, X2Y10,X2Y13,X3Y1,X3Y3,X3Y5,X3Y8,X3Y13,X4Y1,X4Y3,X4Y5,X4Y7,X4Y8,X4Y10,X4Y11,X4Y13, X5Y1,X5Y3,X5Y5,X5Y11,X5Y13,X5Y14,X5Y15,X6Y1,X6Y5,X6Y9,X6Y11,X6Y15,X7Y1,X7Y3,X7Y5, X7Y6,X7Y7,X7Y11,X7Y15,X8Y1,X8Y3,X8Y7,X8Y9,X8Y10,X8Y11,X8Y12,X8Y13,X8Y15,X9Y1,X9Y3, X9Y7,X9Y13,X9Y15,X10Y1,X10Y2,X10Y3,X10Y4,X10Y5,X10Y6,X10Y7,X10Y8,X10Y9,X10Y10,X10Y11, X10Y13,X10Y15,X11Y1,X11Y2,X11Y9,X11Y13,X11Y14,X11Y15,X12Y2,X12Y4,X12Y5,X12Y7,X12Y9, X12Y13,X13Y2,X13Y4,X13Y5,X13Y7,X13Y9,X13Y11,X13Y13,X14Y2,X14Y5,X14Y7,X14Y8,X14Y9, X14Y11,X14Y13,X14Y14,X14Y15,X15Y2,X15Y3,X15Y4,X15Y5,X15Y9,X15Y11,X15Y15,X16Y3,X16Y11, X16Y13,X16Y15,X17Y3,X17Y5,X17Y6,X17Y7,X17Y8,X17Y11,X17Y12,X17Y13,X17Y15,X18Y3,X18Y5, X18Y7,X18Y11,X18Y15,X19Y1,X19Y2,X19Y3,X19Y5,X19Y7,X19Y8,X19Y9,X19Y10,X19Y11,X19Y12, X19Y13,X19Y14,X19Y15,X20Y1,X20Y5,X20Y8,X20Y13,X20Y15,X21Y1,X21Y5,X21Y8,X21Y11,X21Y12, X21Y13,X21Y15,X22Y1,X22Y3,X22Y4,X22Y5,X22Y6,X22Y8,X22Y9,X22Y13,X22Y15,X23Y1,X23Y8, X23Y11,X23Y13,X23Y15,X24Y1,X24Y2,X24Y3,X24Y5,X24Y6,X24Y7,X24Y8,X24Y11,X24Y13,X24Y15, X25Y1,X25Y2,X25Y5,X25Y11,X25Y13,X25Y15,X26Y1,X26Y4,X26Y5,X26Y6,X26Y7,X26Y8,X26Y9, X26Y10,X26Y11,X26Y13,X26Y15,X27Y1,X27Y6,X27Y9,X27Y13,X27Y15,X28Y1,X28Y2,X28Y3,X28Y4, X28Y6,X28Y7,X28Y9,X28Y11,X28Y12,X28Y13,X28Y15,X29Y1,X29Y4,X29Y6,X29Y9,X29Y13,X29Y15, X30Y1,X30Y2,X30Y4,X30Y6,X30Y8,X30Y9,X30Y11,X30Y13,X30Y15,X31Y2,X31Y4,X31Y6,X31Y9, X31Y11,X31Y15,X32Y2,X32Y4,X32Y6,X32Y7,X32Y9,X32Y11,X32Y12,X32Y13,X32Y14,X32Y15,X33Y2, X33Y4,X33Y9,X33Y13,X34Y2,X34Y4,X34Y6,X34Y7,X34Y8,X34Y9,X34Y11,X34Y13,X35Y2,X35Y4, X35Y11,X35Y13,X35Y14,X35Y15,X36Y1,X36Y2,X36Y4,X36Y6,X36Y7,X36Y8,X36Y9,X36Y11,X36Y15, X37Y1,X37Y4,X37Y9,X37Y10,X37Y11,X37Y13,X37Y15,X38Y1,X38Y3,X38Y4,X38Y6,X38Y7,X38Y9, X38Y11,X38Y13,X38Y15,X39Y1,X39Y3,X39Y7,X39Y9,X39Y11,X39Y12,X39Y13,X39Y15,X40Y1,X40Y3, X40Y5,X40Y7,X40Y9,X40Y13,X40Y15,X41Y1,X41Y3,X41Y4,X41Y5,X41Y7,X41Y9,X41Y11,X41Y15, X42Y1,X42Y5,X42Y6,X42Y7,X42Y9,X42Y10,X42Y11,X42Y12,X42Y14,X42Y15,X43Y1,X43Y2,X43Y3, X43Y9,X43Y12,X43Y15,X44Y3,X44Y4,X44Y5,X44Y6,X44Y7,X44Y8,X44Y9,X44Y12,X44Y13,X44Y14,X44Y15 For %%a in (X2Y2,X2Y7,X2Y9,X16Y12,X18Y8,X20Y2,X20Y9,X25Y6,X26Y2,X36Y10,X40Y4,X41Y10 ) do (Set S_ %%a= %Point%)
Lo pueden jugar usando las clasicas teclas de WASD, el objetivo es llegar a la salida y lograr la mayor cantidad de puntos.El Juego es un Easter Egg del WarGame Batch para poder obtener mas vidas, solo hice la adaptacion para poder usar el comando COLOUS de bolivianito. Cualquier duda o comentario favor de hacerlos ! Saludos.
|
|
|
6
|
Programacin / Scripting / Batch Paint v 1.3 - by SCOT Team
|
en: 8 Octubre 2009, 18:15 pm
|
Quien dijo que no se podia pintar en Batch ???.... =D @Echo Off @title Batch Paint @Mode Con cols=80 lines=25 Setlocal Enabledelayedexpansion
::A Program by S.C.O.T 2009 ::Script Coders Oriented Team ::SmartGenius & 3D1
:Init Cls If Not Exist Col.vbs (Call :Col_Deb >>Col.vbs) Set "X=0" Set "Y=0" Set "Color=11" Set "Pincel=" Call :Load
:Table If "!X!-!Y!"=="43-2" (Exit) For /l %%s in (33,1,39) do (If "!X!-!Y!"=="%%s-2" (Goto :Save)) If "!X!-!Y!"=="22-2" (Set "Pincel=") If "!X!-!Y!"=="24-2" (Set "Pincel=") If "!X!-!Y!"=="26-2" (Set "Pincel=") If "!X!-!Y!"=="28-2" (Set "Pincel=") If "!X!-!Y!"=="3-4" (Set "Color=01") If "!X!-!Y!"=="5-4" (Set "Color=02") If "!X!-!Y!"=="7-4" (Set "Color=03") If "!X!-!Y!"=="3-6" (Set "Color=04") If "!X!-!Y!"=="5-6" (Set "Color=05") If "!X!-!Y!"=="7-6" (Set "Color=06") If "!X!-!Y!"=="3-8" (Set "Color=07") If "!X!-!Y!"=="5-8" (Set "Color=08") If "!X!-!Y!"=="7-8" (Set "Color=09") If "!X!-!Y!"=="3-10" (Set "Color=0A") If "!X!-!Y!"=="5-10" (Set "Color=0B") If "!X!-!Y!"=="7-10" (Set "Color=0C") If "!X!-!Y!"=="3-12" (Set "Color=0D") If "!X!-!Y!"=="5-12" (Set "Color=0E") If "!X!-!Y!"=="7-12" (Set "Color=0F") If !X! GEQ 12 ( If !Y! GEQ 5 ( If !X! LEQ 41 ( If !Y! LEQ 15 ( cscript //nologo col.vbs "!X!" "!Y!" "%Color%" "%Pincel%" Set /a "vX=!X!-12" Set /a "vY=!Y!-5" Set "X!vX!Y!vY!=!vX! !vY! %Color% %Pincel%" )))) Call :Mouse Goto :Table
:Load Echo. Echo. Ŀ Echo. Colores Pinceles Guardar X Echo. ĿĴ Echo. ۳۳۳ ͻ Echo. Ĵ Echo. ۳۳۳ Echo. Ĵ Echo. ۳۳۳ Echo. Ĵ Echo. ۳۳۳ Echo. Ĵ Echo. ۳۳۳ Echo. ٳ Echo. Ĵ Echo. SCOT Echo. Team ͼ Echo. cscript //nologo col.vbs "3" "4" "11" " " cscript //nologo col.vbs "5" "4" "22" " " cscript //nologo col.vbs "7" "4" "33" " " cscript //nologo col.vbs "3" "6" "44" " " cscript //nologo col.vbs "5" "6" "55" " " cscript //nologo col.vbs "7" "6" "66" " " cscript //nologo col.vbs "3" "8" "77" " " cscript //nologo col.vbs "5" "8" "88" " " cscript //nologo col.vbs "7" "8" "99" " " cscript //nologo col.vbs "3" "10" "AA" " " cscript //nologo col.vbs "5" "10" "BB" " " cscript //nologo col.vbs "7" "10" "CC" " " cscript //nologo col.vbs "3" "12" "DD" " " cscript //nologo col.vbs "5" "12" "EE" " " cscript //nologo col.vbs "7" "12" "FF" " " Goto :Eof
:Mouse Echo e100 B8 1 0'3'DB CD'3'B0 3'C'CD'3'B DB't'FA 91 D3 EA D3 E8 91 C3>mouse.dat For %%! in (.g116 .q) do (Echo%%!>> mouse.dat) For /f "tokens=6-8 delims== " %%a in ('Debug ^< mouse.dat ^| Find /I "X"') do ( Set /a "X=0x%%a" Set /a "Y=0x%%c") Goto :Eof
:Save Cls Echo. Set /p "V= Introduzca un Nombre De Archivo >> "<nul Set /p "FileName=" If Not Defined Filename Set "FileName=Paint_%Random%" Call :Template >>%Filename% For /l %%a in (0,1,29) do ( For /l %%b in (0,1,11) do ( If Defined X%%aY%%b (Echo.Cscript //nologo col.vbs !X%%aY%%b! >>%Filename%) )) Echo.Pause^>nul >>%Filename% Echo.>>%Filename% Call :Col_Deb Echo. "^">>%Filename% Echo. Echo. Archivo %Filename% Generado Exitosamente Ren %Filename% %Filename%.bat >nul Echo. Set /p "V= Presione Cualquier tecla para volver...."<nul Pause >nul Goto :Init
:Template Echo. @Echo off Echo. @Title Paint Batch - %Filename% Echo. @Mode Con Cols=80 Lines=25 Echo. @::Hecho Con Batch Paint Echo. @::S.C.O.T Team 2009 Echo.If Not Exist Col.vbs Call :Col ^>^>col.vbs Echo.:Draw Goto :Eof
:Col_Deb %1:Col %1Echo.On Error Resume Next %1Echo.HexColor = Right("0" %~2^& wscript.arguments(2), 2) %1Echo.Set oExec = CreateObject("WScript.Shell").Exec("%comspec% /c debug ") %1Echo. %1Echo.Do Until oExec.StdOut.Read(1) = "-" %1Echo. wsh.sleep 10 %1Echo.Loop %1Echo. %1Echo.Dim Textos %1Echo.Textos = Replace(wscript.arguments(3), Chr(195), "") %1Echo.WriteXY wscript.arguments(0), wscript.arguments(1), HexColor, Textos %1Echo. %1Echo.oExec.StdIn.Writeline "e0:451 2A" %1Echo.oExec.StdIn.Writeline "q" %1Echo. %1Echo.Sub WriteXY(X, Y, hColor, sText) %1Echo.Dim ColorText %1Echo. For j = 1 to Len(sText) Step 10 %1Echo. ColorText = "EB800:" %~2^& Hex(Y * 160 + (X + j - 1) * 2) %1Echo. For i = j to j + 9 %1Echo. ColorText = ColorText %~2^& " " %~2^& Hex(Asc(Mid(sText, i, 1))) %~2^& " " %~2^& hColor %1Echo. if i = Len(sText) Then Exit For %1Echo. Next %1Echo. oExec.StdIn.Writeline ColorText %1Echo. Next %1Echo.End Sub %1Attrib +H Col.vbs %1Goto :Eof Goto :Eof
Se Reciben Comentarios Y Sugerencias !
|
|
|
7
|
Programacin / Scripting / [Batch Game] F1 Cars - by SmartGenius
|
en: 23 Julio 2009, 19:17 pm
|
Bueno, que mas decirle....un nuevo juego, de los tantos que ya he hecho Esta vez se trata de un clasico del tetris, ya lo conocen, las carreras de carritos. Descargar: http://one.xthost.info/smartv2/BatchGames/F1CarGamev1bySmartGenius.zipMueven su "carrito" con las feclas de direccion izquierda y derecha, automaticamente bajaran los demas carros, esta programado para usar el KEYBOARD para mostrar el juego como una "Prueba de Concepto", pero se adaptaria al uso de CHOICE.COM para que el juego siga automaticamente su curso aun cuando el jugador no presiona ninguna tecla... @Echo off @title Cars @mode con cols=15 lines=13 ::Batch Game F1 Cars ::Coded by SmartGenius
setlocal enabledelayedexpansion
If Not Exist "keyboard.exe" (Call :NoKey)
:Menu Cls Echo. Echo. F1 Car Game Echo. Echo. Presione Echo. Enter Echo. Pause >nul
:Vars Set "LimX=10" Set "LimY=10" Set "LimI=3" Set "LimD=9" Set "Last= " Set "CurPos=X3Y3"
:Init Call :Level For /l %%a in (0,1,%LimX%) do ( For /l %%b in (0,1,%LimY%) do ( Set X%%aY%%b=!Lin_%%a:~%%b,1!)) Set "Car=X3Y3,X2Y2,X4Y2,X3Y2,X3Y1,X2Y0,X4Y0" For %%a in (%Car%) do (Set "%%a=")
:Graphic Call :Clear For /l %%d in (0,1,%LimX%) do ( For /l %%e in (0,1,%LimY%) do ( Set LN_%%d=!LN_%%d!!X%%eY%%d!)) Echo. F1 Car Game For /l %%f in (%LimY%,-1,0) do (echo. -!LN_%%f!-) keyboard if "%errorlevel%"=="77" (call :Mov_D) if "%errorlevel%"=="75" (call :Mov_I) if "%errorlevel%"=="27" (Exit) Call :Abajo Call :Colision "%CurPos%" "%Car2%" "%Car3%" Goto :Graphic
:Mov_D If "%BoundD%"=="True" Goto :Eof Set "BoundI=False" Set "P=0" For %%a in (%Car%) do ( Set /a P+=1 Call :MovX+ %%a Car!P! ) Set "Car=%Car1%,%Car2%,%Car3%,%Car4%,%Car5%,%Car6%,%Car7%" Set "CurPos=%Car1%" Goto :Eof
:Mov_I If "%BoundI%"=="True" Goto :Eof Set "BoundD=False" Set "P=0" For %%a in (%Car%) do ( Set /a P+=1 Call :MovX- %%a Car!P! ) Set "Car=%Car1%,%Car2%,%Car3%,%Car4%,%Car5%,%Car6%,%Car7%" Set "CurPos=%Car1%" Goto :Eof
:MovX+ for /f "tokens=1,2 delims=X,Y" %%p in ("%~1") do ( if !%~1!== set %~1=%Last% set /a MovX=%%p+1 call set Last=%%X!MovX!Y%%q%% If "%Last%"=="" (Goto :Lost) set X!MovX!Y%%q= set %2=X!MovX!Y%%q if !P!==7 (if "%%p"=="%LimD%" Set BoundD=True) ) Goto :Eof
:MovX- for /f "tokens=1,2 delims=X,Y" %%p in ("%~1") do ( if !%~1!== set %~1=%Last% set /a MovX=%%p-1 call set Last=%%X!MovX!Y%%q%% If "%Last%"=="" (Goto :Lost) set X!MovX!Y%%q= set %2=X!MovX!Y%%q if !P!==7 (if "%%p"=="%LimI%" Set BoundI=True) ) Goto :Eof
:Abajo If "%Mov%"=="55" Goto :Win Set /a Mov=Mov+1 For /l %%d in (0,1,%LimY%) do (Set LN_%%d=!Lin_%%d:~%Mov%!) For /l %%a in (0,1,%LimX%) do ( For /l %%b in (0,1,%LimY%) do ( Set X%%aY%%b=!LN_%%a:~%%b,1!)) For %%c in (%Car%) do (Set "%%c=") Goto :Eof
:Colision If "%~1"=="" (Goto :Eof) for /f "tokens=1,2 delims=X,Y" %%p in ("%~1") do ( set /a MovY=%%q+1 call set NMovY=%%X%%pY!MovY!%% if "!NMovY!"=="" (Goto :Lost) ) Shift Goto :Colision
:Lost cls Echo. Echo. Te has Echo. Estrellado Echo. Echo. Ping -n 3 0.0.0.0 >nul msg * Gracias por Jugar F1 Cars Exit
:Win Cls. Echo. Echo. Has Ganado! Echo. Echo. Felicidades Echo. Echo. Ping -n 3 0.0.0.0 >nul msg * Gracias por Jugar F1 Cars Exit
:Clear For /l %%m in (0,1,%LimX%) do (set LN_%%m=) Goto :Eof
:Level ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Set Lin_0= + Set Lin_1= + Set Lin_2= + Set Lin_3= + Set Lin_4= + Set Lin_5= + Set Lin_6= + Set Lin_7= + Set Lin_8= + Set Lin_9= + Set Lin_10= + ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Goto :Eof
:NoKey Cls echo. echo. Cargando... call :Keyboard Goto :Eof
: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 Saludos.
|
|
|
8
|
Programacin / Scripting / [Batch Game] Adventure Game - by SmartGenius
|
en: 17 Julio 2009, 06:15 am
|
Bueno, otro mas a la lista, un nuevo juego Batch con un enfoque diferente, parecido al clasico Mario Bros. Descargar: http://one.xthost.info/smartv2/BatchGames/AdventureGamev1bySmartGenius.zip @Echo Off @title Adventure Game ::Batch Game Adventure ::Coded by SmartGenius ::Batch Game Maker
setlocal enabledelayedexpansion mode con cols=14 lineS=13
If Not Exist "keyboard.exe" (Call :NoKey)
:Vars Set "Pj=" Set "LimX=9" Set "LimY=10" Set "MovA=0" Set "MovB=9" Set "Bound=" Set "Ender= " Set "Coin="
:Init Set /a Level+=1 Call :Nivel_%Level% For /l %%a in (0,1,%LimX%) do ( For /l %%b in (0,1,%LimY%) do ( Set X%%aY%%b=!LN_%%b:~%%a,1!)) Set "%CurPos%=%Pj%" Goto :Graphic
:Graphic Call :Clear 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. For /l %%f in (0,1,%LimY%) do (echo. !Lin_%%f!) Keyboard If "%errorlevel%"=="77" (Call :Derecha "%CurPos%") If "%errorlevel%"=="75" (Call :Izquierda "%CurPos%") If "%errorlevel%"=="72" (Call :Saltar "%CurPos%") If "%errorlevel%"=="27" (msg * Gracias Por Jugar&Exit) Call :Gravity "%CurPos%" Goto :Graphic
:Derecha If "%Mov%"=="115" Goto :Eof 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!"=="%Ender%" (Goto :Win) if "!NMovX!"=="%Coin%" (Call :UnCoin "%%q" "%%p" "+1") Set /a Mov=Mov+1 For /l %%d in (0,1,%LimY%) do (Set LNB_%%d=!LN_%%d:~%Mov%!) For /l %%a in (0,1,%LimX%) do ( For /l %%b in (0,1,%LimY%) do ( Set X%%aY%%b=!LNB_%%b:~%%a,1!)) Set "%CurPos%=%Pj%") Goto :Eof
:Izquierda If "%Mov%"=="0" Goto :Eof 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!"=="%Ender%" (Goto :Win) if "!NMovX!"=="%Coin%" (Call :UnCoin "%%q" "%%p" "+1") Set /a Mov=Mov-1 For /l %%d in (0,1,%LimY%) do (Set LNB_%%d=!LN_%%d:~%Mov%!) For /l %%a in (0,1,%LimX%) do ( For /l %%b in (0,1,%LimY%) do ( Set X%%aY%%b=!LNB_%%b:~%%a,1!)) Set "%CurPos%=%Pj%") Goto :Eof
:Saltar For /l %%z in (1,1,3) do ( Call :Arriba "!CurPos!" Call :Gp2) Call :Derecha "%CurPos%" Call :Gp2 Goto :Eof
:Arriba for /f "tokens=1,2 delims=X,Y" %%p in ("%~1") do ( set /a MovY=%%q-1 call set NMovY=%%X%%pY!MovY!%% if "!NMovY!"=="%Bound%" (Goto :Eof) if "!NMovY!"=="%Ender%" (Goto :Win) Set %~1= set X%%pY!MovY!=%Pj% set CurPos=X%%pY!MovY!) Goto :Eof
:Abajo for /f "tokens=1,2 delims=X,Y" %%p in ("%~1") do ( set /a MovY=%%q+1 call set NMovY=%%X%%pY!MovY!%% if "!NMovY!"=="%Bound%" (Goto :Eof) if "!NMovY!"=="%Ender%" (Goto :Win) Set %~1= set X%%pY!MovY!=%Pj% set CurPos=X%%pY!MovY!) Goto :Eof
:UnCoin Set /a "M1=%~2+%Mov%" Set /a "M2=%M1%%~3" Set "LN_%~1=!LN_%~1:~0,%M1%!!LN_%~1:~%M2%! Set /a Coins+=5 Goto :Eof
:Gravity Set /a "GForce=9-%CurPos:~-1%" For /l %%z in (1,1,%GForce%) do ( Call :Abajo "!CurPos!" If "%1"=="!CurPos!" Goto :Eof Call :Gp2) Goto :Eof
:Gp2 Call :Clear 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. For /l %%f in (0,1,%LimY%) do (echo. !Lin_%%f!) ping -n 1,5 0.0.0.0 >nul Goto :Eof
:Clear For /l %%m in (0,1,%LimY%) do (set Lin_%%m=) Goto :Eof
:Win ping -n 2 0.0.0.0 >nul If "%Level%"=="2" ( echo. echo. Muy Bien echo. echo. Ganaste %Coins% echo. echo. Puntos ! echo. ping -n 4 0.0.0.0 >nul msg * Gracias Por Jugar Exit ) else (Goto :Vars) ping -n 2 0.0.0. >nul Exit
:Nivel_1 Set "CurPos=X2Y3" Set LN_0= Set LN_1= ۰۱۱۱۰۰ Set LN_2= ۰۱۰۰۱ ۰ Set LN_3= ۰۱۰۱۱۰ Set LN_4= ۰۱۱۱۰۱۰۱۱۱۱۱۰۱ Set LN_5= ۰۰۱۱۱۱۱۰ Set LN_6= ۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰ Set LN_7= ۰۰۰۰۰۰۰۰۰ Set LN_8= ۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰ Set LN_9= ۰۰۰۰۰۰۰ Set LN_10= Goto :Eof
:Nivel_2 Set "CurPos=X2Y2" Set LN_0= Set LN_1= ۰۰ Set LN_2= ۰۰۰۰۰۰۰ Set LN_3= ۰۰۰۰۰۰۰ Set LN_4= ۰۰۰۰۰۰ Set LN_5= ۰۰۰۰۰۰ Set LN_6= ۰۰۰۰۰۰ Set LN_7= ۰۰۰۰۰۰ Set LN_8= ۰۰۰۰۰۰۰۰۰۰ Set LN_9= ۰۰۰۰ Set LN_10= Goto :Eof
:NoKey Cls echo. echo. Cargando... call :Keyboard Goto :Eof
: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 Cualquier duda, comentario o sugerencia pueden hacerla... =D Saludos.
|
|
|
9
|
Programacin / Scripting / [Batch Game] MineSweeper v 2 - by SmartGenius
|
en: 17 Abril 2009, 23:09 pm
|
El Clasico Buscaminas de Windows.....mejorado de la previa version, ahora aparece cuantas minas tienes en las proximidades, y tiene tres niveles de dificultad.... ! Se mueven con las flechas de direccion y con Enter descubren una casilla =D @echo off @title MineSweeper ::Batch Game ::MineSweeper v 2 ::Coded by ::SmartGenius::
if not exist "keyboard.exe" (Goto :NoKey)
setlocal enabledelayedexpansion
:Menu @mode con cols=22 lines=20 cls echo. echo. ͻ echo. MineSweeper v 2 echo. ͼ echo. echo. echo. 1. Jugar Mines echo. echo. 2. Dificultad echo. echo. 3. Salir echo. echo. keyboard if "%errorlevel%"=="49" (Goto :Default) if "%errorlevel%"=="50" (Goto :Skill) if "%errorlevel%"=="51" (Exit) Goto :Menu
:Skill cls echo. echo. Seleccione el echo. Nivel de echo. dificultad... echo. echo. 1. Novato echo. 2. Normal echo. 3. Experto echo. keyboard if "%errorlevel%"=="50" ( Set LimX=6 Set LimY=6 Set SMines=12 Set E=2 Goto :Load ) if "%errorlevel%"=="51" ( Set LimX=12 Set LimY=7 Set SMines=25 Set E=2 Goto :Load ) :Default Set LimX=4 Set LimY=4 Set SMines=6 Set E=1
:Load set /a SFX=LimX*2+9 set /a SFY=LimY*2+10 mode con cols=%SFX% lines=%SFY% set IniX=0 set IniY=0 set MovX=0 set MovY=0
:Init for /l %%a in (0,1,%LimX%) do ( for /l %%b in (0,1,%LimY%) do ( set X%%aY%%b= set MX%%aY%%b= )) Set /a Total=(%LimX%+1)*(%LimY%+1)-%SMines% echo. Cargando Juego echo. Por Favor Espere... Call :GenMines Call :Timer "Start" set X0Y0= set Last= set Curpos=X0Y0 Set EOG=False
:Graphic Call :Clear Call :Timer "Time" 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. MineSweeper v 2 echo. echo. T: %Elapsed% segundos echo. set /p var=". "<nul for /l %%g in (0,1,%LimX%) do (set /p var=""<nul) set /p var=""<nul echo. for /l %%f in (0,1,%LimY%) do ( echo.. !Lin_%%f! set /p var=". "<nul for /l %%h in (0,1,%LimX%) do (set /p var=""<nul) set /p var=""<nul echo. ) set /p var=". "<nul for /l %%g in (0,1,%LimX%) do (set /p var=""<nul) set /p var=""<nul echo. if "%EOG%"=="True" Goto :Lose if "%Total%"=="0" Goto :Win keyboard if "%errorlevel%"=="77" (call :MovX+ "%CurPos%") if "%errorlevel%"=="75" (call :MovX- "%CurPos%") if "%errorlevel%"=="80" (call :MovY+ "%CurPos%") if "%errorlevel%"=="72" (call :MovY- "%CurPos%") if "%errorlevel%"=="13" (call :Check "%CurPos%") if "%errorlevel%"=="88" (Goto :Menu) if "%errorlevel%"=="120" (Goto :Menu) Goto :Graphic
:MovX+ 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
:MovX- 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
:MovY+ 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
:MovY- 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
:GenMines set Mines=%SMines% set /a R1=0x!random:~-%E%! rem if "%errolevel%"=="9167" (Goto :GenMines) set /a R2=0x!random:~-%E%! rem if "%errolevel%"=="9167" (Goto :GenMines) if not %R1% GTR %LimX% ( if not %R2% GTR %LimY% ( if not defined MX%R1%Y%R2% ( set MX%R1%Y%R2%= set /a LMN+=1 ))) if "%LMN%"=="%Mines%" ( set LMN=0 Goto :Eof ) Goto :GenMines
:Check set Cont=0 for /f "tokens=1,2 delims=X,Y" %%p in ("%~1") do ( if not defined MX%%pY%%q ( set /a TX=%%p+1 set /a TXX=%%p-1 set /a TY=%%q+1 set /a TYY=%%q-1 if defined MX!TXX!Y!TYY! (set /a Cont+=1) if defined MX%%pY!TYY! (set /a Cont+=1) if defined MX!TX!Y!TYY! (set /a Cont+=1) if defined MX!TXX!Y%%q (set /a Cont+=1) if defined MX!TX!Y%%q (set /a Cont+=1) if defined MX!TXX!Y!TY! (set /a Cont+=1) if defined MX%%pY!TY! (set /a Cont+=1) if defined MX!TX!Y!TY! (set /a Cont+=1) if "!Cont!"=="0" ( set %~1= Set /a Total-=1 Goto :Eof ) set %~1=!Cont! Set /a Total-=1 Goto :Eof ) set %~1= set EOG=True Goto :Eof ) Goto :Eof
:Timer if "%~1"=="Start" ( Set /a IniTime=%time:~-5,2% Set /a Elapsed=%time:~-5,2%-%IniTime% Goto :Eof ) if "%~1"=="Time" ( Set /a Elapsed=%time:~-5,2%-%IniTime% Goto :Eof ) if "%~1"=="Stop" ( Set /a Elapsed=%time:~-4,2%-%IniTime% Set IniTime=0 Goto :Eof ) Goto :Eof
:Lose msg * Has Perdido ! ping -n 4 0.0.0.0 >nul Goto :Menu
:Win Call :Timer "Stop" msg * Felicitaciones, lo lograste en %Elapsed% Segundos ping -n 4 0.0.0.0 >nul Goto :Menu
:Clear cls for /l %%m in (0,1,%LimY%) do (set Lin_%%m=) Goto :Eof
:NoKey cls echo. echo. Cargando... call :keyboard 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 Saludos. =D PD:Solo me hace falta arreglarle el timer !
|
|
|
10
|
Programacin / Scripting / [Batch] Batch Designer - by SmartGenius
|
en: 14 Abril 2009, 22:30 pm
|
Debido a la dificultad para poder utilizar la tecnica de Coordenadas que he usado en los Batch games, me di a la tarea de realizar un herramienta que permitiese "dibujar" de manera facil caracteres en pantalla, y despues portar estos mismos en el formato de coordenadas... Aqui les presento el Batch Designer Una especia de diseador grafico (no como Paint o Photoshop, pero casi ) en el cual podran crear un Dibujo de X por Y y en el cual podran ir moviendose y poner los diferentes "Iconos" con los cuales se representarian Dibujos de Arte ASCII o para disear Niveles de Juegos Batch como el PushBox. @echo off @title Batch Designer - SmartGenius @::Coded by SmartGenius
:Ck if not exist "keyboard.exe" (Goto :NoKey)
:Menu setlocal enabledelayedexpansion cls echo. ͻ echo. Batch Designer echo. ͼ echo. echo. echo. 1. Nuevo Dibujo echo. echo. 2. Ayuda echo. echo. 3. Salir echo. echo. keyboard if "%errorlevel%"=="49" (Goto :Load) if "%errorlevel%"=="50" (Goto :Help) if "%errorlevel%"=="51" (Goto :Exit) Goto :Menu
:Load cls echo. echo. Introduzca las Dimensiones del Dibujo echo. set /p LimX="Ancho > " set /p LimY="Alto > " if not defined LimX Goto :Load if not defined LimY Goto :Load
:Icon Set AsciiIcons= ۺɻȼ Set GameIcons= Set Icons=%AsciiIcons% echo. Tipo de Iconos echo. echo. 1. Iconos ASCII : %AsciiIcons% echo. 2. Iconos Juegos: %GameIcons% echo. keyboard if "%errorlevel%"=="50" (Set Icons=%GameIcons%)
:Init Set Cursor= Set Last= set IniX=0 Set IniY=0 for /l %%i in (0,1,9) do (set Icon%%i=) for /l %%a in (0,1,%LimX%) do ( for /l %%b in (0,1,%LimY%) do ( set X%%aY%%b=)) set X0Y0=%Cursor% set CurPos=X0Y0 Goto :Graphic
:Graphic Call :Clear echo. echo. Tablero de %LimX% por %LimY% Tecla [X] Volver al Menu echo. echo. Presione los Numeros del 0 al 9 para introducir un Icono echo. Presione la tecla Enter para Exportar el Dibujo a Coordenadas echo. set /p var="Iconos: "<nul for /l %%n in (0,1,9) do (set /p var="%%n = !Icons:~%%n,1! "<nul) echo. 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. for /l %%f in (0,1,%LimY%) do (echo. !Lin_%%f!) keyboard if "%errorlevel%"=="77" (call :MovX+ "%CurPos%") if "%errorlevel%"=="75" (call :MovX- "%CurPos%") if "%errorlevel%"=="80" (call :MovY+ "%CurPos%") if "%errorlevel%"=="72" (call :MovY- "%CurPos%") if "%errorlevel%"=="48" (Call :Draw "%CurPos%" 0) if "%errorlevel%"=="49" (Call :Draw "%CurPos%" 1) if "%errorlevel%"=="50" (Call :Draw "%CurPos%" 2) if "%errorlevel%"=="51" (Call :Draw "%CurPos%" 3) if "%errorlevel%"=="52" (Call :Draw "%CurPos%" 4) if "%errorlevel%"=="53" (Call :Draw "%CurPos%" 5) if "%errorlevel%"=="54" (Call :Draw "%CurPos%" 6) if "%errorlevel%"=="55" (Call :Draw "%CurPos%" 7) if "%errorlevel%"=="56" (Call :Draw "%CurPos%" 8) if "%errorlevel%"=="57" (Call :Draw "%CurPos%" 9) if "%errorlevel%"=="88" (Goto :Menu) if "%errorlevel%"=="120" (Goto :Menu) if "%errorlevel%"=="13" (Goto :Export) Goto :Graphic
:MovX+ for /f "tokens=1,2 delims=X,Y" %%p in ("%~1") do ( if "%%p"=="%LimX%" Goto :Eof if !%~1!==%Cursor% set %~1=%Last% set /a MovX=%%p+1 call set Last=%%X!MovX!Y%%q%% set X!MovX!Y%%q=%Cursor% set CurPos=X!MovX!Y%%q ) Goto :Eof
:MovX- for /f "tokens=1,2 delims=X,Y" %%p in ("%~1") do ( if "%%p"=="%IniX%" Goto :Eof if !%~1!==%Cursor% set %~1=%Last% set /a MovX=%%p-1 call set Last=%%X!MovX!Y%%q%% set X!MovX!Y%%q=%Cursor% set CurPos=X!MovX!Y%%q ) Goto :Eof
:MovY+ for /f "tokens=1,2 delims=X,Y" %%p in ("%~1") do ( if "%%q"=="%LimY%" Goto :Eof if !%~1!==%Cursor% set %~1=%Last% set /a MovY=%%q+1 call set Last=%%X%%pY!MovY!%% set X%%pY!MovY!=%Cursor% set CurPos=X%%pY!MovY! ) Goto :Eof
:MovY- for /f "tokens=1,2 delims=X,Y" %%p in ("%~1") do ( if "%%q"=="%IniY%" Goto :Eof if !%~1!==%Cursor% set %~1=%Last% set /a MovY=%%q-1 call set Last=%%X%%pY!MovY!%% set X%%pY!MovY!=%Cursor% set CurPos=X%%pY!MovY! ) Goto :Eof
:Draw Set %~1=!Icons:~%2,1! Goto :Eof
:Export
echo. echo Introduzca un Nombre de Archivo set /p filename=">> " if not defined filename set filename=BD_%random% Call :Template "%filename%" for /l %%a in (0,1,%LimX%) do ( for /l %%b in (0,1,%LimY%) do ( if "!X%%aY%%b!"=="%Icons:~0,1%" set Icon0=!Icon0!,X%%aY%%b if "!X%%aY%%b!"=="%Icons:~1,1%" set Icon1=!Icon1!,X%%aY%%b if "!X%%aY%%b!"=="%Icons:~2,1%" set Icon2=!Icon2!,X%%aY%%b if "!X%%aY%%b!"=="%Icons:~3,1%" set Icon3=!Icon3!,X%%aY%%b if "!X%%aY%%b!"=="%Icons:~4,1%" set Icon4=!Icon4!,X%%aY%%b if "!X%%aY%%b!"=="%Icons:~5,1%" set Icon5=!Icon5!,X%%aY%%b if "!X%%aY%%b!"=="%Icons:~6,1%" set Icon6=!Icon6!,X%%aY%%b if "!X%%aY%%b!"=="%Icons:~7,1%" set Icon7=!Icon7!,X%%aY%%b if "!X%%aY%%b!"=="%Icons:~8,1%" set Icon8=!Icon8!,X%%aY%%b if "!X%%aY%%b!"=="%Icons:~9,1%" set Icon9=!Icon9!,X%%aY%%b )) echo. Coordenadas Generadas for /l %%n in (0,1,9) do ( if Defined Icon%%n ( echo. "!Icons:~%%n,1!" = !Icon%%n:~1! echo for %%%%a in ^(!Icon%%n:~1!^) do ^(Set %%%%a=!Icons:~%%n,1!^) >>%filename%.bat )) endlocal&set filename=%filename% echo.>>%filename%.bat echo :Graphic >>%filename%.bat echo Call :Clear >>%filename%.bat echo echo. >>%filename%.bat echo for /l %%%%d in ^(0,1,%%LimY%%^) do ^( >>%filename%.bat echo for /l %%%%e in ^(0,1,%%LimX%%^) do ^( >>%filename%.bat echo set Lin_%%%%d=!Lin_%%%%d!!X%%%%eY%%%%d!^)^) >>%filename%.bat echo for /l %%%%f in (0,1,%%LimY%%) do (echo. !Lin_%%%%f!) >>%filename%.bat echo echo.>>%filename%.bat echo pause >>%filename%.bat echo exit >>%filename%.bat echo. >>%filename%.bat echo :Clear >>%filename%.bat echo cls >>%filename%.bat echo for /l %%%%m in ^(0,1,%%LimY%%^) do ^(set Lin_%%%%m=^) >>%filename%.bat echo Goto :Eof >>%filename%.bat echo. echo. Archivo "%filename%.bat" Generado Correctamente... echo. pause Goto :Menu
:Template echo @echo off >%~1.bat echo @title %~1 - Batch Designer >>%~1.bat echo ::Created with Batch Designer >>%~1.bat echo ::Coded by SmartGenius >>%~1.bat echo. >>%~1.bat echo setlocal enabledelayedexpansion >>%~1.bat echo. >>%~1.bat echo :Init >>%~1.bat echo Set LimX=%LimX% >>%~1.bat echo Set LimY=%LimY% >>%~1.bat echo for /l %%%%a in ^(0,1,%%LimX%%^) do ^( >>%~1.bat echo for /l %%%%b in ^(0,1,%%LimY%%^) do ^( >>%~1.bat echo set X%%%%aY%%%%b=^)^) >>%~1.bat Goto :Eof
:Clear cls for /l %%m in (0,1,%LimY%) do (set Lin_%%m=) Goto :Eof
:Exit endlocal exit /b
:NoKey cls echo. Cargando... call :keyboard ping -n 2 0.0.0.0 >nul Goto :Ck
: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 En el programa podran moverse libremente e ir modificando el Dibujo, una vez este listo presionan Enter y este sera exportado al formato de Coordenadas XY en un nuevo archivo BAT listo para usar.
Ejemplos: GameDemo Codigo Resultante: @echo off @title Game_Demo - Batch Designer ::Created with Batch Designer ::Coded by SmartGenius setlocal enabledelayedexpansion :Init Set LimX=10 Set LimY=10 for /l %%a in (0,1,%LimX%) do ( for /l %%b in (0,1,%LimY%) do ( set X%%aY%%b=)) for %%a in (X1Y1) do (Set %%a=) for %%a in (X3Y5,X3Y7,X3Y9,X4Y6,X5Y5,X5Y7,X5Y9,X7Y2,X7Y9,X9Y4,X9Y6,X9Y9) do (Set %%a=) for %%a in (X1Y2,X1Y3,X1Y4,X1Y5,X1Y6,X1Y7,X1Y8,X1Y9,X2Y4,X2Y5,X2Y6,X2Y7,X2Y9,X3Y1,X3Y4,X3Y6,X4Y1,X4Y4,X4Y5,X4Y7,X4Y9,X5Y1,X5Y4,X5Y6,X6Y1,X6Y4,X6Y9,X7Y1,X7Y4,X7Y5,X7Y6,X7Y7,X8Y1,X8Y2,X8Y3,X8Y4,X8Y7,X9Y2,X9Y3,X9Y7,X9Y8) do (Set %%a= ) for %%a in (X3Y2,X4Y2,X5Y2) do (Set %%a=) for %%a in (X0Y0,X0Y1,X0Y2,X0Y3,X0Y4,X0Y5,X0Y6,X0Y7,X0Y8,X0Y9,X0Y10,X1Y0,X1Y10,X2Y0,X2Y1,X2Y2,X2Y3,X2Y8,X2Y10,X3Y0,X3Y3,X3Y8,X3Y10,X4Y0,X4Y3,X4Y8,X4Y10,X5Y0,X5Y3,X5Y8,X5Y10,X6Y0,X6Y2,X6Y3,X6Y5,X6Y6,X6Y7,X6Y8,X6Y10,X7Y0,X7Y3,X7Y8,X7Y10,X8Y0,X8Y5,X8Y6,X8Y8,X8Y9,X8Y10,X9Y0,X9Y5,X9Y10,X10Y0,X10Y1,X10Y2,X10Y3,X10Y4,X10Y5,X10Y6,X10Y7,X10Y8,X10Y9,X10Y10) do (Set %%a=) for %%a in (X9Y1) do (Set %%a=)
:Graphic Call :Clear echo. for /l %%d in (0,1,%LimY%) do ( for /l %%e in (0,1,%LimX%) do ( set Lin_%%d=!Lin_%%d!!X%%eY%%d!)) for /l %%f in (0,1,%LimY%) do (echo. !Lin_%%f!) echo. pause exit :Clear cls for /l %%m in (0,1,%LimY%) do (set Lin_%%m=) Goto :Eof
ASCII Codigo Resultante: @echo off @title Scot_Team - Batch Designer ::Created with Batch Designer ::Coded by SmartGenius setlocal enabledelayedexpansion :Init Set LimX=30 Set LimY=8 for /l %%a in (0,1,%LimX%) do ( for /l %%b in (0,1,%LimY%) do ( set X%%aY%%b=)) for %%a in (X1Y0,X1Y1,X1Y2,X1Y3,X1Y4,X2Y0,X2Y4,X3Y0,X3Y4,X4Y0,X4Y1,X4Y2,X4Y3,X4Y4,X5Y0,X5Y4,X6Y0,X6Y2,X6Y4,X7Y0,X7Y1,X7Y2,X7Y3,X7Y4,X8Y0,X8Y4,X8Y5,X8Y6,X8Y7,X8Y8,X9Y0,X9Y4,X9Y6,X9Y7,X9Y8,X10Y0,X10Y1,X10Y2,X10Y3,X10Y4,X10Y8,X11Y0,X11Y2,X11Y3,X11Y4,X11Y6,X11Y7,X11Y8,X12Y0,X12Y4,X12Y5,X12Y6,X12Y7,X12Y8,X13Y0,X13Y2,X13Y3,X13Y4,X13Y8,X14Y0,X14Y1,X14Y2,X14Y3,X14Y4,X14Y8,X15Y4,X15Y5,X15Y6,X15Y7,X15Y8,X16Y4,X16Y8,X17Y4,X17Y7,X17Y8,X18Y4,X18Y8,X19Y4,X19Y5,X19Y6,X19Y7,X19Y8,X20Y4,X20Y8,X21Y4,X21Y6,X21Y7,X21Y8,X22Y4,X22Y6,X22Y7,X22Y8,X23Y4,X23Y8,X24Y4,X24Y5,X24Y6,X24Y7,X24Y8) do (Set %%a=) for %%a in (X5Y2,X8Y2,X9Y2,X10Y6,X10Y7,X12Y2,X12Y3,X13Y5,X13Y6,X13Y7,X16Y5,X16Y6,X16Y7,X18Y5,X18Y6,X18Y7,X20Y5,X20Y6,X20Y7,X21Y5,X22Y5,X23Y5,X23Y6,X23Y7) do (Set %%a=) for %%a in (X2Y3,X3Y1,X6Y1,X6Y3,X9Y5,X10Y5,X11Y1,X11Y5,X12Y1,X13Y1,X14Y5,X14Y6,X14Y7,X17Y5,X17Y6) do (Set %%a=) for %%a in (X2Y1,X5Y1,X8Y1) do (Set %%a=) for %%a in (X3Y2,X9Y1) do (Set %%a=) for %%a in (X2Y2,X5Y3,X8Y3) do (Set %%a=) for %%a in (X3Y3,X9Y3) do (Set %%a=)
:Graphic Call :Clear echo. for /l %%d in (0,1,%LimY%) do ( for /l %%e in (0,1,%LimX%) do ( set Lin_%%d=!Lin_%%d!!X%%eY%%d!)) for /l %%f in (0,1,%LimY%) do (echo. !Lin_%%f!) echo. pause exit :Clear cls for /l %%m in (0,1,%LimY%) do (set Lin_%%m=) Goto :Eof
Espero que les sea de gran utilidad, y que les ayude a entender el tema, ya les traere algo para lo de las animaciones. Saludos.
|
|
|
|
|
|
|