Advertisement
Guest User

Untitled

a guest
Jun 28th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.76 KB | None | 0 0
  1. # Hangman game
  2. #
  3.  
  4. # -----------------------------------
  5. # Helper code
  6. # You don't need to understand this helper code,
  7. # but you will have to know how to use the functions
  8. # (so be sure to read the docstrings!)
  9.  
  10. import random
  11.  
  12. WORDLIST_FILENAME = '/Users/danielmontenegro/Documents/MITx6.00.1/Pset3 Hangman/words.txt'
  13.  
  14.  
  15. def loadWords():
  16. """
  17. Returns a list of valid words. Words are strings of lowercase letters.
  18.  
  19. Depending on the size of the word list, this function may
  20. take a while to finish.
  21. """
  22. print("Loading word list from file...")
  23. # inFile: file
  24. inFile = open(WORDLIST_FILENAME, 'r')
  25. # line: string
  26. line = inFile.readline()
  27. # wordlist: list of strings
  28. wordlist = line.split()
  29. print(" ", len(wordlist), "words loaded.")
  30. return wordlist
  31.  
  32.  
  33. def chooseWord(wordlist):
  34. """
  35. wordlist (list): list of words (strings)
  36.  
  37. Returns a word from wordlist at random
  38. """
  39. return random.choice(wordlist)
  40.  
  41.  
  42. # end of helper code
  43. # -----------------------------------
  44.  
  45. # Load the list of words into the variable wordlist
  46. # so that it can be accessed from anywhere in the program
  47. wordlist = loadWords()
  48.  
  49.  
  50. def isWordGuessed(secretWord, lettersGuessed):
  51. '''
  52. secretWord: string, the word the user is guessing
  53. lettersGuessed: list, what letters have been guessed so far
  54. returns: boolean, True if all the letters of secretWord are in lettersGuessed;
  55. False otherwise
  56. '''
  57. # FILL IN YOUR CODE HERE...
  58. # FILL IN YOUR CODE HERE...
  59. for char in secretWord:
  60. if char not in lettersGuessed:
  61. return False
  62. return True
  63.  
  64.  
  65. def getGuessedWord(secretWord, lettersGuessed):
  66. '''
  67. secretWord: string, the word the user is guessing
  68. lettersGuessed: list, what letters have been guessed so far
  69. returns: string, comprised of letters and underscores that represents
  70. what letters in secretWord have been guessed so far.
  71. '''
  72. # FILL IN YOUR CODE HERE...
  73. word = ''
  74. for char in secretWord:
  75. if char in lettersGuessed:
  76. word = word + char
  77. else:
  78. word = word + '_ '
  79. return word
  80.  
  81.  
  82. def getAvailableLetters(lettersGuessed):
  83. '''
  84. lettersGuessed: list, what letters have been guessed so far
  85. returns: string, comprised of letters that represents what letters have not
  86. yet been guessed.
  87. '''
  88. # FILL IN YOUR CODE HERE...
  89. import string
  90. alphabet = string.ascii_lowercase
  91. remaining = alphabet
  92. for char in lettersGuessed:
  93. remaining = remaining.replace(char, '')
  94.  
  95. ''.join(remaining)
  96. return remaining
  97.  
  98.  
  99. def hangman(secretWord):
  100. '''
  101. secretWord: string, the secret word to guess.
  102.  
  103. Starts up an interactive game of Hangman.
  104.  
  105. * At the start of the game, let the user know how many
  106. letters the secretWord contains.
  107.  
  108. * Ask the user to supply one guess (i.e. letter) per round.
  109.  
  110. * The user should receive feedback immediately after each guess
  111. about whether their guess appears in the computers word.
  112.  
  113. * After each round, you should also display to the user the
  114. partially guessed word so far, as well as letters that the
  115. user has not yet guessed.
  116.  
  117. Follows the other limitations detailed in the problem write-up.
  118. '''
  119. # FILL IN YOUR CODE HERE...
  120. print("Welcome to the game Hangman!")
  121. print('I am thinking of a word that is ' , len(secretWord) ,' letters long.')
  122. guesses = 8
  123. lettersGuessed = []
  124. while guesses < 0 or isWordGuessed(secretWord, lettersGuessed) == False:
  125.  
  126. print("You have", int(guesses),'guesses left.')
  127. print(getAvailableLetters(lettersGuessed))
  128. letter =input("Please guess a letter:")
  129. if letter in secretWord:
  130. lettersGuessed = lettersGuessed.append(input)
  131. print('Good guess: ' + getGuessedWord(secretWord, lettersGuessed))
  132. if isWordGuessed(secretWord, lettersGuessed) == True:
  133. break
  134. elif letter in lettersGuessed:
  135. print(str('Ooops! You have already guessed that letter: ') + getGuessedWord(secretWord, lettersGuessed))
  136.  
  137. else:
  138. lettersGuessed = lettersGuessed.append(input)
  139. print('Ooops! That letter is not in my word:', getGuessedWord(secretWord, lettersGuessed))
  140. guesses -= 1
  141. if guesses == 0:
  142. print('Sorry, you ran out of guesses. The word was' , secretWord)
  143. else:
  144. print('Congratulations, you won!')
  145.  
  146. # When you've completed your hangman function, uncomment these two lines
  147. # and run this file to test! (hint: you might want to pick your own
  148. # secretWord while you're testing)
  149.  
  150. secretWord = chooseWord(wordlist).lower()
  151. hangman(secretWord)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement