-
Notifications
You must be signed in to change notification settings - Fork 0
/
ahorcado.lua
131 lines (112 loc) · 3.2 KB
/
ahorcado.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
function limpiarPantalla()
if not os.execute("clear") then
os.execute("cls")
end
end
function dibuja_parte_superior()
io.write("+----+ \n")
io.write("| | \n")
end
function dibuja_parte_central(errores)
if(errores == 0) then
io.write("| \n")
end if(errores >= 1) then
io.write("| O \n")
end if(errores >= 2 and errores <3 ) then
io.write("| | \n")
end if(errores >= 3 and errores <4 )then
io.write("| /| \n")
end if(errores >= 4 ) then
io.write("| /|\\ \n")
end if(errores >= 5 and errores<6) then
io.write("| / \n")
end if(errores >= 6) then
io.write("| / \\ \n")
end
end
function dibuja_parte_inferior()
io.write("| \n")
io.write("| \n")
io.write("+------\n")
io.write("")
end
function dibuja_ahorcado(errores)
dibuja_parte_superior()
dibuja_parte_central(errores)
dibuja_parte_inferior()
end
function dibuja_palabra(palabra)
local guiones = ""
local letras = ""
local contador = 1
while contador <= string.len(palabra) do
guiones = guiones.."-"
letras = letras..string.sub(palabra,contador,contador)
contador = contador + 1
end
io.write(letras.."\n")
io.write(guiones.."\n")
end
function reemplazaLetras(palabra)
local letras = ""
local contador = 1
while contador <= string.len(palabra) do
letras = letras.."x"
contador = contador + 1
end
return letras
end
function rellenaPalabraMostrar(palabraMostrar, palabra, letra)
local letras = ""
local contador = 1
while contador <= string.len(palabra) do
if string.sub(palabra,contador,contador) == letra then
letras = letras..letra
else
letras = letras..string.sub(palabraMostrar,contador,contador)
end
contador = contador + 1
end
return letras
end
function letraValida(palabra, letra)
return string.find(palabra, letra)
end
function main()
local frutas = {"manzana", "platano", "naranja", "pera", "fresa",
"kiwi", "uva", "mango", "melon", "sandia",
"toronja", "cereza", "limon", "mandarina", "pomelo",
"aguacate", "nispero", "frambuesa", "grosella", "coco"}
local errores, palabra, palabraMostrar, puntos, victorias, derrotas
local continuar = true
victorias = 0
derrotas = 0
while continuar do
errores = 0
palabra = frutas[math.random(1,20)]
palabraMostrar = reemplazaLetras(palabra)
while errores < 6 do
limpiarPantalla()
dibuja_ahorcado(errores)
io.write("Victorias: ".. victorias.."\t ".."Derrotas: "..derrotas.."\t".."Errores: "..errores.."/6".."\n")
io.write("Adivina de que fruta estamos hablando . . .\n")
dibuja_palabra(palabraMostrar)
local letra = io.read("l")
letra = letra:lower()
if letraValida(palabra,letra) then
palabraMostrar = rellenaPalabraMostrar(palabraMostrar,palabra,letra)
else
errores = errores + 1
end
if(errores>=6) then
derrotas = derrotas +1
break
end
if(palabraMostrar == palabra) then
victorias = victorias +1
break
end
end
end
end
main()