[Batch Game] The Labyrinth - usando COLOUS

Iniciado por SmartGenius, 1 Agosto 2010, 00:58 AM

0 Miembros y 1 Visitante están viendo este tema.

SmartGenius

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 :P


Código (dos) [Seleccionar]
@Echo off
@title The Labyrinth - SmartGenius
Mode con cols=45 lines=16
Setlocal enabledelayedexpansion

:: 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"
Set "Bound=[8]$219"
Set "Space=[0] "
Set "Player=$001"
Set "Point=[5]$207"
Set "Exit=[10]$176"

:Game_Init
For /l %%a in (%IniX%,1,%LimX%) do (
For /l %%b in (%IniY%,1,%LimY%) do (
Set X%%aY%%b=%Space%))
Call :Game_Level
Call :Display
Set "X14Y4=%Player%"
Set Curpos=X14Y4
Call :Color "%Player%" "12 0"
Goto :Game_Move

:Display
For /l %%d in (%IniX%,1,%LimY%) do (
Set Lin_%%d=
For /l %%e in (%IniX%,1,%LimX%) do Set Lin_%%d=!Lin_%%d!!X%%eY%%d!)
For /l %%f in (%IniY%,1,%LimY%) do (Colous Writesec "!Lin_%%f!")
Goto :Eof

: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)
Goto :Game_Move

:Mov
For /f "tokens=1,2 delims=X,Y" %%p in ("%CurPos%") do (Set "MovX=%%p"&Set "MovY=%%q")
if "!Mov%~1!"=="!Lim%~1!" Goto :Eof
Set /a Mov%~1%~2=1
Set "NMovY=!X%MovX%Y%MovY%!"
If Defined S_X%MovX%Y%MovY% (Set "S_X%MovX%Y%MovY%="&Set /a Points+=10)
If "!NMovY!"=="%Bound%" (Goto :Eof)
If "!NMovY!"=="%Exit%" (Goto :Win)
If "!NMovY!"=="%Point%" (Set /a Points+=5)
Set "X%MovX%Y%MovY%=%Player%"
Set "%CurPos%=%Space%"
Call :Color "A" "0 0"
Set "CurPos=X%MovX%Y%MovY%"
Call :Color "%Player%" "12 0"
Goto :Eof

: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
Goto :Eof

:Win
Cls
Echo.
Echo.
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
Echo.
Echo. Press any key...
Pause>nul
Goto :Eof

:Game_Level
For %%a in (X7Y10,X8Y6,X9Y2,X9Y6,X9Y14,X10Y14,X13Y8,X18Y6,X18Y10,X18Y12,X20Y12,X23Y9,X27Y7,X29Y2,X38Y10,X41Y6,X43Y14) do (
Set "%%a=%Point%")
For %%a in (
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
) do (Set "%%a=%Bound%")
For %%a in (X2Y2,X2Y7,X2Y9,X16Y12,X18Y8,X20Y2,X20Y9,X25Y6,X26Y2,X36Y10,X40Y4,X41Y10) do (Set S_%%a=%Point%)
For %%a in (X20Y14) do (Set "%%a=%Exit%")
Goto :Eof



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. :D


DA KILLER

Estaría bueno que dejases el link al comando ese smart, luego lo pruebo  :laugh: :laugh: ;-)
.: DA KILLER :.



Novlucker

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

FerJGS

El juego sin duda promete pero...hay un pequeño fallo: NO ME FUNCIONA. ¿alguien sabe por qué es? me sale una carita roja sonriente y el _ de comando pero sin dejarme escribir anda. Tengo Windows XP, he visto que el tuyo es vista, = es por eso...