I decided to make a really simple batch file game, yet when it gets to the IF
s, where I try to compare ERRORLEVEL
to a character it simply quits. I even tried comparing it to an ASCII code.
Here is my spaghetti code, (I know I shouldn't use ::
, and I should use rem
instead, but a batch this size wouldn't be affected at all).
@echo off
::Declaracion_Variables
set /a dinero = 0
set /a clasificador
set /a picoa = true
set /a picob = false
::---------------------
:main
echo bienvenido a un juego hecho con archivos con lote
echo porque? tenia ganas
set /p clasificador="dale a algo para empezar"
cls
:Visualizar
echo tienes: %dinero%$
echo dale a g para minar
echo dale a s para ir al shop
choice /c gs
IF ERRORLEVEL == g (
IF "%picoa%" == "true" (
set /a dinero = dinero + 1
goto Visualizar
)
IF "%picob%" == "true" (
set /a dinero = dinero + 2
goto Visualizar
)
)
IF ERRORLEVEL == s (
IF "%picoa%" == "true" (
echo pico * 2 // 200$ // Producto A
echo terminar el juego // 600$ // Producto B
set /p clasificador="porfavor pulse la tecla corespondiente al producto o pulse K para salir"
IF "%clasificador%" == "a"(
IF "%dinero%" GTR 200 (
set /a picoa = false
set /a picob = true
cls
:Visualizar
)
IF "%dinero%" LSS 200 (
echo no tienes bastante dinero
pause
cls
:Visualizar
)
)
IF "%clasificador%" == "b"(
IF "%dinero%" GTR 600 (
cls
echo gracias por haber jugado
pause
exit
:Visualizar
)
IF "%dinero%" LSS 600 (
echo no tienes bastante dinero
pause
cls
:Visualizar
)
)
)
IF "%picob%" == "true" (
echo terminar el juego // 600$
set /p clasificador="porfavor pulse la tecla corespondiente al producto o pulse K para salir"
IF "%clasificador%" == "a"(
IF "%dinero%" GTR 600 (
cls
echo gracias por haber jugado
pause
exit
:Visualizar
)
IF "%dinero%" LSS 600 (
echo no tienes bastante dinero
pause
cls
:Visualizar
)
)
)
)