67 lines
1.4 KiB
Python
67 lines
1.4 KiB
Python
|
# -*- encoding:utf-8 -*-
|
||
|
"""Terminal User Interface for the hangman."""
|
||
|
|
||
|
|
||
|
def clear():
|
||
|
"""Clear the terminal screen."""
|
||
|
print(chr(27) + "[2J")
|
||
|
|
||
|
|
||
|
def hangman(lives):
|
||
|
"""
|
||
|
Display a hangman state on terminal with maximum 10 lives.
|
||
|
|
||
|
lives is the remaining number of lives between 0 and 10. When lives is 0,
|
||
|
the hangman is completed/dead.
|
||
|
"""
|
||
|
# Top
|
||
|
print(" __________")
|
||
|
print(" | / |")
|
||
|
# Head
|
||
|
if lives <= 5:
|
||
|
print(" |/ O")
|
||
|
else:
|
||
|
print(" |/")
|
||
|
# Arms and torso
|
||
|
if lives <= 2:
|
||
|
print(" | /|\\")
|
||
|
elif lives <= 3:
|
||
|
print(" | /|")
|
||
|
elif lives <= 4:
|
||
|
print(" | |")
|
||
|
else:
|
||
|
print(" |")
|
||
|
# Torso
|
||
|
if lives <= 4:
|
||
|
print(" | |")
|
||
|
else:
|
||
|
print(" |")
|
||
|
# Legs
|
||
|
if lives <= 0:
|
||
|
print(" | / \\")
|
||
|
elif lives <= 1:
|
||
|
print(" | /")
|
||
|
else:
|
||
|
print(" |")
|
||
|
# Bottom / Stool
|
||
|
if lives <= 6:
|
||
|
print(" | _")
|
||
|
else:
|
||
|
print(" |)")
|
||
|
if lives <= 7:
|
||
|
print(" /|\\ /|\\")
|
||
|
elif lives <= 8:
|
||
|
print(" /|\\ / \\")
|
||
|
elif lives <= 9:
|
||
|
print(" /|\\ /")
|
||
|
else:
|
||
|
print(" /|\\")
|
||
|
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
for i in range(10, -1, -1):
|
||
|
clear()
|
||
|
print("%i lives left:" % i)
|
||
|
hangman(i)
|
||
|
print("")
|