Hangman
Guess a secret word letter by letter, with six mistakes allowed.
- Level
- Advanced
- Topic:
- Projects
- Concepts:
- Input & output
- Text
- Arrays
- Mientras
- Randomness
- Logic
Run, change and debug this example in your browser.
What you'll learn
Azar picks a word from an array. A Mientras loop runs until you win or lose, and each guess rebuilds the progress string with Subcadena.
Code
Algoritmo Ahorcado Definir palabras, secreta, progreso, nuevo, letra Como Caracter Definir errores, i Como Entero Definir acerto Como Logico Dimension palabras[5] palabras[1] <- "algoritmo" palabras[2] <- "variable" palabras[3] <- "pantalla" palabras[4] <- "teclado" palabras[5] <- "programa" // Azar(5) devuelve un número de 0 a 4 secreta <- palabras[Azar(5) + 1] progreso <- "" Para i <- 1 Hasta Longitud(secreta) Hacer progreso <- progreso + "_" FinPara errores <- 0 Mientras progreso <> secreta Y errores < 6 Hacer Escribir "Palabra: ", progreso, " Errores: ", errores, " de 6" Escribir "Letra:" Leer letra letra <- Minusculas(letra) acerto <- Falso nuevo <- "" Para i <- 1 Hasta Longitud(secreta) Hacer Si Subcadena(secreta, i, i) = letra Entonces nuevo <- nuevo + letra acerto <- Verdadero SiNo nuevo <- nuevo + Subcadena(progreso, i, i) FinSi FinPara progreso <- nuevo Si NO acerto Entonces errores <- errores + 1 Escribir "La letra ", letra, " no está." FinSi FinMientras Si progreso = secreta Entonces Escribir "¡Ganaste! La palabra era ", secreta, "." SiNo Escribir "Perdiste. La palabra era ", secreta, "." FinSiFinAlgoritmoFlowchart
Each block in the flowchart matches one instruction in the code.
Sample run
This is what the program shows when it runs. The answers typed by the user are highlighted.
Palabra: ________ Errores: 0 de 6Letra:User answer: aPalabra: _____a_a Errores: 0 de 6Letra:User answer: eLa letra e no está.Palabra: _____a_a Errores: 1 de 6Letra:User answer: oPalabra: __o__a_a Errores: 1 de 6Letra:User answer: rPalabra: _ro_ra_a Errores: 1 de 6Letra:User answer: iLa letra i no está.Palabra: _ro_ra_a Errores: 2 de 6Letra:User answer: nLa letra n no está.Palabra: _ro_ra_a Errores: 3 de 6Letra:User answer: tLa letra t no está.Palabra: _ro_ra_a Errores: 4 de 6Letra:User answer: lLa letra l no está.Palabra: _ro_ra_a Errores: 5 de 6Letra:User answer: sLa letra s no está.Perdiste. La palabra era programa.
Challenge
Warn the player when they repeat a letter they already tried, without counting it as a mistake.
Show hint
Keep the used letters in a text and check whether the new one is there by walking it with Subcadena.
Related examples
Shell Sort
Insertion sort between far-apart elements, with a gap that shrinks every pass.
AdvancedHeap Sort
Arranges the array as a heap, then takes the largest out again and again.
AdvancedBubble Sort
Sorts random numbers by swapping neighbors, and stops as soon as they're in order.
Intermediate