Minijueguito en Batch [Maze Madness]

Iniciado por Dharok, Febrero 24, 2010, 12:31:29 AM

Tema anterior - Siguiente tema

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

Febrero 24, 2010, 12:31:29 AM Ultima modificación: Febrero 22, 2015, 09:20:55 PM por Expermicid
Bueno es un juego simple de Batch, el objetivo es hacer que la bola llegue a la X usando el teclado
Es sencillito pero entretenido por un ratico XD en fin a mi me gusto..No te caigas ;D
aqui esta el Code
Código: php
@echo off
@title Maze Madness
@mode con cols=22 lines=20
::Batch Game Maze Madness
::by Splendit
::Based On SmartGenius Batch Game Logics

setlocal enabledelayedexpansion
If Not Exist Keyboard.exe (Call :Keyboard)

:Vars
Set LimX=16
Set LimY=16
Set IniX=0
Set IniY=0
Set MovX=0
Set MovY=0
Set "Bound=Û"
Set "Space= "
Set "Player=O"
Set "Limit=°"
Set "Exit=X"

:Init
For /l %%a in (%IniX%,1,%LimX%) do (
For /l %%b in (%IniY%,1,%LimY%) do (
Set X%%aY%%b=%Limit%))
Call :Nivel_1
Set "X4Y6=%Player%"
Set Curpos=X4Y6
Goto :Graphic

:Graphic
Call :Clear
For /l %%d in (%IniX%,1,%LimY%) do (
For /l %%e in (%IniX%,1,%LimX%) do (
Set Lin_%%d=!Lin_%%d!!X%%eY%%d!))
Echo.
Echo.
For /l %%f in (0,1,%LimY%) do (echo.  !Lin_%%f!)
Echo.
If Defined MovL (
Ping -n 1 localhost >nul
Call :%MovL% "%CurPos%"
Goto :Graphic
) else (
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%"=="88" (pause&exit)
If "%errorlevel%"=="120" (pause&exit)
Goto :Graphic

:MovY
For /f "tokens=1,2 delims=X,Y" %%p in ("%~2") do (
if "%%q"=="%LimY%" Goto :Eof
Set /a MovY=%%q%~11
Call Set NMovY=%%X%%pY!MovY!%%
If "!NMovY!"=="%Bound%" (Set "MovL="&Goto :Eof)
If "!NMovY!"=="%Exit%" (Goto :Win)
If "!NMovY!"=="%Limit%" (Goto :Lose)
Set X%%pY!MovY!=%Player%
Set CurPos=X%%pY!MovY!
Set MovL=MovY "%~1"
Set "%~2=%Space%")
Goto :Eof

:MovX
For /f "tokens=1,2 delims=X,Y" %%p in ("%~2") do (
If "%%p"=="%LimX%" Goto :Eof
Set /a MovX=%%p%~11
Call Set NMovX=%%X!MovX!Y%%q%%
If "!NMovX!"=="%Bound%" (Set "MovL="&Goto :Eof)
If "!NMovX!"=="%Exit%" (Goto :Win)
If "!NMovX!"=="%Limit%" (Goto :Lose)
Set "X!MovX!Y%%q=%Player%"
Set "CurPos=X!MovX!Y%%q"
Set MovL=MovX "%~1"
Set "%~2=%Space%")
Goto :Eof

:Clear
for /l %%m in (0,1,%LimY%) do (set Lin_%%m=)
Goto :Eof

:Win
Cls
Echo.
Echo.   Felicitaciones
Echo.
Echo.    Completaste
Echo.     El Nivel
Echo.
Echo.
Pause >nul
Exit

:Lose
Cls
Echo.
Echo.    Has Perdido
Echo.
Echo.  Intenta de Nuevo
Echo.
Echo.
Set "MovL="
Pause >nul
Goto :Vars

:Nivel_1
For %%a in (X1Y1,X1Y2,X1Y4,X1Y7,X1Y8,X1Y11,X2Y1,X2Y14,X2Y15,X3Y1,X3Y3,X3Y5,X3Y10,X3Y12,X4Y1,X4Y7,X5Y9,X5Y10,X5Y11,X6Y5,X6Y9,X6Y11,X6Y15,X7Y1,X7Y5,X7Y11,X7Y15,X8Y3,X8Y11,X8Y15,X9Y3,X9Y7,X9Y11,X9Y15,X10Y11,X10Y15,X11Y5,X11Y10,X11Y11,X11Y15,X12Y1,X12Y2,X12Y8,X12Y13,X13Y3,X13Y6,X13Y7,X13Y8,X13Y9,X13Y13,X14Y1,X14Y15,X15Y3,X15Y4,X15Y7,X15Y11,X15Y12,X15Y14,X15Y15) do (Set %%a=%Bound%)
For %%a in (X1Y3,X1Y5,X1Y6,X1Y9,X1Y10,X1Y12,X1Y13,X1Y14,X1Y15,X2Y2,X2Y3,X2Y4,X2Y5,X2Y6,X2Y7,X2Y8,X2Y9,X2Y10,X2Y11,X2Y12,X2Y13,X3Y2,X3Y4,X3Y6,X3Y7,X3Y8,X3Y9,X3Y11,X3Y13,X3Y14,X3Y15,X4Y2,X4Y3,X4Y4,X4Y5,X4Y8,X4Y9,X4Y10,X4Y11,X4Y12,X4Y13,X4Y14,X4Y15,X5Y1,X5Y2,X5Y3,X5Y4,X5Y5,X5Y6,X5Y7,X5Y8,X5Y12,X5Y13,X5Y14,X5Y15,X6Y1,X6Y2,X6Y3,X6Y4,X6Y6,X6Y7,X6Y8,X6Y10,X6Y12,X6Y13,X6Y14,X7Y2,X7Y3,X7Y4,X7Y6,X7Y8,X7Y9,X7Y10,X7Y12,X7Y13,X7Y14,X8Y1,X8Y2,X8Y4,X8Y5,X8Y6,X8Y7,X8Y8,X8Y9,X8Y10,X8Y12,X8Y13,X8Y14,X9Y1,X9Y2,X9Y4,X9Y5,X9Y6,X9Y8,X9Y9,X9Y10,X9Y12,X9Y13,X9Y14,X10Y1,X10Y2,X10Y3,X10Y4,X10Y5,X10Y6,X10Y7,X10Y8,X10Y9,X10Y10,X10Y12,X10Y13,X10Y14,X11Y1,X11Y2,X11Y3,X11Y4,X11Y6,X11Y7,X11Y8,X11Y9,X11Y12,X11Y13,X11Y14,X12Y3,X12Y4,X12Y5,X12Y6,X12Y7,X12Y9,X12Y10,X12Y11,X12Y12,X12Y14,X12Y15,X13Y1,X13Y2,X13Y4,X13Y5,X13Y10,X13Y11,X13Y12,X13Y14,X13Y15,X14Y2,X14Y3,X14Y4,X14Y5,X14Y6,X14Y7,X14Y8,X14Y9,X14Y10,X14Y11,X14Y12,X14Y13,X14Y14,X15Y1,X15Y2,X15Y5,X15Y6,X15Y8,X15Y9,X15Y10,X15Y13) do (Set %%a=%Space%)
Set "X7Y7=%Exit%"
Goto :Eof

:Keyboard
Echo. Cargando...
(
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

Autor:Splendit
Saludos!
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta