Autor
|
Tema: Juego Ahorcado v.1.1 [Bash] (Leído 8,764 veces)
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
Hola, hoy hice el juego del Ahorcado en Bash: Solo hice el motor basico, luego dibujo el monito. #!/usr/bin/bash # Juego de ahorcado # Leo Gutierrez R # leorocko13@hotmail.com # Declarar seguir_o_no intentos=0 contador=0 function pause() # Funcion pause, ya que no existe en linux { read -p "$*" } function limpiar() { clear } limpiar echo; echo Ahorcado v1.1, Leo Gutierrez Ramirez.; echo pause 'Presione una tecla para iniciar'. declare -a palabra_user[20]; echo; read -p "Palabra : " palabra_user2 # Se lee la palabra let longitud=`expr length "$palabra_user2"`-1 # Sacar la longitud de la palabra: # echo $longitud for i in $(seq 0 $longitud); do palabra_user[$i]=${palabra_user2:$i:1} # Se mete cada caracter en un subindice, en el array palabra_user[x] # echo palabra_user[$i] = ${palabra_user[$i]} done read -p "Defina el numero de intentos : " intentos # No. de intentos que puede cometer el usuario. declare -a palabra_adivinar[$longitud]; for i in $(seq 0 $longitud); do palabra_adivinar[$i]=_ # Se meten guiones en cada subindice de palabra_adivinar[x] echo ${palabra_adivinar[$i]}; done limpiar; # Mostrar guiones : while test $contador -le $intentos do echo;echo; for i in $(seq 0 $longitud); do echo -n "${palabra_adivinar[$i]} "; done echo; echo "Letra : Intentos: $contador de $intentos" read letra echo $palabra_user2 | grep "$letra" > nul 2>&1 || let contador+=1 # Busqueda secuencial : for i in $(seq 0 $longitud); do if [ ${palabra_user[$i]} = "$letra" ];then palabra_adivinar[$i]=$letra fi done # Mostrar los guiones : echo;echo; for i in $(seq 0 $longitud); do echo -n "${palabra_adivinar[$i]} "; done echo;echo; limpiar # Aqui va el IF y el break: if [ "$contador" -ge "$intentos" ]; then break fi i=0 cadena_final=`while test $i -le $longitud; do echo -n ${palabra_adivinar[$i]}; let i+=1; done` # echo Cadena final : $cadena_final if [ "$cadena_final" == "$palabra_user2" ]; then break; fi done if [ "$cadena_final" == "$palabra_user2" ]; then echo Felicidades, has ganado. echo Ahorcado v1.1 echo Leo Gutierrez R. elif [ "$cadena_final" -ne "$palabra_user2" ]; then echo Lo siento, has perdido. echo Ahorcado v1.1 echo Leo Gutierrez R. fi exit 0
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
|
|
|
|
0x0309
Desconectado
Mensajes: 215
|
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í: 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
Mensajes: 2.046
Linux User!!!
|
como lo corres???
|
|
|
En línea
|
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
como lo corres???
Lo guardas con extensión .sh y lo corres: Gracias por la sugerencia, 0x0309, voy a tenerlo en cuenta, a ver si puedo acabarlo hoy.
|
|
|
En línea
|
|
|
|
rockernault
Desconectado
Mensajes: 2.046
Linux User!!!
|
Gracias,
|
|
|
En línea
|
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
Pongo una nueva versión, más actualizada, ahora si se ve el monito, se ve feo, pero se ve #!/usr/bin/bash # Juego de ahorcado # Leo Gutierrez R # leorocko13@hotmail.com intentos=0 contador=0 function cabeza() { echo " ______________" echo " | |" echo " |._.| |" echo " |" echo " |" echo " |" echo " |" echo " |" echo " |" echo " |________________|" } function torso() { echo " ______________" echo " | |" echo " |._.| |" echo " | |" echo " | |" echo " |" echo " |" echo " |" echo " |" echo " |________________|" } function torso_brazos() { echo " ______________" echo " | |" echo " |._.| |" echo " | |" echo " --|-- |" echo " |" echo " |" echo " |" echo " |" echo " |________________|" } function piernas() { echo " ______________" echo " | |" echo " |._.| |" echo " | |" echo " --|-- |" echo " __|__ |" echo " | | |" echo " |" echo " |" echo " |________________|" } function completo() { echo " ______________" echo " | |" echo " -|._.|- |" echo " | |" echo " --|-- |" echo " __|__ |" echo " _| |_ |" echo " |" echo " |" echo " |________________|" } cabeza torso torso_brazos piernas completo function pause() # Funcion pause, ya que no existe en linux { read -p "$*" } function limpiar() { clear } limpiar echo; echo Ahorcado v1.1, Leo Gutierrez Ramirez.; echo pause 'Presione una tecla para iniciar'. declare -a palabra_user[20]; echo; read -p "Palabra : " palabra_user2 # Se lee la palabra let longitud=`expr length "$palabra_user2"`-1 # Sacar la longitud de la palabra: # echo $longitud for i in $(seq 0 $longitud); do palabra_user[$i]=${palabra_user2:$i:1} # Se mete cada caracter en un subindice, en el array palabra_user[x] # echo palabra_user[$i] = ${palabra_user[$i]} done read -p "Defina el numero de intentos : " intentos # No. de intentos que puede cometer el usuario. declare -a palabra_adivinar[$longitud]; for i in $(seq 0 $longitud); do palabra_adivinar[$i]=_ # Se meten guiones en cada subindice de palabra_adivinar[x] echo ${palabra_adivinar[$i]}; done limpiar; # Mostrar guiones : while test $contador -le $intentos do if [ $contador -eq 1 ] then cabeza elif [ $contador -eq 2 ] then torso elif [ $contador -eq 3 ] then torso_brazos elif [ $contador -eq 4 ] then piernas elif [ $contador -ge 5 ] then completo fi echo;echo; for i in $(seq 0 $longitud); do echo -n "${palabra_adivinar[$i]} "; done echo; echo "Letra : Intentos: $contador de $intentos" read letra echo $palabra_user2 | grep "$letra" > nul 2>&1 || let contador+=1 # Busqueda secuencial : for i in $(seq 0 $longitud); do if [ ${palabra_user[$i]} = "$letra" ];then palabra_adivinar[$i]=$letra fi done echo;echo; for i in $(seq 0 $longitud); do echo -n "${palabra_adivinar[$i]} "; done echo;echo; limpiar if [ "$contador" -ge "$intentos" ]; then break fi i=0 cadena_final=`while test $i -le $longitud; do echo -n ${palabra_adivinar[$i]}; let i+=1; done` if [ "$cadena_final" == "$palabra_user2" ]; then break; fi done if [ "$cadena_final" == "$palabra_user2" ]; then echo Felicidades, has ganado. echo Ahorcado v1.1 echo Leo Gutierrez R. else echo Lo siento, has perdido. echo Ahorcado v1.1 echo Leo Gutierrez R. fi exit 0
|
|
« Última modificación: 21 Mayo 2009, 17:56 pm por Leo Gutierrez. »
|
En línea
|
|
|
|
Darioxhcx
Desconectado
Mensajes: 2.294
|
jajajaaaaaaaa cuando reinicie lo pruebo que bueno se ve che un saludo
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Juego del ahorcado C#
.NET (C#, VB.NET, ASP)
|
treblatp
|
3
|
12,930
|
3 Febrero 2011, 20:18 pm
por Khronos14
|
|
|
juego sencillo ahorcado
Java
|
bengy
|
1
|
28,080
|
26 Octubre 2011, 07:31 am
por s00rk
|
|
|
Juego del Ahorcado
ASM
|
ziony
|
1
|
5,327
|
27 Abril 2012, 21:52 pm
por Eternal Idol
|
|
|
Ayuda con el juego el ahorcado
Programación C/C++
|
Classic77
|
4
|
4,110
|
7 Diciembre 2012, 15:21 pm
por durasno
|
|
|
Ayuda con juego el ahorcado en lenguaje c
Programación C/C++
|
KIDRAP1
|
4
|
8,301
|
27 Junio 2013, 13:24 pm
por satu
|
|