Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Hangman
- -- Printfunktion für Elemente in der Liste
- function print_r(arr, indentLevel)
- local str = ""
- local indentStr = "#"
- if(indentLevel == nil) then
- print(print_r(arr, 0))
- return
- end
- for i = 0, indentLevel do
- indentStr = indentStr.."\t"
- end
- for index,value in pairs(arr) do
- if type(value) == "table" then
- str = str..indentStr..index..": \n"..print_r(value, (indentLevel + 1))
- else
- str = str..indentStr..index..": "..value.."\n"
- end
- end
- return str
- end
- versuche = 11
- print("Welches Wort soll gefunden werden?")
- suchwort = read("*a")
- suchwort_len = string.len(suchwort)
- aufgedeckter_buchstabe = {}
- fehlversuche = {}
- richtige_wortliste = {}
- stern_wort = {}
- sieg = false
- for i = 1, suchwort_len, 1 do
- stern_wort[i] ="*"
- end
- -- Anzahl der richtigen und falschen Antworten
- richtig = 0
- falsch = 0
- -- 11 Versuche - Es wird der richtige und der falsche Buchstabe in eine
- -- Liste geschrieben!
- while versuche ~= 0 do
- buchstaben = read()
- buchstabe = string.sub(buchstaben, 1, 1)
- --repeat bis nil eintrifft
- if string.find(suchwort, buchstaben) ~= nil then
- -- print(string.find(suchwort, buchstaben))
- doppelt = false
- for k, v in pairs(aufgedeckter_buchstabe) do
- if v == buchstabe then
- doppelt = true
- print("Doppelt")
- end
- end
- if doppelt == false then
- richtig = richtig + 1
- aufgedeckter_buchstabe[richtig] = buchstabe
- -- versuche = versuche - 1
- end
- else
- doppelt = false
- for k, v in pairs(fehlversuche) do
- if v == buchstabe then
- doppelt = true
- print("Doppelt")
- end
- end
- if doppelt == false then
- falsch = falsch + 1
- fehlversuche[falsch] = buchstabe
- versuche = versuche - 1
- end
- end
- --Zeigt den Buchstaben im verdeckten Wort
- term.clear()
- counterx = 0
- for k, v in pairs(aufgedeckter_buchstabe) do
- gefunden = ""
- for c in string.gmatch(suchwort, ".") do
- if c == v then
- counterx = counterx + 1
- -- print("Suchwort: ")
- gefunden = gefunden .. c
- else
- gefunden = gefunden .. "*"
- end
- end
- end
- eintrag = 0
- richtige_wortliste[eintrag] = gefunden
- eintrag = eintrag + 1
- print("Gefundene Buchstaben: " .. tostring(counterx) .. " von " .. tostring(suchwort_len))
- print("Fehlversuche")
- fehl_wort = ""
- for k, v in pairs(fehlversuche) do
- fehl_wort = fehl_wort .. v .. " "
- end
- print(fehl_wort)
- print("Richtig aufgedeckt")
- aufgedeckt_wort = ""
- for k, v in pairs(aufgedeckter_buchstabe) do
- aufgedeckt_wort = aufgedeckt_wort .. v .. " "
- end
- print(aufgedeckt_wort)
- print("----------------------")
- -- Fügt Buchstaben in die Platzhalter ein
- for k, v in pairs(richtige_wortliste) do
- counter = 0
- -- print(richtige_wortliste[k]) -- l**b*
- for c in string.gmatch(richtige_wortliste[k], ".") do
- counter = counter + 1
- if c ~= "*" then
- stern_wort[counter] = c
- --print(c)
- end
- end
- end
- -- Zeigt das gesuchte Wort
- gefundenes_wort = ""
- for k, v in pairs(stern_wort) do
- gefundenes_wort = gefundenes_wort .. v
- end
- print("Suchwort: " .. gefundenes_wort)
- -- Sieg
- if tostring(counterx) == tostring(suchwort_len) then
- sieg = true
- break;
- end
- end
- if sieg == true then
- print("Sieg!")
- else
- print("Niederlage!")
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement