Created
January 27, 2015 19:23
-
-
Save anonymous/cd6314470a5696181c10 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import random | |
import string | |
WORDLIST_FILENAME = "C:\Users\gusta_000\Dropbox\Python Stuff\Hangman\words.txt" | |
def loadWords(): | |
print "Loading word list from file..." | |
inFile = open(WORDLIST_FILENAME, 'r', 0) | |
line = inFile.readline() | |
wordlist = string.split(line) | |
print " ", len(wordlist), "words loaded." | |
return wordlist | |
def chooseWord(wordlist): | |
return random.choice(wordlist) | |
def isWordGuessed(secretWord, lettersGuessed): | |
count = 0 | |
for char in lettersGuessed: | |
if char in secretWord: | |
count += 1 | |
if len(secretWord) == count: | |
return True | |
else: | |
return False | |
def getGuessedWord(secretWord, lettersGuessed): | |
str = "" | |
for char in secretWord: | |
if char in lettersGuessed: | |
str += char | |
else: | |
str += "_" | |
return str | |
def getAvailableLetters(lettersGuessed): | |
import string | |
str = string.ascii_lowercase | |
for char in lettersGuessed: | |
if char in str: | |
str = str.replace(char, "") | |
return str | |
def getSecretWord(): | |
secretWord = chooseWord(loadWords()) | |
return secretWord | |
def guessesTaken(): | |
count = 9 | |
count -= 1 | |
return count | |
def hangman(secretWord): | |
guesses = 8 | |
print "Welcome to the game, Hangman!" | |
print "I am thinking of a word that is " + str(len(secretWord)) + " letters long." | |
lettersGuessed = "" | |
while True: | |
print "--------------------------" | |
print "You have " + str(guesses) + " guesses left." | |
print "Available Letters: " + getAvailableLetters(lettersGuessed) + "." | |
letterGuessed = raw_input("Please guess a letter: ") | |
letterGuessed = letterGuessed.lower() | |
if letterGuessed in secretWord and letterGuessed not in lettersGuessed: | |
lettersGuessed += letterGuessed | |
print "Good guess: " + getGuessedWord(secretWord, lettersGuessed) | |
elif letterGuessed not in secretWord and letterGuessed not in lettersGuessed: | |
print "Oops! That letter is not in my word: " + getGuessedWord(secretWord, lettersGuessed) | |
lettersGuessed += letterGuessed | |
guesses -= 1 | |
elif letterGuessed in lettersGuessed: | |
lettersGuessed += letterGuessed | |
print "Oops! You've already guessed that letter: " + getGuessedWord(secretWord, lettersGuessed) | |
if guesses == 0: | |
print "Sorry, you ran out of guesses. The word was " + secretWord | |
break | |
if isWordGuessed(secretWord, lettersGuessed): | |
print "--------------------------------" | |
print "Congratulations, you won!" | |
break | |
hangman(getSecretWord()) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment