class UI:
~snip~
def guess_letter(self):
while True:
letter = input("Guess a letter: ").strip().upper()
if len(letter) != 1:
print("One guess at a time, please")
elif letter in self.guessed_letters:
print("You've already guessed that letter!")
print(f"Try one not in {self.guessed_letters}")
else:
break
self.guessed_letters.add(letter)
found = False
forif i,letter charnot in enumerate(self.game_word):
ifprint("That letter == char:
is not in the word")
print("That letter was found!self.wrong_guesses Good+= guess!")1
return
self.display_word[i] = letter
print("That letter was found! =Good Trueguess!")
iffor noti, foundchar in enumerate(self.game_word):
print("Thatif letter is== notchar:
in the word")
self.wrong_guessesdisplay_word[i] +== 1letter
# and to refactor the display function
def display_game_word(self):
# much easier
print(self.display_word)
from string import ascii_uppercase as uppercase
import random
dist = ord('A') - ord('A')
LETTERS = [(letter, chr(ord(letter) + dist)) for letter in uppercase]
class UI:
hangman_drawings = [
(" _____\n| |\n|\n|\n|\n|\n__"),
(" _____\n| |\n| O\n|\n|\n|\n__"),
(" _____\n| |\n| O\n| |\n|\n|\n__"),
(" _____\n| |\n| O\n| /|\n|\n|\n__"),
(" _____\n| |\n| O\n| /|\\\n|\n|\n__"),
(" _____\n| |\n| O\n| /|\\\n| /\n|\n__"),
(" _____\n| |\n| O\n| /|\\\n| / \\\n|\n__")
]
def __init__(self, words_file='words.txt'):
self.game_word = self.initialize_game_word(words_file)
self.display_word = ['_' for _ in self.game_word]
self.guessed_letters = set()
self.wrong_guesses = 0
def __str__(self):
return (
f"\n\n\n{self.hangman_drawings[self.wrong_guesses]}"
f"\n{self.board_letters}"
f"\n{self.display_word}"
)
@property
def board_letters(self):
return [
dead if letter in self.guessed_letters else letter
for letter, dead in LETTERS
]
@staticmethod
def initialize_game_word(file='words.txt'):
with open(file) as fh:
# just collect the lines into a list
words = fh.readlines()
# choose the word, strip off whitespace, and set to uppercase
word = random.choice(words).strip().upper()
return word
def guess_letter(self):
while True:
letter = input("Guess a letter: ").strip().upper()
if len(letter) != 1:
print("One guess at a time, please")
elif letter in self.guessed_letters:
print("You've already guessed that letter!")
print(f"Try one not in {self.guessed_letters}")
else:
break
self.guessed_letters.add(letter)
found = False
forif i,letter charnot in enumerate(self.game_word):
ifprint("That letter == char:
is not in the word")
print("That letter was found!self.wrong_guesses Good+= guess!")1
return
self.display_word[i] = letter
print("That letter was found! =Good Trueguess!")
iffor noti, foundchar in enumerate(self.game_word):
print("Thatif letter is== notchar:
in the word")
self.wrong_guessesdisplay_word[i] +== 1
letter
def game():
ui = UI()
while True:
print(ui)
ui.guess_letter()
if ui.wrong_guesses >= len(ui.hangman_drawings):
print("Your man has Hanged. Please Try again!")
break
elif ui.display_word == list(ui.game_word):
print("You won!")
break
class UI:
~snip~
def guess_letter(self):
while True:
letter = input("Guess a letter: ").strip().upper()
if len(letter) != 1:
print("One guess at a time, please")
elif letter in self.guessed_letters:
print("You've already guessed that letter!")
print(f"Try one not in {self.guessed_letters}")
else:
break
self.guessed_letters.add(letter)
found = False
for i, char in enumerate(self.game_word):
if letter == char:
print("That letter was found! Good guess!")
self.display_word[i] = letter
found = True
if not found:
print("That letter is not in the word")
self.wrong_guesses += 1
# and to refactor the display function
def display_game_word(self):
# much easier
print(self.display_word)
from string import ascii_uppercase as uppercase
import random
dist = ord('A') - ord('A')
LETTERS = [(letter, chr(ord(letter) + dist)) for letter in uppercase]
class UI:
hangman_drawings = [
(" _____\n| |\n|\n|\n|\n|\n__"),
(" _____\n| |\n| O\n|\n|\n|\n__"),
(" _____\n| |\n| O\n| |\n|\n|\n__"),
(" _____\n| |\n| O\n| /|\n|\n|\n__"),
(" _____\n| |\n| O\n| /|\\\n|\n|\n__"),
(" _____\n| |\n| O\n| /|\\\n| /\n|\n__"),
(" _____\n| |\n| O\n| /|\\\n| / \\\n|\n__")
]
def __init__(self, words_file='words.txt'):
self.game_word = self.initialize_game_word(words_file)
self.display_word = ['_' for _ in self.game_word]
self.guessed_letters = set()
self.wrong_guesses = 0
def __str__(self):
return (
f"\n\n\n{self.hangman_drawings[self.wrong_guesses]}"
f"\n{self.board_letters}"
f"\n{self.display_word}"
)
@property
def board_letters(self):
return [
dead if letter in self.guessed_letters else letter
for letter, dead in LETTERS
]
@staticmethod
def initialize_game_word(file='words.txt'):
with open(file) as fh:
# just collect the lines into a list
words = fh.readlines()
# choose the word, strip off whitespace, and set to uppercase
word = random.choice(words).strip().upper()
return word
def guess_letter(self):
while True:
letter = input("Guess a letter: ").strip().upper()
if len(letter) != 1:
print("One guess at a time, please")
elif letter in self.guessed_letters:
print("You've already guessed that letter!")
print(f"Try one not in {self.guessed_letters}")
else:
break
self.guessed_letters.add(letter)
found = False
for i, char in enumerate(self.game_word):
if letter == char:
print("That letter was found! Good guess!")
self.display_word[i] = letter
found = True
if not found:
print("That letter is not in the word")
self.wrong_guesses += 1
def game():
ui = UI()
while True:
print(ui)
ui.guess_letter()
if ui.wrong_guesses >= len(ui.hangman_drawings):
print("Your man has Hanged. Please Try again!")
break
elif ui.display_word == list(ui.game_word):
print("You won!")
break
class UI:
~snip~
def guess_letter(self):
while True:
letter = input("Guess a letter: ").strip().upper()
if len(letter) != 1:
print("One guess at a time, please")
elif letter in self.guessed_letters:
print("You've already guessed that letter!")
print(f"Try one not in {self.guessed_letters}")
else:
break
self.guessed_letters.add(letter)
if letter not in self.game_word:
print("That letter is not in the word")
self.wrong_guesses += 1
return
print("That letter was found! Good guess!")
for i, char in enumerate(self.game_word):
if letter == char:
self.display_word[i] = letter
# and to refactor the display function
def display_game_word(self):
# much easier
print(self.display_word)
from string import ascii_uppercase as uppercase
import random
dist = ord('A') - ord('A')
LETTERS = [(letter, chr(ord(letter) + dist)) for letter in uppercase]
class UI:
hangman_drawings = [
(" _____\n| |\n|\n|\n|\n|\n__"),
(" _____\n| |\n| O\n|\n|\n|\n__"),
(" _____\n| |\n| O\n| |\n|\n|\n__"),
(" _____\n| |\n| O\n| /|\n|\n|\n__"),
(" _____\n| |\n| O\n| /|\\\n|\n|\n__"),
(" _____\n| |\n| O\n| /|\\\n| /\n|\n__"),
(" _____\n| |\n| O\n| /|\\\n| / \\\n|\n__")
]
def __init__(self, words_file='words.txt'):
self.game_word = self.initialize_game_word(words_file)
self.display_word = ['_' for _ in self.game_word]
self.guessed_letters = set()
self.wrong_guesses = 0
def __str__(self):
return (
f"\n\n\n{self.hangman_drawings[self.wrong_guesses]}"
f"\n{self.board_letters}"
f"\n{self.display_word}"
)
@property
def board_letters(self):
return [
dead if letter in self.guessed_letters else letter
for letter, dead in LETTERS
]
@staticmethod
def initialize_game_word(file='words.txt'):
with open(file) as fh:
# just collect the lines into a list
words = fh.readlines()
# choose the word, strip off whitespace, and set to uppercase
word = random.choice(words).strip().upper()
return word
def guess_letter(self):
while True:
letter = input("Guess a letter: ").strip().upper()
if len(letter) != 1:
print("One guess at a time, please")
elif letter in self.guessed_letters:
print("You've already guessed that letter!")
print(f"Try one not in {self.guessed_letters}")
else:
break
self.guessed_letters.add(letter)
if letter not in self.game_word:
print("That letter is not in the word")
self.wrong_guesses += 1
return
print("That letter was found! Good guess!")
for i, char in enumerate(self.game_word):
if letter == char:
self.display_word[i] = letter
def game():
ui = UI()
while True:
print(ui)
ui.guess_letter()
if ui.wrong_guesses >= len(ui.hangman_drawings):
print("Your man has Hanged. Please Try again!")
break
elif ui.display_word == list(ui.game_word):
print("You won!")
break
from string import ascii_uppercase as uppercase
import random
dist = ord('A') - ord('A')
LETTERS = [(letter, chr(ord(letter) + dist)) for letter in uppercase]
class UI:
hangman_drawings = [
(" _____\n| |\n|\n|\n|\n|\n__"),
(" _____\n| |\n| O\n|\n|\n|\n__"),
(" _____\n| |\n| O\n| |\n|\n|\n__"),
(" _____\n| |\n| O\n| /|\n|\n|\n__"),
(" _____\n| |\n| O\n| /|\\\n|\n|\n__"),
(" _____\n| |\n| O\n| /|\\\n| /\n|\n__"),
(" _____\n| |\n| O\n| /|\\\n| / \\\n|\n__")
]
def __init__(self, words_file='words.txt'):
self.game_word = self.initialize_game_word(words_file)
self.display_word = ['_' for _ in self.game_word]
self.guessed_letters = set()
self.wrong_guesses = 0
def __str__(self):
return (
f"\n\n\n{self.hangman_drawings[self.wrong_guesses]}"
f"\n{self.board_letters}"
f"\n{self.display_word}"
)
@property
def board_letters(self):
return [
dead if letter in self.guessed_letters else letter
for letter, dead in LETTERS
]
@staticmethod
def initialize_game_word(file='words.txt'):
with open(file) as fh:
# just collect the lines into a list
words = fh.readlines()
# choose the word, strip off whitespace, and set to uppercase
word = random.choice(words).strip().upper()
return word
def guess_letter(self):
while True:
letter = input("Guess a letter: ").strip().upper()
if len(letter) != 1:
print("One guess at a time, please")
elif letter in self.guessed_letters:
print("You've already guessed that letter!")
print(f"Try one not in {self.guessed_letters}")
else:
break
self.guessed_letters.add(letter)
found = False
for i, char in enumerate(self.game_word):
if letter == char:
print("That letter was found! Good guess!")
self.display_word[i] = letter
found = True
if not found:
print("That letter is not in the word")
self.wrong_guesses += 1
def game():
ui = UI()
while True:
print(ui)
ui.guess_letter()
if ui.wrong_guesses >= len(ui.hangman_drawings):
print("Your man has Hanged. Please Try again!")
break
elif ui.display_word == list(ui.game_word):
print("You won!")
break
from string import ascii_uppercase as uppercase
dist = ord('A') - ord('A')
LETTERS = [(letter, chr(ord(letter) + dist)) for letter in uppercase]
class UI:
hangman_drawings = [
(" _____\n| |\n|\n|\n|\n|\n__"),
(" _____\n| |\n| O\n|\n|\n|\n__"),
(" _____\n| |\n| O\n| |\n|\n|\n__"),
(" _____\n| |\n| O\n| /|\n|\n|\n__"),
(" _____\n| |\n| O\n| /|\\\n|\n|\n__"),
(" _____\n| |\n| O\n| /|\\\n| /\n|\n__"),
(" _____\n| |\n| O\n| /|\\\n| / \\\n|\n__")
]
def __init__(self, words_file='words.txt'):
self.game_word = self.initialize_game_word(words_file)
self.display_word = ['_' for _ in self.game_word]
self.guessed_letters = set()
self.wrong_guesses = 0
def __str__(self):
return (
f"\n\n\n{self.hangman_drawings[self.wrong_guesses]}"
f"\n{self.board_letters}"
f"\n{self.display_word}"
)
@property
def board_letters(self):
return [
dead if letter in self.guessed_letters else letter
for letter, dead in LETTERS
]
@staticmethod
def initialize_game_word(file='words.txt'):
with open(file) as fh:
# just collect the lines into a list
words = fh.readlines()
# choose the word, strip off whitespace, and set to uppercase
word = random.choice(words).strip().upper()
return word
def guess_letter(self):
while True:
letter = input("Guess a letter: ").strip().upper()
if len(letter) != 1:
print("One guess at a time, please")
elif letter in self.guessed_letters:
print("You've already guessed that letter!")
print(f"Try one not in {self.guessed_letters}")
else:
break
self.guessed_letters.add(letter)
found = False
for i, char in enumerate(self.game_word):
if letter == char:
print("That letter was found! Good guess!")
self.display_word[i] = letter
found = True
if not found:
print("That letter is not in the word")
self.wrong_guesses += 1
def game():
ui = UI()
while True:
print(ui)
ui.guess_letter()
if ui.wrong_guesses >= len(ui.hangman_drawings):
print("Your man has Hanged. Please Try again!")
break
elif ui.display_word == list(ui.game_word):
print("You won!")
break
from string import ascii_uppercase as uppercase
import random
dist = ord('A') - ord('A')
LETTERS = [(letter, chr(ord(letter) + dist)) for letter in uppercase]
class UI:
hangman_drawings = [
(" _____\n| |\n|\n|\n|\n|\n__"),
(" _____\n| |\n| O\n|\n|\n|\n__"),
(" _____\n| |\n| O\n| |\n|\n|\n__"),
(" _____\n| |\n| O\n| /|\n|\n|\n__"),
(" _____\n| |\n| O\n| /|\\\n|\n|\n__"),
(" _____\n| |\n| O\n| /|\\\n| /\n|\n__"),
(" _____\n| |\n| O\n| /|\\\n| / \\\n|\n__")
]
def __init__(self, words_file='words.txt'):
self.game_word = self.initialize_game_word(words_file)
self.display_word = ['_' for _ in self.game_word]
self.guessed_letters = set()
self.wrong_guesses = 0
def __str__(self):
return (
f"\n\n\n{self.hangman_drawings[self.wrong_guesses]}"
f"\n{self.board_letters}"
f"\n{self.display_word}"
)
@property
def board_letters(self):
return [
dead if letter in self.guessed_letters else letter
for letter, dead in LETTERS
]
@staticmethod
def initialize_game_word(file='words.txt'):
with open(file) as fh:
# just collect the lines into a list
words = fh.readlines()
# choose the word, strip off whitespace, and set to uppercase
word = random.choice(words).strip().upper()
return word
def guess_letter(self):
while True:
letter = input("Guess a letter: ").strip().upper()
if len(letter) != 1:
print("One guess at a time, please")
elif letter in self.guessed_letters:
print("You've already guessed that letter!")
print(f"Try one not in {self.guessed_letters}")
else:
break
self.guessed_letters.add(letter)
found = False
for i, char in enumerate(self.game_word):
if letter == char:
print("That letter was found! Good guess!")
self.display_word[i] = letter
found = True
if not found:
print("That letter is not in the word")
self.wrong_guesses += 1
def game():
ui = UI()
while True:
print(ui)
ui.guess_letter()
if ui.wrong_guesses >= len(ui.hangman_drawings):
print("Your man has Hanged. Please Try again!")
break
elif ui.display_word == list(ui.game_word):
print("You won!")
break
from string import ascii_uppercase as uppercase
dist = ord('A') - ord('A')
LETTERS = [(letter, chr(ord(letter) + 127215dist)) for letter in uppercase]
LETTERS[0]LETTERS[25]
('A''Z', 'A''Z')
from string import ascii_uppercase as uppercase
dist = ord('A') - ord('A')
LETTERS = [(letter, chr(ord(letter) + 127215dist)) for letter in uppercase]
class UI:
hangman_drawings = [
(" _____\n| |\n|\n|\n|\n|\n__"),
(" _____\n| |\n| O\n|\n|\n|\n__"),
(" _____\n| |\n| O\n| |\n|\n|\n__"),
(" _____\n| |\n| O\n| /|\n|\n|\n__"),
(" _____\n| |\n| O\n| /|\\\n|\n|\n__"),
(" _____\n| |\n| O\n| /|\\\n| /\n|\n__"),
(" _____\n| |\n| O\n| /|\\\n| / \\\n|\n__")
]
def __init__(self, words_file='words.txt'):
self.game_word = self.initialize_game_word(words_file)
self.display_word = ['_' for _ in self.game_word]
self.guessed_letters = set()
self.wrong_guesses = 0
def __str__(self):
return (
f"\n\n\n{self.hangman_drawings[self.wrong_guesses]}"
f"\n{self.board_letters}"
f"\n{self.display_word}"
)
@property
def board_letters(self):
return [
dead if letter in self.guessed_letters else letter
for letter, dead in LETTERS
]
@staticmethod
def initialize_game_word(file='words.txt'):
with open(file) as fh:
# just collect the lines into a list
words = fh.readlines()
# choose the word, strip off whitespace, and set to uppercase
word = random.choice(words).strip().upper()
return word
def guess_letter(self):
while True:
letter = input("Guess a letter: ").strip().upper()
if len(letter) != 1:
print("One guess at a time, please")
elif letter in self.guessed_letters:
print("You've already guessed that letter!")
print(f"Try one not in {self.guessed_letters}")
else:
break
self.guessed_letters.add(letter)
found = False
for i, char in enumerate(self.game_word):
if letter == char:
print("That letter was found! Good guess!")
self.display_word[i] = letter
found = True
if not found:
print("That letter is not in the word")
self.wrong_guesses += 1
def game():
ui = UI()
while True:
print(ui)
ui.guess_letter()
if ui.wrong_guesses >= len(ui.hangman_drawings):
print("Your man has Hanged. Please Try again!")
break
elif ui.display_word == list(ui.game_word):
print("You won!")
break
from string import ascii_uppercase as uppercase
LETTERS = [(letter, chr(ord(letter) + 127215)) for letter in uppercase]
LETTERS[0]
('A', 'A')
from string import ascii_uppercase as uppercase
LETTERS = [(letter, chr(ord(letter) + 127215)) for letter in uppercase]
class UI:
hangman_drawings = [
(" _____\n| |\n|\n|\n|\n|\n__"),
(" _____\n| |\n| O\n|\n|\n|\n__"),
(" _____\n| |\n| O\n| |\n|\n|\n__"),
(" _____\n| |\n| O\n| /|\n|\n|\n__"),
(" _____\n| |\n| O\n| /|\\\n|\n|\n__"),
(" _____\n| |\n| O\n| /|\\\n| /\n|\n__"),
(" _____\n| |\n| O\n| /|\\\n| / \\\n|\n__")
]
def __init__(self, words_file='words.txt'):
self.game_word = self.initialize_game_word(words_file)
self.display_word = ['_' for _ in self.game_word]
self.guessed_letters = set()
self.wrong_guesses = 0
def __str__(self):
return (
f"\n\n\n{self.hangman_drawings[self.wrong_guesses]}"
f"\n{self.board_letters}"
f"\n{self.display_word}"
)
@property
def board_letters(self):
return [
dead if letter in self.guessed_letters else letter
for letter, dead in LETTERS
]
@staticmethod
def initialize_game_word(file='words.txt'):
with open(file) as fh:
# just collect the lines into a list
words = fh.readlines()
# choose the word, strip off whitespace, and set to uppercase
word = random.choice(words).strip().upper()
return word
def guess_letter(self):
while True:
letter = input("Guess a letter: ").strip().upper()
if len(letter) != 1:
print("One guess at a time, please")
elif letter in self.guessed_letters:
print("You've already guessed that letter!")
print(f"Try one not in {self.guessed_letters}")
else:
break
self.guessed_letters.add(letter)
found = False
for i, char in enumerate(self.game_word):
if letter == char:
print("That letter was found! Good guess!")
self.display_word[i] = letter
found = True
if not found:
print("That letter is not in the word")
self.wrong_guesses += 1
def game():
ui = UI()
while True:
print(ui)
ui.guess_letter()
if ui.wrong_guesses >= len(ui.hangman_drawings):
print("Your man has Hanged. Please Try again!")
break
elif ui.display_word == list(ui.game_word):
print("You won!")
break
from string import ascii_uppercase as uppercase
dist = ord('A') - ord('A')
LETTERS = [(letter, chr(ord(letter) + dist)) for letter in uppercase]
LETTERS[25]
('Z', 'Z')
from string import ascii_uppercase as uppercase
dist = ord('A') - ord('A')
LETTERS = [(letter, chr(ord(letter) + dist)) for letter in uppercase]
class UI:
hangman_drawings = [
(" _____\n| |\n|\n|\n|\n|\n__"),
(" _____\n| |\n| O\n|\n|\n|\n__"),
(" _____\n| |\n| O\n| |\n|\n|\n__"),
(" _____\n| |\n| O\n| /|\n|\n|\n__"),
(" _____\n| |\n| O\n| /|\\\n|\n|\n__"),
(" _____\n| |\n| O\n| /|\\\n| /\n|\n__"),
(" _____\n| |\n| O\n| /|\\\n| / \\\n|\n__")
]
def __init__(self, words_file='words.txt'):
self.game_word = self.initialize_game_word(words_file)
self.display_word = ['_' for _ in self.game_word]
self.guessed_letters = set()
self.wrong_guesses = 0
def __str__(self):
return (
f"\n\n\n{self.hangman_drawings[self.wrong_guesses]}"
f"\n{self.board_letters}"
f"\n{self.display_word}"
)
@property
def board_letters(self):
return [
dead if letter in self.guessed_letters else letter
for letter, dead in LETTERS
]
@staticmethod
def initialize_game_word(file='words.txt'):
with open(file) as fh:
# just collect the lines into a list
words = fh.readlines()
# choose the word, strip off whitespace, and set to uppercase
word = random.choice(words).strip().upper()
return word
def guess_letter(self):
while True:
letter = input("Guess a letter: ").strip().upper()
if len(letter) != 1:
print("One guess at a time, please")
elif letter in self.guessed_letters:
print("You've already guessed that letter!")
print(f"Try one not in {self.guessed_letters}")
else:
break
self.guessed_letters.add(letter)
found = False
for i, char in enumerate(self.game_word):
if letter == char:
print("That letter was found! Good guess!")
self.display_word[i] = letter
found = True
if not found:
print("That letter is not in the word")
self.wrong_guesses += 1
def game():
ui = UI()
while True:
print(ui)
ui.guess_letter()
if ui.wrong_guesses >= len(ui.hangman_drawings):
print("Your man has Hanged. Please Try again!")
break
elif ui.display_word == list(ui.game_word):
print("You won!")
break
lang-py