CMD

CMD
Las publicaciones en este blog estan exclusivamente redactadas por los autores, excepto citas. Todos los codigos aqui indicados han sido previamente probados

viernes, 21 de noviembre de 2014

Tutorial 1.2 - Juego de preguntas

Buenas! En este post les traemos la segunda parte del tutorial sobre como hacer un juego. En esta parte veremos como comenzar, utilizando el comando "choice" mencionado aqui. Para la segunda parte del juego, utilizaremos el comando "set /p". Esto quiere decir que en los primeros diez niveles el jugador elegirá una opción de una lista, y en los cinco niveles restantes (mas difíciles) el jugador deberá escribir la respuesta. Igualmente, se pueden hacer mas o menos niveles. Comenzaremos con las preguntas. Las palabras pintadas en rojo son las que se pueden cambiar, las demas las dejamos tal como estan.
Aclaración: este codigo va debajo del que esta en el tutorial anterior, solo que debemos borrar el ultimo "pause" y "exit"
En este codigo tambien se utilizan labels (:preg1, etc...), que definen una serie de codigos, y el comando "goto", que nos permite "ir de label a label".

:start
set respuestascorrectas=0
set vidas=10
set nivel=1
:preg1
echo Respuestas correctas: %respuestascorrectas%
echo Vidas: %vidas%
echo Nivel %nivel%
echo Pregunta
echo. Las opciones son
echo. 1)opcion1
echo. 2)opcion2
echo. 3)opcion3
echo. 4)opcion4
choice /C 1234 /N
if %errorlevel%==1 goto bien
if %errorlevel%==2 goto mal
if %errorlevel%==3 goto mal
if %errorlevel%==4 goto mal
:bien
cls
set /a nivel=%nivel%+1
set /a respuestascorrectas=%respuestascorrectas%+1
if %nivel%==1 goto preg2
if %nivel%==2 goto preg3
if %nivel%==3 goto preg4
if %nivel%==4 goto preg5
if %nivel%==5 goto preg6
if %nivel%==6 goto preg7
if %nivel%==7 goto preg8
if %nivel%==8 goto preg9
if %nivel%==9 goto preg10
if %nivel%==10 goto setppart
:mal
cls
if %vidas%==1 goto perdiste
set /a vidas=%vidas%-1
if %nivel%==1 goto preg1
if %nivel%==2 goto preg2
if %nivel%==3 goto preg3
if %nivel%==4 goto preg4
if %nivel%==5 goto preg5
if %nivel%==6 goto preg6
if %nivel%==7 goto preg7
if %nivel%==8 goto preg8
if %nivel%==9 goto preg9
if %nivel%==10 goto preg10
:preg2
echo Respuestas correctas: %respuestascorrectas%
echo Vidas: %vidas%
echo Nivel %nivel%
echo Pregunta
echo. Las opciones son
echo. 1)opcion1
echo. 2)opcion2
echo. 3)opcion3
echo. 4)opcion4
choice /C 1234 /N
if %errorlevel%==1 goto bien
if %errorlevel%==2 goto mal
if %errorlevel%==3 goto mal
if %errorlevel%==4 goto mal
:preg3
echo Respuestas correctas: %respuestascorrectas%
echo Vidas: %vidas%
echo Nivel %nivel%
echo Pregunta
echo. Las opciones son
echo. 1)opcion1
echo. 2)opcion2
echo. 3)opcion3
echo. 4)opcion4
choice /C 1234 /N
if %errorlevel%==1 goto bien
if %errorlevel%==2 goto mal
if %errorlevel%==3 goto mal
if %errorlevel%==4 goto mal
:preg4
echo Respuestas correctas: %respuestascorrectas%
echo Vidas: %vidas%
echo Nivel %nivel%
echo Pregunta
echo. Las opciones son
echo. 1)opcion1
echo. 2)opcion2
echo. 3)opcion3
echo. 4)opcion4
choice /C 1234 /N
if %errorlevel%==1 goto bien
if %errorlevel%==2 goto mal
if %errorlevel%==3 goto mal
if %errorlevel%==4 goto mal
:preg5
echo Respuestas correctas: %respuestascorrectas%
echo Vidas: %vidas%
echo Nivel %nivel%
echo Pregunta
echo. Las opciones son
echo. 1)opcion1
echo. 2)opcion2
echo. 3)opcion3
echo. 4)opcion4
choice /C 1234 /N
if %errorlevel%==1 goto bien
if %errorlevel%==2 goto mal
if %errorlevel%==3 goto mal
if %errorlevel%==4 goto mal
:preg6
echo Respuestas correctas: %respuestascorrectas%
echo Vidas: %vidas%
echo Nivel %nivel%
echo Pregunta
echo. Las opciones son
echo. 1)opcion1
echo. 2)opcion2
echo. 3)opcion3
echo. 4)opcion4
choice /C 1234 /N
if %errorlevel%==1 goto bien
if %errorlevel%==2 goto mal
if %errorlevel%==3 goto mal
if %errorlevel%==4 goto mal
:preg7
echo Respuestas correctas: %respuestascorrectas%
echo Vidas: %vidas%
echo Nivel %nivel%
echo Pregunta
echo. Las opciones son
echo. 1)opcion1
echo. 2)opcion2
echo. 3)opcion3
echo. 4)opcion4
choice /C 1234 /N
if %errorlevel%==1 goto bien
if %errorlevel%==2 goto mal
if %errorlevel%==3 goto mal
if %errorlevel%==4 goto mal
:preg8
echo Respuestas correctas: %respuestascorrectas%
echo Vidas: %vidas%
echo Nivel %nivel%
echo Pregunta
echo. Las opciones son
echo. 1)opcion1
echo. 2)opcion2
echo. 3)opcion3
echo. 4)opcion4
choice /C 1234 /N
if %errorlevel%==1 goto bien
if %errorlevel%==2 goto mal
if %errorlevel%==3 goto mal
if %errorlevel%==4 goto mal
:preg9
echo Respuestas correctas: %respuestascorrectas%
echo Vidas: %vidas%
echo Nivel %nivel%
echo Pregunta
echo. Las opciones son
echo. 1)opcion1
echo. 2)opcion2
echo. 3)opcion3
echo. 4)opcion4
choice /C 1234 /N
if %errorlevel%==1 goto bien
if %errorlevel%==2 goto mal
if %errorlevel%==3 goto mal
if %errorlevel%==4 goto mal
:preg10
echo Respuestas correctas: %respuestascorrectas%
echo Vidas: %vidas%
echo Nivel %nivel%
echo Pregunta
echo. Las opciones son
echo. 1)opcion1
echo. 2)opcion2
echo. 3)opcion3
echo. 4)opcion4
choice /C 1234 /N
if %errorlevel%==1 goto bien
if %errorlevel%==2 goto mal
if %errorlevel%==3 goto mal
if %errorlevel%==4 goto mal
:perdiste
cls
echo Perdiste en el nivel %nivel%
echo Presione una tecla para volver al menu
pause > nul
cls
goto start
:setppart
echo. En el tutorial 1.3 se explicara esta parte
echo. Presione una tecla para salir
pause > nul
exit
Este código parece muy largo y complejo, pero de complejo no tiene nada. Esta compuesto por varios labels iguales a los que se les cambian el texto y respuestas correctas, y representan cada uno un nivel. Los otros labels son para pasar de nivel y sumar o restar vidas/niveles
Aclaración: En este codigo, todas las respuestas correctas son la numero 1, pero esto se puede cambiar modificando la parte que dice
"if %errorlevel%==1 goto bien
if %errorlevel%==2 goto mal
if %errorlevel%==3 goto mal
if %errorlevel%==4 goto mal"
intercambiando de renglones el "goto bien" y "goto mal", como por ejemplo
"if %errorlevel%==1 goto mal
if %errorlevel%==2 goto mal
if %errorlevel%==3 goto bien
if %errorlevel%==4 goto mal"
En este codigo, la respuesta correcta es la 3. Para que una o mas respuestas sean correctas, lo que se debe hacer es decirle al programa que vaya a bien al ingresar ese numero. Ejemplo de dos respuestas correctas:
"if %errorlevel%==1 goto bien
if %errorlevel%==2 goto mal
if %errorlevel%==3 goto bien
if %errorlevel%==4 goto mal" 
en el renglon que dice "if %errorlevel%=numerodepreguntacorrecta se debe poner goto bien (despues de este codigo) y si la respuesta es incorrecta, el codigo funciona a la inversa.
Lo que hace el label "bien" en este código es ir al nivel siguiente y sumar una respuesta correcta. Lo que hace el "mal" es restar una vida
En el siguiente tutorial explicaremos cómo crear la parte más difícil, la del set/p, en la que el jugador debe escribir su respuesta. Más adelante todavía explicaremos como crear usuarios y guardar los puntajes. Cualquier cosa comenten.
El codigo de este post fue actualizado. En caso de tenerlo desde antes del 21/11 17:00 (hora de argentina), borrarlo y copiarlo nuevamente

No hay comentarios:

Publicar un comentario