Advertisement
Guest User

Untitled

a guest
Nov 30th, 2015
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.97 KB | None | 0 0
  1. from random import *
  2. from graphics import *
  3. import sys
  4. ##import time
  5.  
  6. def wordList():
  7. wordFile = open('wordlist.txt', 'r').readline()
  8. return wordFile.split()
  9.  
  10. def wordPick():
  11. return list(choice(wordList()))
  12.  
  13. def wordPrint(word, guessList, ):
  14. display = []
  15.  
  16. for character in word:
  17. if character not in guessList:
  18. display.append('_ ')
  19. else:
  20.  
  21. display.append(str(character))
  22.  
  23. return display
  24.  
  25. def playerGuess(guessList, badGuessText, win, guess):
  26. if guess not in guessList and len(guess) == 1:
  27. guessList.append(guess)
  28. else:
  29. badGuessText.draw(win)
  30. playerGuess(guessList)
  31. return guess
  32.  
  33. def guessCounter(word, guessList, guessesRemaining, lastGuess):
  34. if lastGuess not in word:
  35. guessesRemaining -= 1
  36.  
  37. print('\nYou have ' + str(guessesRemaining) + ' guesses remaining\n')
  38.  
  39. return guessesRemaining
  40.  
  41. def doesGameContinue(guessesRemaining, display):
  42. if '_ ' not in display and len(display) > 0:
  43. return False
  44. elif guessesRemaining <= 0:
  45. return False
  46. else:
  47. return True
  48.  
  49.  
  50. def playHangman():
  51. guessesRemaining = 6
  52. word = wordPick()
  53. guessList = []
  54. display = []
  55.  
  56. winWidth = 500
  57. winHeight = 300
  58.  
  59. win = GraphWin('Hangman', winWidth, winHeight)
  60.  
  61. badGuessPoint = Point(winWidth/2 + 100, winHeight/2 + 160)
  62.  
  63. badGuessText = Text(badGuessPoint, 'No repeats or doubles, try again!')
  64.  
  65. while doesGameContinue(guessesRemaining, display) == True:
  66. lastGuess = playerGuess(
  67. guessList, badGuessText, win, hangWindow(
  68. word, guessList, badGuessPoint, badGuessText, winWidth, winHeight, win))
  69. guessesRemaining = guessCounter(word, guessList, guessesRemaining, lastGuess)
  70. doesGameContinue(guessesRemaining, display)
  71. else:
  72. print('Game over!')
  73.  
  74. def hangWindow(word, guessList, badGuessPoint, badGuessText, winWidth, winHeight, win):
  75.  
  76. guessBoxPoint = Point(winWidth/2 + 50, winHeight/2 + 100)
  77. guessBoxTextPoint = Point(winWidth/2 - 30, winHeight/2 + 100)
  78. guessDisplayPoint = Point(winWidth/2, winHeight/2 + 140)
  79. wordDisplayPoint = Point(winWidth/2, winHeight/2 + 120)
  80.  
  81. wordDisplayText = Text(wordDisplayPoint, 'Current Word: ' + ' '.join(wordPrint(word, guessList)))
  82. guessDisplayText = Text(guessDisplayPoint, 'Previous Guesses: ' + ' '.join(guessList))
  83. guessBoxText = Text(guessBoxTextPoint, 'Enter your guess: ')
  84.  
  85. guessBox = Entry(guessBoxPoint, 2)
  86.  
  87. guessBox.draw(win)
  88.  
  89. guessBox.setText('')
  90. badGuessText.draw(win)
  91. badGuessText.undraw()
  92.  
  93. wordDisplayText.draw(win)
  94.  
  95. guessDisplayText.draw(win)
  96.  
  97. guessBoxText.draw(win)
  98.  
  99. win.getMouse()
  100.  
  101. wordDisplayText.undraw()
  102. guessDisplayText.undraw()
  103. guessBoxText.undraw()
  104.  
  105. return guessBox.getText()
  106.  
  107. def main():
  108. playHangman()
  109.  
  110. if __name__ == '__main__':
  111. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement