Autor Tema: Código del juego el ahorcado en PSeInt  (Leído 27713 veces)

Lary

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 1
    • Ver Perfil
Código del juego el ahorcado en PSeInt
« en: 06 de Agosto 2017, 19:49 »
El ejercicio es el siguiente:
Juego del ahorcado en PSeInt
   -Nivel básico 3-5 letras
   -Nivel Medio 6-9 letras   
   Debe contar con al menos 20 palabras para cada nivel  (ya pre cargadas por el usuario)
   El usuario deberá tener un máximo de 8 intentos para mostrar que esta AHORCADO, formando esta palabra con cada fallo.
   Al ganar o perder debe mostrar los intentos, fallos y aciertos. para cada palabra.
   Deberá mostrar opciones para salir del sistema (Y/N).
   Deberá pedir mediante un menú el nivel que desea y las palabras deben ser tomadas en orden aleatorio.

Por favor podrían ayudarme, soy principiante.
Este es el código que yo tengo pero no funciona:


Código: [Seleccionar]
Algoritmo sin_titulo
definir palabr, palabra, casillas como caracter
definir aciertos, turnos como real

Escribir "      *Menú*"

Escribir "   1. Nivel Bàsico"
Escribir "   2. Nivel Medio"
escribir "   3. Salir "
escribir"   Ingrese su opciòn (1-3)"
leer OP
Segun OP hacer
1:

p_tb<-20
oportunidades<-8
dimension palabra[p_tb]

palabra[0]<-"duda"
palabra[1]<-"ojo"
palabra[2]<-"anima"
palabra[3]<-"duro"
palabra[4]<-"pua"
palabra[5]<-"ahoga"
palabra[6]<-"dije"
palabra[7]<-"vos"
palabra[8]<-"acero"
palabra[9]<-"echo"
palabra[10]<-"uso"
palabra[11]<-"apoye"
palabra[12]<-"cuña"
palabra[13]<-"rie"
palabra[14]<-"almas"
palabra[15]<-"gota"
palabra[16]<-"via"
palabra[17]<-"amigo"
palabra[18]<-"copo"
palabra[19]<-"feo"


a_<-' '
h_<-' '
o_<-' '
r_<-' '
c_<-' '
ax<-' '
d_<-' '
ox<-' '

turnos<-0
aciertos<-0

palabr<-palabra[azar(p_tb)+1]
n<-Longitud(palabr)
Dimension casillas(n)
Para x<-1 Hasta n Con Paso 1 Hacer
casillas[x]<-"_"
Fin Para
Repetir
Escribir ""
escribir "Oportuniddes restantes: ", oportunidades-turnos
Para x<-1 Hasta n Con Paso 1 Hacer
Escribir Sin Saltar " ", casillas[x]
Fin Para
escribir " "
Escribir Sin Saltar "Escriba la letra: "
leer letra
encontrando<-Falso
Para x<-1 Hasta n Con Paso 1 Hacer
chr<-Subcadena(palabr, x,x)
Si Mayusculas(letra)=Mayusculas(chr) Entonces
encontrando<-Verdadero
si casillas[x]="_" Entonces
casillas[x]<-chr
aciertos<-aciertos+1

FinSi
Fin Si
FinPara
si no encontrando Entonces
turnos<-turnos+1
Escribir "Letra no encontrada."
Segun turnos hacer
1:
a_<-'A'
2:
h_<-'H'
3:
o_<-'O'
4 :
r_<-'R'
5:
c_<-'C'
6:
ax<-'A'
7:
d_<-'D'
8:
Ox<-'O'


FinSegun
FinSi
Escribir "",a_
Escribir "",h_
Escribir "",o_
Escribir "",r_
Escribir "",c_
Escribir "",ax
Escribir "",d_
Escribir "",ox


Hasta Que turnos>=oportunidades o aciertos>=n;
si aciertos=n Entonces

Escribir "Felicidades, has ganado"
sino
Escribir "Has perdido."
FinSi
Escribir "La palabra secreta es: ", palabr;
escribir "Aciertos: ",aciertos,"  Fallos: ",turnos
escribir "PRESIONE CUALQUIER TECLA PARA CONTINUAR";
esperar Tecla;

2:

p_tb<-20
oportunidades<-8
dimension palabra[p_tb]

palabra[1]<-"fabricado"
palabra[2]<-"camiseta"
palabra[3]<-"ninguno"
palabra[4]<-"zapato"
palabra[5]<-"habaneros"
palabra[6]<-"cabellera"
palabra[7]<-"celular"
palabra[8]<-"cobija"
palabra[9]<-"habilidad"
palabra[10]<-"eliminar"
palabra[11]<-"galleta"
palabra[12]<-"alarma"
palabra[13]<-"vacilados"
palabra[14]<-"bolsillo"
palabra[15]<-"archivo"
palabra[16]<-"espejo"
palabra[17]<-"compilado"
palabra[18]<-"celebrar"
palabra[19]<-"rebotar"
//palabra[20]<-"adorno"

a_<-' '
h_<-' '
o_<-' '
r_<-' '
c_<-' '
ax<-' '
d_<-' '
ox<-' '

turnos<-0
aciertos<-0
//fallos<-0

palabr<-palabra[azar(p_tb)+1]
n<-Longitud(palabr)
Dimension casillas(n)
Para x<-1 Hasta n Con Paso 1 Hacer
casillas[x]<-"_"
Fin Para
Repetir
Escribir ""
or=oportunidades-turnos
escribir "Oportuniddes restantes: ", or
Para x<-1 Hasta n Con Paso 1 Hacer
Escribir Sin Saltar " ", casillas[x]
Fin Para
escribir " "
Escribir Sin Saltar "Escriba la letra: "
leer letra
encontrando<-Falso
Para x<-1 Hasta n Con Paso 1 Hacer
chr<-Subcadena(palabr, x, x)
Si Mayusculas(letra)=Mayusculas(chr) Entonces
encontrando<-Verdadero
si casillas[x]='_' Entonces
casillas[x]<-nose
aciertos<-aciertos+1

FinSi
Fin Si
FinPara
si no encontrando Entonces
turnos<-turnos+1
Escribir "Letra no encontrada."
Segun turnos hacer
1:
a_<-'A'
2:
h_<-'H'
3:
o_<-'O'
4 :
r_<-'R'
5:
c_<-'C'
6:
ax<-'A'
7:
d_<-'D'
8:
Ox<-'O'


FinSegun
FinSi
Escribir "",a_
Escribir "",h_
Escribir "",o_
Escribir "",r_
Escribir "",c_
Escribir "",ax
Escribir "",d_
Escribir "",ox



Hasta Que turnos>=oportunidades o aciertos>=n;
si aciertos=n Entonces

Escribir "Felicidades, has ganado"
sino
Escribir "Has perdido."
FinSi
Escribir "La palabra secreta es: ", palabr;
escribir "Aciertos: ",aciertos,"  Fallos: ",fallos, "  Intentos: ",intentos


3:
escribir "Usted ha salido del juego"

de otro modo
escribir "Obcion no valida"
FinSegun

escribir "PRESIONE CUALQUIER TECLA PARA CONTINUAR";
esperar Tecla;
FinAlgoritmo

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 740
    • Ver Perfil
Re:Código del juego el ahorcado en PSeInt
« Respuesta #1 en: 06 de Agosto 2017, 21:42 »
Me cuesta leer código para PSeInt...  :P ya que cuando hago pseudocódigo lo hago a mi manera, con lápiz y papel, y luego lo paso a Java o C++.
PSeINt, se que existe, pero nunca lo he usado.

Aún así, creo que entiendo tu código pero no veo donde puede haber error. De hecho, parece estar bastante bien para un principiante. Bucles, condicionales, el boolean encontrado... parecen estar usados de la forma correcta para conseguir lo que se necesita.

¿Te da algún tipo de error concreto o podrías decir que ocurre exactamente cuando no te funciona?

EDITO:

Ahora que me fijo...el boolean encontrando, ¿hay que declararlo previamente antes de usarlo?
Creo que en PSeINt se declara como "lógico", pero no se si se puede utilizar sin declararlo previamente.


EDITO2:
He codificado tu programa en lenguaje Java, calcándolo prácticamente paso a paso (aunque se podría optimizar aprovechando el mayor nivel de Java...) y me funciona perfectamente.
La lógica del código es correcta, así que lo único que se me ocurre que pueda fallar es lo que dije antes, la ausencia de declaración de la variable encontrando
« Última modificación: 06 de Agosto 2017, 23:38 por Kabuto »
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".