elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Juego Ahorcado v.1.1 [Bash]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Juego Ahorcado v.1.1 [Bash]  (Leído 8,764 veces)
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Juego Ahorcado v.1.1 [Bash]
« en: 4 Mayo 2009, 06:57 am »

Hola, hoy hice el juego del Ahorcado en Bash:


Solo hice el motor basico, luego dibujo el monito.
Código
  1. #!/usr/bin/bash
  2. # Juego de ahorcado
  3. # Leo Gutierrez R
  4. # leorocko13@hotmail.com
  5.  
  6. # Declarar seguir_o_no
  7. intentos=0
  8. contador=0
  9. function pause()   # Funcion pause, ya que no existe en linux
  10. {
  11. read -p "$*"
  12. }
  13. function limpiar()
  14. {
  15. clear
  16. }
  17. limpiar
  18. echo; echo Ahorcado v1.1, Leo Gutierrez Ramirez.; echo
  19. pause 'Presione una tecla para iniciar'.
  20. declare -a palabra_user[20];
  21. echo;
  22. read -p "Palabra : " palabra_user2                # Se lee la palabra
  23. let longitud=`expr length "$palabra_user2"`-1     # Sacar la longitud de la palabra:
  24. # echo $longitud
  25. for i in $(seq 0 $longitud);
  26. do
  27. palabra_user[$i]=${palabra_user2:$i:1}            # Se mete cada caracter en un subindice, en el array palabra_user[x]
  28. # echo palabra_user[$i] = ${palabra_user[$i]}
  29. done
  30. read -p "Defina el numero de intentos : " intentos       # No. de intentos que puede cometer el usuario.
  31. declare -a palabra_adivinar[$longitud];
  32. for i in $(seq 0 $longitud);
  33. do
  34. palabra_adivinar[$i]=_                            # Se meten guiones en cada subindice de palabra_adivinar[x]
  35. echo ${palabra_adivinar[$i]};
  36. done
  37. limpiar;
  38. # Mostrar guiones :
  39. while test $contador -le $intentos
  40. do
  41. echo;echo;
  42. for i in $(seq 0 $longitud);
  43. do
  44. echo -n "${palabra_adivinar[$i]} ";
  45. done
  46. echo;
  47. echo "Letra :                                                      Intentos: $contador de $intentos"
  48. read letra
  49. echo $palabra_user2 | grep "$letra" > nul 2>&1 || let contador+=1
  50. # Busqueda secuencial :
  51. for i in $(seq 0 $longitud);
  52. do
  53. if [ ${palabra_user[$i]} = "$letra" ];then
  54. palabra_adivinar[$i]=$letra
  55. fi
  56. done
  57. # Mostrar los guiones :
  58. echo;echo;
  59. for i in $(seq 0 $longitud);
  60. do
  61. echo -n "${palabra_adivinar[$i]} ";
  62. done
  63. echo;echo;
  64. limpiar
  65. # Aqui va el IF y el break:
  66. if [ "$contador" -ge "$intentos" ];
  67. then
  68. break
  69. fi
  70. i=0
  71. cadena_final=`while test $i -le $longitud; do echo -n ${palabra_adivinar[$i]}; let i+=1; done`
  72. # echo Cadena final : $cadena_final
  73. if [ "$cadena_final" == "$palabra_user2" ];
  74. then
  75. break;
  76. fi
  77. done
  78. if [ "$cadena_final" == "$palabra_user2" ];
  79. then
  80. echo Felicidades, has ganado.
  81. echo Ahorcado v1.1
  82. echo Leo Gutierrez R.
  83. elif [ "$cadena_final" -ne "$palabra_user2" ];
  84. then
  85. echo Lo siento, has perdido.
  86. echo Ahorcado v1.1
  87. echo Leo Gutierrez R.
  88. fi
  89. exit 0
  90.  

Si alguien me pudiera hacer el favor de decirme como dibujar el monito, se me hace demasiado tedioso hacerlo a mano.

Saludos.


En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
0x0309

Desconectado Desconectado

Mensajes: 215


Ver Perfil
Re: Juego Ahorcado v.1.1 [Bash]
« Respuesta #1 en: 4 Mayo 2009, 18:16 pm »

Está bueno Leo, yo no conozco bash, pero lo del "monito" se me ocurriría hacerlo así:

Que no pidas cuántos intentos hacer, sino que definas una cantidad que no cambie, ejemplo 10.

y que tengas 3 arreglos así:

Código:
parteUno[0]=   O

parteDos[0]=  |
parteDos[1]= -|
parteDos[2]= -|-
parteDos[3]=o-|-
parteDos[4]=o-|-o

parteTres[0]=  /
parteTres[1]=  /\
parteTres[2]= _/\
parteTres[3]= _/\_

y declaras 3 variables:
así:
int indiceParteUno=0;
int indiceParteDos=4;
int indiceParteTres=3;

Entonces haces:
formato java:

/* mostrar el monito completo por primera vez */
 System.out.println(parteUno[indiceParteUno]);
 System.out.println(parteDos[indiceParteDos]);
 System.out.println(parteTres[indiceParteTres]);

/*pregunta por letra */

if (laLetraNoExiste)
{
     if (indiceParteTres >=0)
     {
         --indiceParteTres;
     }
     else if (indiceParteDos >=0)
     {
         --indiceParteDos;
      }
     else if (indiceParteUno >=0)
     {
         --indiceParteUno;
     }

     /* limpiar la pantalla */
    if (indiceParteUno >=0)
    {
        System.out.println(parteUno[indiceParteUno]);
        if (indiceParteDos >=0)
        {
             System.out.println(parteDos[indiceParteDos]);
             if (indiceParteTres >=0)
             {
                 System.out.println(parteTres[indiceParteTres]);
             }
        }
   }
   else
   {
      /* perdió la cabeza, perdió, hacer algo */
   }
}





« Última modificación: 4 Mayo 2009, 19:24 pm por Leo Gutierrez. » En línea

rockernault


Desconectado Desconectado

Mensajes: 2.046


Linux User!!!


Ver Perfil
Re: Juego Ahorcado v.1.1 [Bash]
« Respuesta #2 en: 4 Mayo 2009, 18:22 pm »

como lo corres???
En línea




leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Juego Ahorcado v.1.1 [Bash]
« Respuesta #3 en: 4 Mayo 2009, 19:29 pm »

como lo corres???
Lo guardas con extensión .sh y lo corres:
Código:
bash ahorcado.sh
Gracias por la sugerencia, 0x0309, voy a tenerlo en cuenta, a ver si puedo acabarlo hoy.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
rockernault


Desconectado Desconectado

Mensajes: 2.046


Linux User!!!


Ver Perfil
Re: Juego Ahorcado v.1.1 [Bash]
« Respuesta #4 en: 4 Mayo 2009, 22:21 pm »

Gracias,

 :D
En línea




leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Juego Ahorcado v.1.1 [Bash]
« Respuesta #5 en: 19 Mayo 2009, 08:14 am »

Pongo una nueva versión, más actualizada, ahora si se ve el monito, se ve feo, pero se ve  :P
Código
  1. #!/usr/bin/bash
  2. # Juego de ahorcado
  3. # Leo Gutierrez R
  4. # leorocko13@hotmail.com
  5. intentos=0
  6. contador=0
  7. function cabeza()
  8. {
  9. echo "                                                    ______________"
  10. echo "                                                    |             |"
  11. echo "                                                  |._.|           |"
  12. echo "                                                                  |"
  13. echo "                                                                  |"
  14. echo "                                                                  |"
  15. echo "                                                                  |"
  16. echo "                                                                  |"
  17. echo "                                                                  |"
  18. echo "                                                 |________________|"
  19. }
  20. function torso()
  21. {
  22. echo "                                                    ______________"
  23. echo "                                                    |             |"
  24. echo "                                                  |._.|           |"
  25. echo "                                                    |             |"
  26. echo "                                                    |             |"
  27. echo "                                                                  |"
  28. echo "                                                                  |"
  29. echo "                                                                  |"
  30. echo "                                                                  |"
  31. echo "                                                 |________________|"
  32. }
  33. function torso_brazos()
  34. {
  35. echo "                                                    ______________"
  36. echo "                                                    |             |"
  37. echo "                                                  |._.|           |"
  38. echo "                                                    |             |"
  39. echo "                                                  --|--           |"
  40. echo "                                                                  |"
  41. echo "                                                                  |"
  42. echo "                                                                  |"
  43. echo "                                                                  |"
  44. echo "                                                 |________________|"
  45. }
  46. function piernas()
  47. {
  48. echo "                                                    ______________"
  49. echo "                                                    |             |"
  50. echo "                                                  |._.|           |"
  51. echo "                                                    |             |"
  52. echo "                                                  --|--           |"
  53. echo "                                                  __|__           |"
  54. echo "                                                  |    |          |"
  55. echo "                                                                  |"
  56. echo "                                                                  |"
  57. echo "                                                 |________________|"
  58. }
  59. function completo()
  60. {
  61. echo "                                                    ______________"
  62. echo "                                                    |             |"
  63. echo "                                                 -|._.|-          |"
  64. echo "                                                    |             |"
  65. echo "                                                  --|--           |"
  66. echo "                                                  __|__           |"
  67. echo "                                                 _|    |_         |"
  68. echo "                                                                  |"
  69. echo "                                                                  |"
  70. echo "                                                 |________________|"
  71. }
  72. cabeza
  73. torso
  74. torso_brazos
  75. piernas
  76. completo
  77. function pause()   # Funcion pause, ya que no existe en linux
  78. {
  79. read -p "$*"
  80. }
  81. function limpiar()
  82. {
  83. clear
  84. }
  85. limpiar
  86. echo; echo Ahorcado v1.1, Leo Gutierrez Ramirez.; echo
  87. pause 'Presione una tecla para iniciar'.
  88. declare -a palabra_user[20];
  89. echo;
  90. read -p "Palabra : " palabra_user2                # Se lee la palabra
  91. let longitud=`expr length "$palabra_user2"`-1     # Sacar la longitud de la palabra:
  92. # echo $longitud
  93. for i in $(seq 0 $longitud);
  94. do
  95. palabra_user[$i]=${palabra_user2:$i:1}            # Se mete cada caracter en un subindice, en el array palabra_user[x]
  96. # echo palabra_user[$i] = ${palabra_user[$i]}
  97. done
  98. read -p "Defina el numero de intentos : " intentos       # No. de intentos que puede cometer el usuario.
  99. declare -a palabra_adivinar[$longitud];
  100. for i in $(seq 0 $longitud);
  101. do
  102. palabra_adivinar[$i]=_                            # Se meten guiones en cada subindice de palabra_adivinar[x]
  103. echo ${palabra_adivinar[$i]};
  104. done
  105. limpiar;
  106. # Mostrar guiones :
  107. while test $contador -le $intentos
  108. do
  109. if [ $contador -eq 1 ]
  110. then
  111. cabeza
  112. elif [ $contador -eq 2 ]
  113. then
  114. torso
  115. elif [ $contador -eq 3 ]
  116. then
  117. torso_brazos
  118. elif [ $contador -eq 4 ]
  119. then
  120. piernas
  121. elif [ $contador -ge 5 ]
  122. then
  123. completo
  124. fi
  125. echo;echo;
  126. for i in $(seq 0 $longitud);
  127. do
  128. echo -n "${palabra_adivinar[$i]} ";
  129. done
  130. echo;
  131. echo "Letra :                                                      Intentos: $contador de $intentos"
  132. read letra
  133. echo $palabra_user2 | grep "$letra" > nul 2>&1 || let contador+=1
  134. # Busqueda secuencial :
  135. for i in $(seq 0 $longitud);
  136. do
  137. if [ ${palabra_user[$i]} = "$letra" ];then
  138. palabra_adivinar[$i]=$letra
  139. fi
  140. done
  141. echo;echo;
  142. for i in $(seq 0 $longitud);
  143. do
  144. echo -n "${palabra_adivinar[$i]} ";
  145. done
  146. echo;echo;
  147. limpiar
  148. if [ "$contador" -ge "$intentos" ];
  149. then
  150. break
  151. fi
  152. i=0
  153. cadena_final=`while test $i -le $longitud; do echo -n ${palabra_adivinar[$i]}; let i+=1; done`
  154. if [ "$cadena_final" == "$palabra_user2" ];
  155. then
  156. break;
  157. fi
  158. done
  159. if [ "$cadena_final" == "$palabra_user2" ];
  160. then
  161. echo Felicidades, has ganado.
  162. echo Ahorcado v1.1
  163. echo Leo Gutierrez R.
  164. else
  165. echo Lo siento, has perdido.
  166. echo Ahorcado v1.1
  167. echo Leo Gutierrez R.
  168. fi
  169. exit 0
« Última modificación: 21 Mayo 2009, 17:56 pm por Leo Gutierrez. » En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Darioxhcx


Desconectado Desconectado

Mensajes: 2.294


Ver Perfil
Re: Juego Ahorcado v.1.1 [Bash]
« Respuesta #6 en: 19 Mayo 2009, 18:18 pm »

jajajaaaaaaaa

cuando reinicie lo pruebo
que bueno se ve che :P

un saludo
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Juego del ahorcado C#
.NET (C#, VB.NET, ASP)
treblatp 3 12,930 Último mensaje 3 Febrero 2011, 20:18 pm
por Khronos14
juego sencillo ahorcado
Java
bengy 1 28,080 Último mensaje 26 Octubre 2011, 07:31 am
por s00rk
Juego del Ahorcado
ASM
ziony 1 5,327 Último mensaje 27 Abril 2012, 21:52 pm
por Eternal Idol
Ayuda con el juego el ahorcado
Programación C/C++
Classic77 4 4,110 Último mensaje 7 Diciembre 2012, 15:21 pm
por durasno
Ayuda con juego el ahorcado en lenguaje c
Programación C/C++
KIDRAP1 4 8,301 Último mensaje 27 Junio 2013, 13:24 pm
por satu
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines