Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: .:Xx4NG3LxX:. en 21 Abril 2020, 01:08 am



Título: [BATCH] Pequeño script para estudiarlo [ACTUALIZADO]
Publicado por: .:Xx4NG3LxX:. en 21 Abril 2020, 01:08 am
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
  1. @Echo Off
  2. @Title -= Learning v1.5=- - .:Xx4NG3LxX:.
  3. @Mode 31,25
  4. @Color 1B
  5.  
  6. ::::::::::::::::::::::::::::
  7. :: Programa para fomentar ::
  8. ::     el aprendizaje     ::
  9. ::        infantil        ::
  10. ::::::::::::::::::::::::::::
  11.  
  12. Set /A "Points=0"
  13. Set /A "Tries=0"
  14.  
  15. :Label
  16. Cls
  17. Echo+
  18. Set /P "Kid=Nombre >>> "
  19.  
  20. If Not Defined Kid (Goto :Label)
  21.  
  22. :Inicio : Inicio del programa...
  23. Cls
  24. Echo+
  25. Echo+ +---------------------------+
  26. Echo+ ^|      Learning v1.5       ^|
  27. Echo+ +---------------------------+
  28. Echo+
  29. Echo+         Menu Principal
  30. Echo+
  31. Echo+      1.    Empezar !
  32. Echo+      2.     Salir
  33.  
  34. Choice /C:12 /N >NUL
  35.  
  36. REM IF's ErrorLevel's
  37.  
  38. If "%ErrorLevel%" Equ "2" (Goto :Eof)
  39.  
  40. :Begin : Empieza el juego...
  41. Color 1B
  42. If "%Points%" Equ "10" (Goto :Win)
  43. Cls
  44. Call :Nums
  45. Echo+
  46. Echo+ Puntos: %Points%
  47. Echo+
  48. Echo+ Intentos: %Tries%
  49. Echo+ ----------------------
  50. Echo+ Operacion:
  51. Echo+
  52. Echo+ %n1% %Signo% %n2%
  53. Echo+
  54. Set "Ans="
  55. Set /P "Ans=>>> "
  56.  
  57. If Not Defined Ans (Goto :Begin)
  58.  
  59. If /I "%Ans%"=="X" (Exit)
  60.  
  61. If "%Ans%" Equ "%Ope%" (Goto :Ok) Else (Goto :No)
  62.  
  63. :Nums
  64. Set /A "n1=(%Random% %% 11)"
  65. Set /A "n2=(%Random% %% 11)"
  66. Set /A "NSigno=(%Random% %% 2)"
  67. Set "Signo=+-"
  68.  
  69.  Call Set "Signo=%%Signo:~%NSigno%,1%%"
  70.  
  71.  Set /A "Ope=%n1%%Signo%%n2%"
  72.  
  73.  If "%Ope:~0,1%"=="-" (Call :Nums)
  74. Goto :Eof
  75.  
  76. :Ok
  77. Color 2F
  78. Echo+
  79. Echo+         Excelente !
  80. Set /A "Points+=1"
  81. Set /A "Tries+=1"
  82. Ping -n 2 LocalHost >Nul
  83. Goto :Begin
  84.  
  85. :No
  86. Color 4e
  87. Echo+
  88. Echo+         Lo siento :(
  89. Set /A "Points-=1"
  90. Set /A "Tries+=1"
  91. Ping -n 2 LocalHost >Nul
  92. Goto :Begin
  93.  
  94. :Win
  95. Cls
  96. Color 2F
  97. Echo+
  98. Echo+     Has Ganado el Juego !
  99. Echo+         Felicidades
  100. Pause>Nul
  101.  
  102. (
  103. Echo %Kid%
  104. Echo+
  105. Echo Puntos: %Points%
  106. Echo Intentos: %Tries%
  107. Echo+
  108. Echo+
  109. )>>%Kid%_Wins.txt
  110.  
  111. Exit

Edito: Mejor? ><


Título: Re: [BATCH] Pequeño script para estudiarlo [ACTUALIZADO]
Publicado por: danihopera en 21 Abril 2020, 18:40 pm
Excelente. Me lo guardo para cacharrear. Muchas gracias.  ;-)


Título: Re: [BATCH] Pequeño script para estudiarlo [ACTUALIZADO]
Publicado por: .:Xx4NG3LxX:. en 21 Abril 2020, 19:14 pm
Excelente. Me lo guardo para cacharrear. Muchas gracias.  ;-)

Jaja, no hay de qué.... Aun así como está, es mejorable...


Título: Re: [BATCH] Pequeño script para estudiarlo [ACTUALIZADO]
Publicado por: @XSStringManolo en 22 Abril 2020, 01:47 am
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
  1. @Echo Off
  2. @Title -= Learning v1.5=- - .:Xx4NG3LxX:.
  3. @Mode 31,25
  4. @Color 1B
  5.  
  6. ::::::::::::::::::::::::::::
  7. :: Programa para fomentar ::
  8. :: el aprendizaje ::
  9. :: infantil ::
  10. ::::::::::::::::::::::::::::
  11.  
  12. Set /A "Points=0"
  13. Set /A "Tries=0"
  14.  
  15. :Label
  16. Cls
  17. Set /P "Kid=Nombre >>> "
  18.  
  19. If Not Defined Kid (Goto :Label)
  20.  
  21. :Inicio : Inicio del programa...
  22. Cls


code=Bash
Código
  1. Echo+
  2. Echo+ +---------------------------+
  3. Echo+ ^| Learning v1.5 ^|
  4. Echo+ +---------------------------+
  5. Echo+
  6. Echo+ Menu Principal
  7. Echo+
  8. Echo+ 1. Empezar !
  9. Echo+ 2. Salir
  10.  
  11. Choice /C:12 /N >NUL
  12.  
  13. REM IF's ErrorLevel's
  14.  
  15. If "%ErrorLevel%" Equ "2" (Goto :Eof)
  16.  
  17. :Begin : Empieza el juego...
  18. Color 1B