Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from random import randint, shuffle
- class Galgje(object):
- def __init__(self, word, allowed_errors=5):
- self.word = word
- self.allowed_errors = allowed_errors
- self.guessed_letters = set()
- self.correct_letters = set()
- def guess(self, letter):
- self.guessed_letters.add(letter)
- if letter in self.word:
- self.correct_letters.add(letter)
- def still_running(self):
- return sorted(set(self.word)) != sorted(self.correct_letters) and self.allowed_errors > len(self.incorrect_letters())
- def hint(self):
- letters_left = list(filter(lambda f: f not in self.correct_letters, self.word))
- shuffle(letters_left)
- c = letters_left[0]
- self.guessed_letters.add(c)
- self.correct_letters.add(c)
- def print(self):
- print('Word: ', end='')
- for c in self.word:
- if c in self.correct_letters:
- print(c, end='')
- else:
- print('_', end='')
- print()
- print('Guessed letters: %s' % list(self.guessed_letters))
- print('Errors: %s of %s' % (len(self.incorrect_letters()), self.allowed_errors))
- def finish(self):
- if sorted(set(self.word)) == sorted(self.correct_letters):
- print('You guessed the word: %s' % self.word)
- else:
- print('You lost. The word was %s.' % self.word)
- def incorrect_letters(self):
- return list(filter(lambda f: f not in self.word, self.guessed_letters))
- if __name__ == '__main__':
- g = Galgje('somelongword')
- while g.still_running():
- g.print()
- letter = input('Letter or hint (?): ')
- if letter == '?':
- g.hint()
- elif len(letter) == 1:
- g.guess(letter)
- else:
- print('Incorrect input')
- g.finish()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement