59 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from hangmantui import hangman, clear
 | |
| from userInput import ask_word_in_dictionary, ask_letter
 | |
| 
 | |
| 
 | |
| def hangman_start(score: int):
 | |
|     """start the hangman """
 | |
|     life = 10
 | |
|     choosed_word = ask_word_in_dictionary()
 | |
|     found_letters = '*' * len(choosed_word)
 | |
|     not_in_word = ''
 | |
|     while life > 0:
 | |
|         draw(life, found_letters)
 | |
|         in_letter = ask_letter(not_in_word)
 | |
|         if in_letter in choosed_word:
 | |
|             found_letters = unhide_letters(choosed_word, in_letter, found_letters)
 | |
|         else:
 | |
|             not_in_word += in_letter
 | |
|             life -= 1
 | |
| 
 | |
|         if found_letters == choosed_word:
 | |
|             clear()
 | |
|             print('CONGRATS!! the word was: ', choosed_word)
 | |
|             score += len(list(dict.fromkeys(choosed_word[:]))) + life - len(not_in_word)
 | |
|             break
 | |
| 
 | |
|     return score
 | |
| 
 | |
| 
 | |
| def unhide_letters(choosed_word, letter, found_letters):
 | |
|     """take a letter and unhide it in the found letters
 | |
|     :choosed_word: the original word
 | |
|     :letter: the letter to unhide
 | |
|     :found_letters: the current found letter
 | |
|     :returns: found letter with unhiden letters
 | |
|     """
 | |
|     ret = ''
 | |
|     for i in range(len(choosed_word)):
 | |
|         if letter in choosed_word[i]:
 | |
|             ret += letter
 | |
|         else:
 | |
|             ret += found_letters[i]
 | |
|     return ret
 | |
| 
 | |
| 
 | |
| def draw(life, word):
 | |
|     """draw the main screen with hangman, life remaining and word with * on unknown letters
 | |
|     :life: int of life remaining
 | |
|     :word: current word with * on unknown letters and other letters on found
 | |
|     """
 | |
|     clear()
 | |
|     print(life)
 | |
|     hangman(life)
 | |
|     print(word)
 | |
| 
 | |
| 
 | |
| if __name__ == "__main__":
 | |
|     print("your score is", hangman_start(0))
 | |
| 
 |