[BATCH] Pequeño script para estudiarlo [ACTUALIZADO]

Iniciado por .:Xx4NG3LxX:., 21 Abril 2020, 01:08 AM

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

.:Xx4NG3LxX:.

Saludos,

Este script lo hice hoy, como en 15 o 20 minutos más o menos. Lo hice, con el fin de enseñarle a mi hermanito a sumar y restar :P :P . El resultado salió mejor de lo que esperaba de hecho.

Lo posteo para que los que se inician en Batch, puedan estudiar el código y entender más de esto.

Modificado:


1. Contador de intentos.
2. Registra los puntos e intentos en un .txt.
3. Pide nombre para guardarlo.


Learning.bat
Learning v1.5.bat

Código (Bash) [Seleccionar]

@Echo Off
@Title -= Learning v1.5=- - .:Xx4NG3LxX:.
@Mode 31,25
@Color 1B

::::::::::::::::::::::::::::
:: Programa para fomentar ::
::     el aprendizaje     ::
::        infantil        ::
::::::::::::::::::::::::::::

Set /A "Points=0"
Set /A "Tries=0"

:Label
Cls
Echo+
Set /P "Kid=Nombre >>> "

If Not Defined Kid (Goto :Label)

:Inicio : Inicio del programa...
Cls
Echo+
Echo+ +---------------------------+
Echo+ ^|      Learning v1.5       ^|
Echo+ +---------------------------+
Echo+
Echo+         Menu Principal
Echo+
Echo+      1.    Empezar !
Echo+      2.     Salir

Choice /C:12 /N >NUL

REM IF's ErrorLevel's

If "%ErrorLevel%" Equ "2" (Goto :Eof)

:Begin : Empieza el juego...
Color 1B
If "%Points%" Equ "10" (Goto :Win)
Cls
Call :Nums
Echo+
Echo+ Puntos: %Points%
Echo+
Echo+ Intentos: %Tries%
Echo+ ----------------------
Echo+ Operacion:
Echo+
Echo+ %n1% %Signo% %n2%
Echo+
Set "Ans="
Set /P "Ans=>>> "

If Not Defined Ans (Goto :Begin)

If /I "%Ans%"=="X" (Exit)

If "%Ans%" Equ "%Ope%" (Goto :Ok) Else (Goto :No)

:Nums
Set /A "n1=(%Random% %% 11)"
Set /A "n2=(%Random% %% 11)"
Set /A "NSigno=(%Random% %% 2)"
Set "Signo=+-"

 Call Set "Signo=%%Signo:~%NSigno%,1%%"

 Set /A "Ope=%n1%%Signo%%n2%"

 If "%Ope:~0,1%"=="-" (Call :Nums)
Goto :Eof

:Ok
Color 2F
Echo+
Echo+         Excelente !
Set /A "Points+=1"
Set /A "Tries+=1"
Ping -n 2 LocalHost >Nul
Goto :Begin

:No
Color 4e
Echo+
Echo+         Lo siento :(
Set /A "Points-=1"
Set /A "Tries+=1"
Ping -n 2 LocalHost >Nul
Goto :Begin

:Win
Cls
Color 2F
Echo+
Echo+     Has Ganado el Juego !
Echo+         Felicidades
Pause>Nul

(
Echo %Kid%
Echo+
Echo Puntos: %Points%
Echo Intentos: %Tries%
Echo+
Echo+
)>>%Kid%_Wins.txt

Exit


Edito: Mejor? ><
"Quizá Batch no sea un lenguaje de programación, pero no obstante deja de ser útil. Asi que no anden diciendo «Que ganas de perder el tiempo»"



danihopera

Excelente. Me lo guardo para cacharrear. Muchas gracias.  ;-)

.:Xx4NG3LxX:.

Cita de: danihopera en 21 Abril 2020, 18:40 PM
Excelente. Me lo guardo para cacharrear. Muchas gracias.  ;-)

Jaja, no hay de qué.... Aun así como está, es mejorable...
"Quizá Batch no sea un lenguaje de programación, pero no obstante deja de ser útil. Asi que no anden diciendo «Que ganas de perder el tiempo»"



@XSStringManolo

Si quitas las etiquetas quote del código y en las etiquetas code le pones =DOS se ve mucho mejor. Yo personalmente le pondría =Bash que es como mejor se ve. Así si alguien quiere comentarte algo del código puede usar los números como guía.


code=DOS
Código (DOS) [Seleccionar]

@Echo Off
@Title -= Learning v1.5=- - .:Xx4NG3LxX:.
@Mode 31,25
@Color 1B

::::::::::::::::::::::::::::
:: Programa para fomentar ::
:: el aprendizaje ::
:: infantil ::
::::::::::::::::::::::::::::

Set /A "Points=0"
Set /A "Tries=0"

:Label
Cls
Echo+
Set /P "Kid=Nombre >>> "

If Not Defined Kid (Goto :Label)

:Inicio : Inicio del programa...
Cls



code=Bash
Código (Bash) [Seleccionar]
Echo+
Echo+ +---------------------------+
Echo+ ^| Learning v1.5 ^|
Echo+ +---------------------------+
Echo+
Echo+ Menu Principal
Echo+
Echo+ 1. Empezar !
Echo+ 2. Salir

Choice /C:12 /N >NUL

REM IF's ErrorLevel's

If "%ErrorLevel%" Equ "2" (Goto :Eof)

:Begin : Empieza el juego...
Color 1B