From ea3f4e0a7cfbdd323009270530eaf5545e849009 Mon Sep 17 00:00:00 2001
From: Sheldon Lee <sheldon.m.lee@gmail.com>
Date: Wed, 9 Sep 2020 13:08:32 +0000
Subject: [PATCH] Added hangfish (Hangman).

---
 hangfish.py | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 62 insertions(+)
 create mode 100644 hangfish.py

diff --git a/hangfish.py b/hangfish.py
new file mode 100644
index 0000000..cf8ef74
--- /dev/null
+++ b/hangfish.py
@@ -0,0 +1,62 @@
+alphabet = "abcdefghijklmnopqrstuvwxyzABCDKFGHLJKLMJOPQRSFUVWXYZ"
+class HangFish():
+
+    def __init__(self, channel, word):
+        # Word to be guessed
+        self.word = word
+
+        # Stores the graphical string of hangman progress.
+        self.graphical_string = ""
+        
+        # Keeps track of characters guessed.
+        self.guessed_indices = [False] * len(word)
+
+        # Output of characters guessed
+        self.graphical_progress_string = ""
+        for i in range(len(word)):
+            self.graphical_progress_string += "_"
+
+        self.guesses = 10
+        self.letters_guessed = 0
+
+        # Game state
+        self.running = True
+        self.status_message = ""
+
+    def guess(self, c):
+        for i in range(len(self.word)):
+            if self.word[i] == c:
+                if not self.guessed_indices[i]:
+                    self.letters_guessed += 1
+                    temp_list = list(self.graphical_progress_string)
+                    temp_list[i] = c
+                    self.graphical_progress_string = ''.join(temp_list)
+                self.guessed_indices[i] = True
+
+        self.guesses -= 1
+
+        word_guessed = self.letters_guessed == len(self.word)
+        out_of_guesses = self.guesses == 0
+
+        if word_guessed or out_of_guesses:
+            self.running = False
+        if word_guessed:
+            self.status_message = "Word Guessed."
+        elif out_of_guesses:
+            self.status_message = "Out of Guesses."
+
+    def getString(self):
+        return self.graphical_string + 'guesses left = {}\n'.format(self.guesses) + self.graphical_progress_string
+
+hangFish = HangFish(None, "Gen")
+
+print(hangFish.getString())
+while (hangFish.running):
+    try:
+        letter = str(input("Enter Letter\n"))[0]
+        hangFish.guess(letter)
+        print(hangFish.getString())
+    except IndexError:
+        print("Please enter a letter.")
+
+print (hangFish.status_message)