Ansichten: QuotePaste - CodePaste - NoPaste
Codesnippet eingetragen am 27.4.2015 um 15:41
Von: Michael
Sprache: Python
Beschreibung: Little Hangman Game
CodeSnippet:
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. ######################################################
  4. # Simple Hangman Game
  5. # Author: Michael Skiba
  6. # Dev notes: Works, but only with ASCII chars
  7. ######################################################
  8. import re
  9. import random
  10.  
  11.  
  12. def find_all(string, substring):
  13. start = 0
  14. while True:
  15. start = string.find(substring, start)
  16. if start == -1:
  17. return
  18. yield start
  19. start += len(substring)
  20.  
  21.  
  22. r = re.compile("^[A-ZÄÜÖß]{1}$") #oversized much? Allow only one char
  23. gameloop = True
  24. wordlist = ['Apfel', 'Baum', 'Forensik', 'Frankfurt', 'Duesseldorf']
  25. while(gameloop):
  26. used_letters = []
  27. counter = 10
  28. word_original = random.choice(wordlist).upper()
  29. word_displayed = list(len(word_original)*"_")
  30.  
  31. while counter >0:
  32. while True:
  33. guess = raw_input("Rate einen Buchstaben (Nur 1 Zeichen pro Versuch): ").upper()
  34. if(r.match(guess)):
  35. if(guess in used_letters):
  36. print "Diesen Buchstaben haben Sie schon benutzt "+str(used_letters)
  37. else:
  38. used_letters.append(guess)
  39. break
  40. #print "Guess: "+guess
  41. #print "Wort: "+word_original
  42. if(guess in word_original):
  43. positions = find_all(word_original, guess)
  44. for pos in positions:
  45. word_displayed[pos] = guess
  46. if("_" not in word_displayed):
  47. print "Das gesuchte Wort war: "+"".join(word_displayed)
  48. print "Congratulations! You are a WinRAR!"
  49. break
  50.  
  51. else:
  52. print "Leider kommt "+guess+" nicht im gesuchten Wort vor"
  53. #print "Leider kommt {} nicht im gesuchten Wort vor".format(guess)
  54. counter -= 1
  55.  
  56. print "Aktuelles Wort: "+"".join(word_displayed)
  57. print "Noch {} Versuch(e)".format(counter)
  58.  
  59.  
  60.  
  61. gameloop = (raw_input("Beenden? (y/n) ") != "y")