Advertisement
GRxRedZero

Untitled

May 10th, 2020
1,049
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.86 KB | None | 0 0
  1. -- Hangman
  2.  
  3. -- Printfunktion für Elemente in der Liste
  4. function print_r(arr, indentLevel)
  5.     local str = ""
  6.     local indentStr = "#"
  7.  
  8.     if(indentLevel == nil) then
  9.         print(print_r(arr, 0))
  10.         return
  11.     end
  12.  
  13.     for i = 0, indentLevel do
  14.         indentStr = indentStr.."\t"
  15.     end
  16.  
  17.     for index,value in pairs(arr) do
  18.         if type(value) == "table" then
  19.             str = str..indentStr..index..": \n"..print_r(value, (indentLevel + 1))
  20.         else
  21.             str = str..indentStr..index..": "..value.."\n"
  22.         end
  23.     end
  24.     return str
  25. end
  26.  
  27. versuche = 11
  28. print("Welches Wort soll gefunden werden?")
  29. suchwort = read("*a")
  30. suchwort_len = string.len(suchwort)
  31. aufgedeckter_buchstabe = {}
  32. fehlversuche = {}
  33. richtige_wortliste = {}
  34. stern_wort = {}
  35. sieg = false
  36.  
  37. for i = 1, suchwort_len, 1 do
  38.     stern_wort[i] ="*"
  39. end
  40.  
  41.  
  42. -- Anzahl der richtigen und falschen Antworten
  43. richtig = 0
  44. falsch = 0
  45.  
  46. -- 11 Versuche - Es wird der richtige und der falsche Buchstabe in eine
  47. -- Liste geschrieben!
  48. while versuche ~= 0  do
  49.     buchstaben = read()
  50.     buchstabe = string.sub(buchstaben, 1, 1)
  51.     --repeat bis nil eintrifft
  52.     if string.find(suchwort, buchstaben) ~= nil then
  53.         -- print(string.find(suchwort, buchstaben))
  54.         doppelt = false
  55.         for k, v in pairs(aufgedeckter_buchstabe) do
  56.             if v == buchstabe then
  57.                 doppelt = true
  58.                 print("Doppelt")
  59.             end        
  60.         end
  61.  
  62.         if doppelt == false then
  63.             richtig = richtig + 1
  64.             aufgedeckter_buchstabe[richtig] = buchstabe
  65.             -- versuche = versuche - 1
  66.         end
  67.     else
  68.         doppelt = false
  69.         for k, v in pairs(fehlversuche) do
  70.             if v == buchstabe then
  71.                 doppelt = true
  72.                 print("Doppelt")
  73.             end            
  74.         end
  75.  
  76.         if doppelt == false then
  77.             falsch = falsch + 1
  78.             fehlversuche[falsch] = buchstabe
  79.             versuche = versuche - 1
  80.         end
  81.     end
  82.  
  83.     --Zeigt den Buchstaben im verdeckten Wort
  84.     term.clear()
  85.     counterx = 0
  86.     for k, v in pairs(aufgedeckter_buchstabe) do
  87.         gefunden = ""
  88.         for c in string.gmatch(suchwort, ".") do
  89.             if c == v then
  90.                 counterx = counterx + 1
  91.                 -- print("Suchwort: ")
  92.                 gefunden = gefunden .. c
  93.             else
  94.                 gefunden = gefunden .. "*"
  95.             end
  96.         end
  97.     end
  98.  
  99.     eintrag = 0
  100.     richtige_wortliste[eintrag] = gefunden
  101.     eintrag = eintrag + 1
  102.  
  103.     print("Gefundene Buchstaben: " .. tostring(counterx) .. " von " .. tostring(suchwort_len))
  104.     print("Fehlversuche")
  105.     fehl_wort = ""
  106.     for k, v in pairs(fehlversuche) do
  107.         fehl_wort = fehl_wort .. v .. " "
  108.     end
  109.     print(fehl_wort)
  110.  
  111.     print("Richtig aufgedeckt")
  112.     aufgedeckt_wort = ""
  113.     for k, v in pairs(aufgedeckter_buchstabe) do
  114.         aufgedeckt_wort = aufgedeckt_wort .. v .. " "
  115.     end
  116.     print(aufgedeckt_wort)
  117.     print("----------------------")
  118.  
  119.     -- Fügt Buchstaben in die Platzhalter ein
  120.     for k, v in pairs(richtige_wortliste) do
  121.         counter = 0
  122.         -- print(richtige_wortliste[k]) -- l**b*
  123.         for c in string.gmatch(richtige_wortliste[k], ".") do
  124.             counter = counter + 1
  125.             if c ~= "*" then
  126.                 stern_wort[counter] = c
  127.                 --print(c)
  128.             end
  129.         end
  130.     end
  131.  
  132.     -- Zeigt das gesuchte Wort
  133.     gefundenes_wort = ""
  134.     for k, v in pairs(stern_wort) do
  135.         gefundenes_wort = gefundenes_wort .. v
  136.     end
  137.     print("Suchwort: " .. gefundenes_wort)
  138.  
  139.     -- Sieg
  140.     if tostring(counterx) == tostring(suchwort_len) then
  141.         sieg = true
  142.         break;
  143.     end
  144. end
  145.  
  146. if sieg == true then
  147.     print("Sieg!")
  148. else
  149.     print("Niederlage!")
  150. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement