Advertisement
Birog

Hangmen

Mar 31st, 2020
415
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.72 KB | None | 0 0
  1. '''
  2. Author: Ari24
  3. '''
  4.  
  5. import random                                           #Importieren der Zufallfunktion
  6.  
  7.  
  8. def find_every_char_of_string(char, string):            #Überprüfen ob der eingegeben Buchstabe im Wort vorhanden ist und Rückgabe der Position
  9.                                                         #woher kommt "char" und "string"?
  10.     indexes = []                                        #Erzeugen der leeren "indexes" Liste
  11.  
  12.     for i, letter in enumerate(list(string)):           #Objekte werden in Listen nummeriert.
  13.                                                         #"letter" steht für die Buchstaben im Word
  14.                                                         #i eine Variable die nur in der Funktion aktiv ist.
  15.         if char == letter:                              #Prüfung wie viele Buchstaben im Wort vorhanden sind
  16.             indexes.append(i)                           #Nach jeden Buchstaben im Wort die Variable "i"(Woher kommt diese und was beinhalte diese?)
  17.     #print(indexes)                                     #Test
  18.     return indexes                                      #Rückgabe von "indexes"
  19.  
  20.  
  21. def list_to_word(char_sequence):                        #Was macht diese Funktion?
  22.     #print(char_sequence)                               #Test
  23.     return ''.join(char_sequence)                       #Rückgabe von ?
  24.  
  25.  
  26. def format_list(_list):                                 # Funktion aufruf für das ersezten der Raute durch Unterstriche
  27.     return list_to_word(_list).replace("#", "_")        # Ersetze Raute durch Unterstriche und geben die Varoable "list_to_world" zurück
  28.  
  29.  
  30. words = ["ananas","Banane"]                             #Wörterliste
  31. word_to_guess = random.choice(words)                    #Auswahl des Wortes aus der Liste "words"
  32. right_letters = []                                      #Erzeugen einer leeren Liste mit den Namen "right_letters"
  33.  
  34. trys = 6                                                #Anzahl der möglichen Versuche
  35.  
  36. for letter in word_to_guess:                            #Erzeugt für jeden Buchstabe des Wort einen #
  37.     right_letters.append("#")                           #Füge für jeden Buchstaben im "words" einen # dem String zu
  38.     #print(right_letters)                                #TEST
  39.  
  40. game = True                                             #Variable Game auf True setzen
  41. while game:                                             #Eine entlos Schleife bis die Variable Game auf False gesetzt wird.
  42.     #print(right_letters)                               #Test
  43.     #print(word_to_guess)                               #Test
  44.     user_input = input("Enter: ")                       #User Eingabe
  45.  
  46.     if user_input in word_to_guess:                     # Überprüft ob User Eingabe im Word vorhanden ist.
  47.         for letter in user_input:                       # Für jeden Buchstabe im Wort die User Eingabe prüfen
  48.             indexes = find_every_char_of_string(letter, word_to_guess)      #? Suche der User Eingabe im Wort ?
  49.  
  50.             for index in indexes:                       # Keine Ahnung was hier gemacht wird in der Schleife
  51.                 right_letters[index] = letter
  52.  
  53.             print("RICHTIG!\n")                         #Ausgabe wenn ein richtiger Buchstabe gefunden wurde (Klein/Groß schreiben beachten)
  54.             print(format_list(right_letters))           #Ausgabe des gesuchten Wort mit bereits gefunden Buchstaben
  55.  
  56.         if list_to_word(right_letters).lower() == word_to_guess.lower():    # Prüfung ob alle Buchstaben gefunden wurden
  57.             print("Gut gemacht, du hast gewonnen!")                         # Ausgabe wenn gewonnen
  58.             game = False                                                    # Variable Game wird auf False gesetzt, damit wird die While Schleife unterbrochen.
  59.  
  60.     else:                                                  #Falls der Buchstabe nicht im Wort ist wird hier dies Beantwortet
  61.         if trys <= 0:                                      #Sollte trys gleich Null sein, so ist das Game vorbei
  62.             print("Schade, du konntest das Word nicht herausfinden. Das Wort war: " + word_to_guess)    #Mittelung an den User mit dem gesuchten Wort.
  63.             game = False                                   # Variable Game wird auf False gesetzt, damit wird die While Schleife unterbrochen.
  64.             break                                          # Ausstieg aus der while Schleife
  65.  
  66.         trys -= 1                                          # Abzug des Fehlsversucht (müsste weiter oben stehen, da man ansonsten 8 Versuche hat.)
  67.         print(f"Leider falsch!\nVersuche: {trys}")         # Rückgabe an den User, dass man den falschen Buchstaben erraten hat mit Ausgabe der verbleibene Versuchen
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement