From 4fcc95e80634bc3aad763ba79a7fb7505be36ffa Mon Sep 17 00:00:00 2001 From: Daniel Piron Date: Wed, 17 Feb 2021 21:02:39 -0500 Subject: [PATCH 01/10] Implement a 'Canvas' for drawing body parts --- 44 Hangman/python/hangman.py | 42 ++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100755 44 Hangman/python/hangman.py diff --git a/44 Hangman/python/hangman.py b/44 Hangman/python/hangman.py new file mode 100755 index 00000000..30910fa4 --- /dev/null +++ b/44 Hangman/python/hangman.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python3 + + +class Canvas: + ''' For drawing text-based figures ''' + + def __init__(self, width=12, height=12, fill=' '): + self._buffer = [] + for _ in range(height): + line = [] + for _ in range(width): + line.append(fill[0]) + self._buffer.append(line) + + def draw(self): + for line in self._buffer: + # Joining by the empty string ('') smooshes all of the + # individual characters together as one line. + print(''.join(line)) + + def put(self, character, y, x): + # In an effort to avoid distorting the drawn image, only write the + # first character of the given string to the buffer. + self._buffer[y][x] = character[0] + + +def play(): + canvas = Canvas() + canvas.put('-', 2, 5) + canvas.put('-', 2, 6) + canvas.put('-', 2, 7) + canvas.put('(', 3, 4) + canvas.put('.', 3, 5) + canvas.put('.', 3, 7) + canvas.put(')', 3, 8) + canvas.put('-', 4, 5) + canvas.put('-', 4, 6) + canvas.put('-', 4, 7) + canvas.draw() + +if __name__ == '__main__': + play() From 505c8a3c7f28742076f599dae7a46f5ab5d095dd Mon Sep 17 00:00:00 2001 From: Daniel Piron Date: Wed, 17 Feb 2021 23:23:15 -0500 Subject: [PATCH 02/10] Drawing code for victim and gallows --- 44 Hangman/python/hangman.py | 88 ++++++++++++++++++++++++++++++------ 1 file changed, 75 insertions(+), 13 deletions(-) diff --git a/44 Hangman/python/hangman.py b/44 Hangman/python/hangman.py index 30910fa4..479ec733 100755 --- a/44 Hangman/python/hangman.py +++ b/44 Hangman/python/hangman.py @@ -9,33 +9,95 @@ class Canvas: for _ in range(height): line = [] for _ in range(width): - line.append(fill[0]) + line.append('') self._buffer.append(line) + self.clear() + + def clear(self, fill=' '): + for row in self._buffer: + for x in range(len(row)): + row[x] = fill + def draw(self): for line in self._buffer: # Joining by the empty string ('') smooshes all of the # individual characters together as one line. print(''.join(line)) - def put(self, character, y, x): + def put(self, s, x, y): # In an effort to avoid distorting the drawn image, only write the # first character of the given string to the buffer. - self._buffer[y][x] = character[0] + self._buffer[y][x] = s[0] +def draw_head(canvas): + canvas.put('-', 5, 2) + canvas.put('-', 6, 2) + canvas.put('-', 7, 2) + canvas.put('(', 4, 3) + canvas.put('.', 5, 3) + canvas.put('.', 7, 3) + canvas.put(')', 8, 3) + canvas.put('-', 5, 4) + canvas.put('-', 6, 4) + canvas.put('-', 7, 4) + +def draw_gallows(canvas): + for i in range(12): + canvas.put('X', 0, i) + for i in range(7): + canvas.put('X', i, 0) + canvas.put('X', 6, 1) + +def draw_body(canvas): + for i in range(5, 9, 1): + canvas.put('X', 6, i) + +def draw_right_arm(canvas): + for i in range(3, 7): + canvas.put('\\', i - 1, i) + +def draw_left_arm(canvas): + canvas.put('/', 10, 3) + canvas.put('/', 9, 4) + canvas.put('/', 8, 5) + canvas.put('/', 7, 6) + +def draw_right_leg(canvas): + canvas.put('/', 5, 9) + canvas.put('/', 4, 10) + +def draw_left_leg(canvas): + canvas.put('\\', 7, 9) + canvas.put('\\', 8, 10) + +def draw_left_hand(canvas): + canvas.put('\\', 10, 2) + +def draw_right_hand(canvas): + canvas.put('/', 2, 2) + +def draw_left_foot(canvas): + canvas.put('\\', 9, 11) + canvas.put('-', 10, 11) + +def draw_right_foot(canvas): + canvas.put('-', 2, 11) + canvas.put('/', 3, 11) def play(): canvas = Canvas() - canvas.put('-', 2, 5) - canvas.put('-', 2, 6) - canvas.put('-', 2, 7) - canvas.put('(', 3, 4) - canvas.put('.', 3, 5) - canvas.put('.', 3, 7) - canvas.put(')', 3, 8) - canvas.put('-', 4, 5) - canvas.put('-', 4, 6) - canvas.put('-', 4, 7) + draw_gallows(canvas) + draw_head(canvas) + draw_body(canvas) + draw_right_arm(canvas) + draw_left_arm(canvas) + draw_right_leg(canvas) + draw_left_leg(canvas) + draw_left_hand(canvas) + draw_right_hand(canvas) + draw_left_foot(canvas) + draw_right_foot(canvas) canvas.draw() if __name__ == '__main__': From 26305ced928ece3d3315c28db8dfa6abd83f4c7d Mon Sep 17 00:00:00 2001 From: Daniel Piron Date: Thu, 18 Feb 2021 00:15:56 -0500 Subject: [PATCH 03/10] Implement core game --- 44 Hangman/python/hangman.py | 101 ++++++++++++++++++++++++++++++----- 1 file changed, 89 insertions(+), 12 deletions(-) diff --git a/44 Hangman/python/hangman.py b/44 Hangman/python/hangman.py index 479ec733..4b10da18 100755 --- a/44 Hangman/python/hangman.py +++ b/44 Hangman/python/hangman.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 - +import random class Canvas: ''' For drawing text-based figures ''' @@ -30,6 +30,7 @@ class Canvas: # first character of the given string to the buffer. self._buffer[y][x] = s[0] + def draw_head(canvas): canvas.put('-', 5, 2) canvas.put('-', 6, 2) @@ -42,6 +43,7 @@ def draw_head(canvas): canvas.put('-', 6, 4) canvas.put('-', 7, 4) + def draw_gallows(canvas): for i in range(12): canvas.put('X', 0, i) @@ -49,56 +51,131 @@ def draw_gallows(canvas): canvas.put('X', i, 0) canvas.put('X', 6, 1) + def draw_body(canvas): for i in range(5, 9, 1): canvas.put('X', 6, i) + def draw_right_arm(canvas): for i in range(3, 7): canvas.put('\\', i - 1, i) + def draw_left_arm(canvas): canvas.put('/', 10, 3) canvas.put('/', 9, 4) canvas.put('/', 8, 5) canvas.put('/', 7, 6) + def draw_right_leg(canvas): canvas.put('/', 5, 9) canvas.put('/', 4, 10) + def draw_left_leg(canvas): canvas.put('\\', 7, 9) canvas.put('\\', 8, 10) + def draw_left_hand(canvas): canvas.put('\\', 10, 2) + def draw_right_hand(canvas): canvas.put('/', 2, 2) + def draw_left_foot(canvas): canvas.put('\\', 9, 11) canvas.put('-', 10, 11) + def draw_right_foot(canvas): canvas.put('-', 2, 11) canvas.put('/', 3, 11) + +PHASES = ( + ("FIRST, WE DRAW A HEAD", draw_head), + ("NOW WE DRAW A BODY.", draw_body), + ("NEXT WE DRAW AN ARM.", draw_right_arm), + ("THIS TIME IT'S THE OTHER ARM.", draw_left_arm), + ("NOW, LET'S DRAW THE RIGHT LEG.", draw_right_leg), + ("THIS TIME WE DRAW THE LEFT LEG.", draw_left_leg), + ("NOW WE PUT UP A HAND.", draw_left_hand), + ("NEXT THE OTHER HAND.", draw_right_hand), + ("NOW WE DRAW ONE FOOT", draw_left_foot), + ("HERE'S THE OTHER FOOT -- YOU'RE HUNG!!", draw_right_foot) +) + +WORDS = ('GUM','SIN','FOR','CRY','LUG','BYE','FLY', + 'UGLY','EACH','FROM','WORK','TALK','WITH','SELF', + 'PIZZA','THING','FEIGN','FIEND','ELBOW','FAULT','DIRTY', + 'BUDGET','SPIRIT','QUAINT','MAIDEN','ESCORT','PICKAX', + 'EXAMPLE','TENSION','QUININE','KIDNEY','REPLICA','SLEEPER', + 'TRIANGLE','KANGAROO','MAHOGANY','SERGEANT','SEQUENCE', + 'MOUSTACHE','DANGEROUS','SCIENTIST','DIFFERENT','QUIESCENT', + 'MAGISTRATE','ERRONEOUSLY','LOUDSPEAKER','PHYTOTOXIC', + 'MATRIMONIAL','PARASYMPATHOMIMETIC','THIGMOTROPISM') + +QUESTION_PROMPT = '? ' + + +def revealed_word(word, letters_used): + return ''.join(letter if letter in letters_used else '-' + for letter in word) + + def play(): + + print('HANGMAN') + print('CREATIVE COMPUTING MORRISTOWN, NEW JERSEY\n\n\n') + canvas = Canvas() draw_gallows(canvas) - draw_head(canvas) - draw_body(canvas) - draw_right_arm(canvas) - draw_left_arm(canvas) - draw_right_leg(canvas) - draw_left_leg(canvas) - draw_left_hand(canvas) - draw_right_hand(canvas) - draw_left_foot(canvas) - draw_right_foot(canvas) - canvas.draw() + + word = random.choice(WORDS) + letters_used = set() + guesses_count = 0 + + while True: + print('HERE ARE THE LETTERS YOU USED:') + print(', '.join(sorted(letters_used))) + print('\n') + + print(revealed_word(word, letters_used)) + + print('WHAT IS YOUR GUESS', end=QUESTION_PROMPT) + guess = input().upper() + + if guess in letters_used: + print('YOU GUESSED THAT LETTER BEFORE!') + continue + + if guess not in word: + comment, draw_function = PHASES[guesses_count] + print('\n\nSORRY, THAT LETTER ISN\'T IN THE WORD.') + print(comment) + draw_function(canvas) + canvas.draw() + + guesses_count += 1 + if guesses_count == len(PHASES): + print('SORRY, YOU LOSE. THE WORD WAS', word) + break + + letters_used.add(guess) + print('\n' + revealed_word(word, letters_used)) + + print('\nWHAT IS YOUR GUESS FOR THE WORD', end=QUESTION_PROMPT) + guessed_word = input().upper() + + if guessed_word != word: + print('WRONG. TRY ANOTHER LETTER.') + continue + if __name__ == '__main__': play() From 3eb6492c8698ea6087a99fd693a67c2ce11bc839 Mon Sep 17 00:00:00 2001 From: Daniel Piron Date: Thu, 18 Feb 2021 13:39:13 -0500 Subject: [PATCH 04/10] Multiple Rounds --- 44 Hangman/python/hangman.py | 98 +++++++++++++++++++++++------------- 1 file changed, 64 insertions(+), 34 deletions(-) diff --git a/44 Hangman/python/hangman.py b/44 Hangman/python/hangman.py index 4b10da18..0387e267 100755 --- a/44 Hangman/python/hangman.py +++ b/44 Hangman/python/hangman.py @@ -19,11 +19,13 @@ class Canvas: for x in range(len(row)): row[x] = fill - def draw(self): + def render(self): + lines = [] for line in self._buffer: # Joining by the empty string ('') smooshes all of the # individual characters together as one line. - print(''.join(line)) + lines.append(''.join(line)) + return '\n'.join(lines) def put(self, s, x, y): # In an effort to avoid distorting the drawn image, only write the @@ -133,48 +135,76 @@ def play(): print('HANGMAN') print('CREATIVE COMPUTING MORRISTOWN, NEW JERSEY\n\n\n') - canvas = Canvas() - draw_gallows(canvas) - - word = random.choice(WORDS) - letters_used = set() - guesses_count = 0 - + words_available = set(WORDS) while True: - print('HERE ARE THE LETTERS YOU USED:') - print(', '.join(sorted(letters_used))) - print('\n') - print(revealed_word(word, letters_used)) + if len(words_available) == 0: + print('YOU DID ALL THE WORDS!!') + break - print('WHAT IS YOUR GUESS', end=QUESTION_PROMPT) - guess = input().upper() + # Initize game state for this round + canvas = Canvas() + draw_gallows(canvas) - if guess in letters_used: - print('YOU GUESSED THAT LETTER BEFORE!') - continue + word = random.choice(list(words_available)) + letters_used = set() + guesses_count = 0 + fail_count = 0 - if guess not in word: - comment, draw_function = PHASES[guesses_count] - print('\n\nSORRY, THAT LETTER ISN\'T IN THE WORD.') - print(comment) - draw_function(canvas) - canvas.draw() + while True: + print('HERE ARE THE LETTERS YOU USED:') + print(', '.join(sorted(letters_used))) + print('\n') + + print(revealed_word(word, letters_used)) + print('\n') + + print('WHAT IS YOUR GUESS', end=QUESTION_PROMPT) + guess = input().upper() + + if guess in letters_used: + print('YOU GUESSED THAT LETTER BEFORE!') + continue guesses_count += 1 - if guesses_count == len(PHASES): - print('SORRY, YOU LOSE. THE WORD WAS', word) - break - letters_used.add(guess) - print('\n' + revealed_word(word, letters_used)) + if guess not in word: + comment, draw_function = PHASES[fail_count] + print('\n\nSORRY, THAT LETTER ISN\'T IN THE WORD.') + print(comment) + draw_function(canvas) + print(canvas.render()) - print('\nWHAT IS YOUR GUESS FOR THE WORD', end=QUESTION_PROMPT) - guessed_word = input().upper() + fail_count += 1 + if fail_count == len(PHASES): + print('SORRY, YOU LOSE. THE WORD WAS', word) + print('YOU MISSED THAT ONE. DO YOU', end=' ') + break - if guessed_word != word: - print('WRONG. TRY ANOTHER LETTER.') - continue + letters_used.add(guess) + if '-' not in revealed_word(word, letters_used): + print("YOU FOUND THE WORD!") + words_available.remove(word) + break + else: + print('\n' + revealed_word(word, letters_used)) + print('\n\nWHAT IS YOUR GUESS FOR THE WORD', end=QUESTION_PROMPT) + guessed_word = input().upper() + + if guessed_word != word: + print('WRONG. TRY ANOTHER LETTER.\n') + continue + + print('RIGHT!! IT TOOK YOU {} GUESSES!'.format(guesses_count)) + words_available.remove(word) + break + + print('WANT ANOTHER WORD', end=QUESTION_PROMPT) + reply = input().upper() + if reply != 'YES': + break + + print('\nIT\'S BEEN FUN! BYE FOR NOW.') if __name__ == '__main__': From 15fbf4403ec1352c93dc1679374055b490294835 Mon Sep 17 00:00:00 2001 From: Daniel Piron Date: Thu, 18 Feb 2021 23:34:27 -0500 Subject: [PATCH 05/10] Make all variable names snake_case for consistency --- 44 Hangman/python/hangman.py | 76 ++++++++++++++++++------------------ 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/44 Hangman/python/hangman.py b/44 Hangman/python/hangman.py index 2b42a121..f1edcd85 100755 --- a/44 Hangman/python/hangman.py +++ b/44 Hangman/python/hangman.py @@ -132,61 +132,61 @@ words = ["GUM", "SIN", "FOR", "CRY", "LUG", "BYE", "FLY", "MATRIMONIAL", "PARASYMPATHOMIMETIC", "THIGMOTROPISM"] -def play_game(guessTarget): +def play_game(guess_target): """Play the game""" - guessWrong = 0 - guessProgress = ["-"] * len(guessTarget) - guessList = [] + guess_wrong = 0 + guess_progress = ["-"] * len(guess_target) + guess_list = [] gallows = Canvas() draw_gallows(gallows) - guessCount = 0 + guess_count = 0 while True: print("Here are the letters you used:") - print(",".join(guessList) + "\n") - print("".join(guessProgress) + "\n") - guessLetter = "" - guessWord = "" - while guessLetter == "": - guessLetter = input("What is your guess? ").upper()[0] - if not guessLetter.isalpha(): - guessLetter = "" + print(",".join(guess_list) + "\n") + print("".join(guess_progress) + "\n") + guess_letter = "" + guess_word = "" + while guess_letter == "": + guess_letter = input("What is your guess? ").upper()[0] + if not guess_letter.isalpha(): + guess_letter = "" print("Only letters are allowed!") - elif guessLetter in guessList: - guessLetter = "" + elif guess_letter in guess_list: + guess_letter = "" print("You guessed that letter before!") - guessList.append(guessLetter) - guessCount = guessCount + 1 - if guessLetter in guessTarget: - indices = [i for i, letter in enumerate(guessTarget) if letter == guessLetter] + guess_list.append(guess_letter) + guess_count = guess_count + 1 + if guess_letter in guess_target: + indices = [i for i, letter in enumerate(guess_target) if letter == guess_letter] for i in indices: - guessProgress[i] = guessLetter - if guessProgress == guessTarget: + guess_progress[i] = guess_letter + if guess_progress == guess_target: print("You found the word!") break else: - print("\n" + "".join(guessProgress) + "\n") - while guessWord == "": - guessWord = input("What is your guess for the word? ").upper() - if not guessWord.isalpha(): - guessWord = "" + print("\n" + "".join(guess_progress) + "\n") + while guess_word == "": + guess_word = input("What is your guess for the word? ").upper() + if not guess_word.isalpha(): + guess_word = "" print("Only words are allowed!") - if guessWord == guessTarget: - print("Right!! It took you", guessCount, "guesses!") + if guess_word == guess_target: + print("Right!! It took you", guess_count, "guesses!") break else: - comment, drawingBodyPart = PHASES[guessWrong] + comment, draw_bodypart = PHASES[guess_wrong] print(comment) - drawingBodyPart(gallows) + draw_bodypart(gallows) print(gallows.render()) - guessWrong = guessWrong + 1 + guess_wrong = guess_wrong + 1 print("Sorry, that letter isn't in the word.") - if guessWrong == 10: - print("Sorry, you lose. The word was " + guessTarget) + if guess_wrong == 10: + print("Sorry, you lose. The word was " + guess_target) break @@ -194,14 +194,14 @@ def main(): """Main""" random.shuffle(words) - wordCurrent = 0 - wordCount = 49 + word_current = 0 + word_count = 49 keep_playing = True while keep_playing: - play_game(words[wordCurrent]) - wordCurrent = wordCurrent + 1 - if wordCurrent >= wordCount: + play_game(words[word_current]) + word_current = word_current + 1 + if word_current >= word_count: print("You did all the words!!") keep_playing = False else: From 849799cda6224a63093969fe860730f5d26d433e Mon Sep 17 00:00:00 2001 From: Daniel Piron Date: Thu, 18 Feb 2021 23:45:19 -0500 Subject: [PATCH 06/10] Clarify variable names and simplify some expressions --- 44 Hangman/python/hangman.py | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/44 Hangman/python/hangman.py b/44 Hangman/python/hangman.py index f1edcd85..abf0b3ba 100755 --- a/44 Hangman/python/hangman.py +++ b/44 Hangman/python/hangman.py @@ -134,7 +134,7 @@ words = ["GUM", "SIN", "FOR", "CRY", "LUG", "BYE", "FLY", def play_game(guess_target): """Play the game""" - guess_wrong = 0 + wrong_guesses = 0 guess_progress = ["-"] * len(guess_target) guess_list = [] @@ -149,6 +149,7 @@ def play_game(guess_target): guess_letter = "" guess_word = "" while guess_letter == "": + guess_letter = input("What is your guess? ").upper()[0] if not guess_letter.isalpha(): guess_letter = "" @@ -156,8 +157,9 @@ def play_game(guess_target): elif guess_letter in guess_list: guess_letter = "" print("You guessed that letter before!") + guess_list.append(guess_letter) - guess_count = guess_count + 1 + guess_count += 1 if guess_letter in guess_target: indices = [i for i, letter in enumerate(guess_target) if letter == guess_letter] for i in indices: @@ -176,36 +178,38 @@ def play_game(guess_target): print("Right!! It took you", guess_count, "guesses!") break else: - comment, draw_bodypart = PHASES[guess_wrong] + comment, draw_bodypart = PHASES[wrong_guesses] print(comment) draw_bodypart(gallows) print(gallows.render()) - guess_wrong = guess_wrong + 1 + wrong_guesses += 1 print("Sorry, that letter isn't in the word.") - if guess_wrong == 10: + if wrong_guesses == 10: print("Sorry, you lose. The word was " + guess_target) break def main(): - """Main""" random.shuffle(words) - word_current = 0 - word_count = 49 + current_word = 0 + word_count = len(words) keep_playing = True while keep_playing: - play_game(words[word_current]) - word_current = word_current + 1 - if word_current >= word_count: + + play_game(words[current_word]) + current_word += 1 + + if current_word == word_count: print("You did all the words!!") keep_playing = False else: keep_playing = input("Want another word? (yes or no) ").lower().startswith("y") + print("It's been fun! Bye for now.") From bbeeb1114f57f275f7b1643ba3b30ebcd4906ad0 Mon Sep 17 00:00:00 2001 From: Daniel Piron Date: Thu, 18 Feb 2021 23:50:48 -0500 Subject: [PATCH 07/10] USe doublequotes througout for consistency with merge target --- 44 Hangman/python/hangman.py | 72 ++++++++++++++++++------------------ 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/44 Hangman/python/hangman.py b/44 Hangman/python/hangman.py index abf0b3ba..4a2417df 100755 --- a/44 Hangman/python/hangman.py +++ b/44 Hangman/python/hangman.py @@ -7,19 +7,19 @@ import random class Canvas: - ''' For drawing text-based figures ''' + """ For drawing text-based figures """ - def __init__(self, width=12, height=12, fill=' '): + def __init__(self, width=12, height=12, fill=" "): self._buffer = [] for _ in range(height): line = [] for _ in range(width): - line.append('') + line.append("") self._buffer.append(line) self.clear() - def clear(self, fill=' '): + def clear(self, fill=" "): for row in self._buffer: for x in range(len(row)): row[x] = fill @@ -27,10 +27,10 @@ class Canvas: def render(self): lines = [] for line in self._buffer: - # Joining by the empty string ('') smooshes all of the + # Joining by the empty string ("") smooshes all of the # individual characters together as one line. - lines.append(''.join(line)) - return '\n'.join(lines) + lines.append("".join(line)) + return "\n".join(lines) def put(self, s, x, y): # In an effort to avoid distorting the drawn image, only write the @@ -40,68 +40,68 @@ class Canvas: def draw_gallows(canvas): for i in range(12): - canvas.put('X', 0, i) + canvas.put("X", 0, i) for i in range(7): - canvas.put('X', i, 0) - canvas.put('X', 6, 1) + canvas.put("X", i, 0) + canvas.put("X", 6, 1) def draw_head(canvas): - canvas.put('-', 5, 2) - canvas.put('-', 6, 2) - canvas.put('-', 7, 2) - canvas.put('(', 4, 3) - canvas.put('.', 5, 3) - canvas.put('.', 7, 3) - canvas.put(')', 8, 3) - canvas.put('-', 5, 4) - canvas.put('-', 6, 4) - canvas.put('-', 7, 4) + canvas.put("-", 5, 2) + canvas.put("-", 6, 2) + canvas.put("-", 7, 2) + canvas.put("(", 4, 3) + canvas.put(".", 5, 3) + canvas.put(".", 7, 3) + canvas.put(")", 8, 3) + canvas.put("-", 5, 4) + canvas.put("-", 6, 4) + canvas.put("-", 7, 4) def draw_body(canvas): for i in range(5, 9, 1): - canvas.put('X', 6, i) + canvas.put("X", 6, i) def draw_right_arm(canvas): for i in range(3, 7): - canvas.put('\\', i - 1, i) + canvas.put("\\", i - 1, i) def draw_left_arm(canvas): - canvas.put('/', 10, 3) - canvas.put('/', 9, 4) - canvas.put('/', 8, 5) - canvas.put('/', 7, 6) + canvas.put("/", 10, 3) + canvas.put("/", 9, 4) + canvas.put("/", 8, 5) + canvas.put("/", 7, 6) def draw_right_leg(canvas): - canvas.put('/', 5, 9) - canvas.put('/', 4, 10) + canvas.put("/", 5, 9) + canvas.put("/", 4, 10) def draw_left_leg(canvas): - canvas.put('\\', 7, 9) - canvas.put('\\', 8, 10) + canvas.put("\\", 7, 9) + canvas.put("\\", 8, 10) def draw_left_hand(canvas): - canvas.put('\\', 10, 2) + canvas.put("\\", 10, 2) def draw_right_hand(canvas): - canvas.put('/', 2, 2) + canvas.put("/", 2, 2) def draw_left_foot(canvas): - canvas.put('\\', 9, 11) - canvas.put('-', 10, 11) + canvas.put("\\", 9, 11) + canvas.put("-", 10, 11) def draw_right_foot(canvas): - canvas.put('-', 2, 11) - canvas.put('/', 3, 11) + canvas.put("-", 2, 11) + canvas.put("/", 3, 11) PHASES = ( From 3db036438bcc5e68fda8a8b133e844bc2f75e086 Mon Sep 17 00:00:00 2001 From: Daniel Piron Date: Thu, 18 Feb 2021 23:52:58 -0500 Subject: [PATCH 08/10] Move display of title into main function --- 44 Hangman/python/hangman.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/44 Hangman/python/hangman.py b/44 Hangman/python/hangman.py index 4a2417df..76e36a32 100755 --- a/44 Hangman/python/hangman.py +++ b/44 Hangman/python/hangman.py @@ -118,9 +118,6 @@ PHASES = ( ) -print(" " * 32 + "HANGMAN") -print(" " * 15 + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY\n") - words = ["GUM", "SIN", "FOR", "CRY", "LUG", "BYE", "FLY", "UGLY", "EACH", "FROM", "WORK", "TALK", "WITH", "SELF", "PIZZA", "THING", "FEIGN", "FIEND", "ELBOW", "FAULT", "DIRTY", @@ -133,7 +130,7 @@ words = ["GUM", "SIN", "FOR", "CRY", "LUG", "BYE", "FLY", def play_game(guess_target): - """Play the game""" + """Play one round of the game""" wrong_guesses = 0 guess_progress = ["-"] * len(guess_target) guess_list = [] @@ -193,6 +190,8 @@ def play_game(guess_target): def main(): + print(" " * 32 + "HANGMAN") + print(" " * 15 + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY\n") random.shuffle(words) current_word = 0 From e20dc4538bba41264739f901671689d3da5a4879 Mon Sep 17 00:00:00 2001 From: Daniel Piron Date: Thu, 18 Feb 2021 23:54:53 -0500 Subject: [PATCH 09/10] Slightly better name for draw_gallows --- 44 Hangman/python/hangman.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/44 Hangman/python/hangman.py b/44 Hangman/python/hangman.py index 76e36a32..a639ba78 100755 --- a/44 Hangman/python/hangman.py +++ b/44 Hangman/python/hangman.py @@ -38,7 +38,7 @@ class Canvas: self._buffer[y][x] = s[0] -def draw_gallows(canvas): +def init_gallows(canvas): for i in range(12): canvas.put("X", 0, i) for i in range(7): @@ -136,7 +136,7 @@ def play_game(guess_target): guess_list = [] gallows = Canvas() - draw_gallows(gallows) + init_gallows(gallows) guess_count = 0 while True: From b4ce19d57390043735f84ab9eaec2973c8e7a115 Mon Sep 17 00:00:00 2001 From: Daniel Piron Date: Thu, 18 Feb 2021 23:55:53 -0500 Subject: [PATCH 10/10] Add newline to end of file --- 44 Hangman/python/hangman.py | 1 + 1 file changed, 1 insertion(+) diff --git a/44 Hangman/python/hangman.py b/44 Hangman/python/hangman.py index a639ba78..e883bf01 100755 --- a/44 Hangman/python/hangman.py +++ b/44 Hangman/python/hangman.py @@ -214,3 +214,4 @@ def main(): if __name__ == "__main__": main() +