/
Z_3.py
executable file
·106 lines (75 loc) · 3.39 KB
/
Z_3.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# coding: utf-8
import sys
sys.path.append(".")
from workshop.en.z_3 import *
from random import randint
DICTIONARY = [
"accommodate", "afterthought", "allegiance", "aloft", "ancestor", "anticipation", "antics",
"apparel", "ascend", "beckon", "brink", "catastrophe", "coax", "compassion", "complexion", "content",
"courteous", "cringe", "derelict", "dignity", "distaste", "dormant", "elaborate", "endure", "enforce",
"exertion", "expanse", "extraordinary", "foliage", "foremost", "frank", "function", "futile", "gaze",
"glimmer", "glimpse", "grimace", "headstrong", "hesitate", "hoist", "immense", "imperceptibly",
"indication", "inscription", "instinctive", "intent", "interior", "jar", "keepsake", "knack",
"literacy", "lurch", "makeshift", "malicious", "massive", "meager", "melancholy", "merge", "mingle",
"minuscule", "momentary", "nape", "nimble", "obstinate", "opt", "overwhelming", "pact", "pandemonium",
"persuade", "phenomenal", "ponder", "quantity", "quaver", "quench", "radiant", "ravine", "recipient",
"resentful", "satisfactory", "sensitive", "sentiment", "shudder", "sickly", "sleek", "solemn", "soothe",
"stagger", "stern", "tantalize", "temptation", "transform", "unscrupulous", "vain", "vengeance",
"violate", "vital", "vivid", "wistful", "yield", "zest"
]
class Hangman:
def reset(self):
self.errorsAmount = 0
self.goodGuesses = []
self.secretWord = ""
def __init__(self):
self.reset()
HANGED = [P_HEAD, P_BODY, P_LEFT_ARM,
P_RIGHT_ARM, P_LEFT_LEG, P_RIGHT_LEG]
def getWord():
return DICTIONARY[randint(0, len(DICTIONARY)-1)]
def updateFigure(errorsAmount):
if (errorsAmount):
drawFigure(HANGED[errorsAmount-1])
def updateMask(secretWord, goodGuesses):
mask = ("_" * len(secretWord))
for i in range(len(secretWord)):
if secretWord[i] in goodGuesses:
mask = mask[:i] + secretWord[i] + mask[i + 1:]
eraseAndDisplay(mask)
def reset(hangman):
redraw()
hangman.reset()
hangman.secretWord = getWord()
print(hangman.secretWord)
updateMask(hangman.secretWord, hangman.goodGuesses)
def connection(hangman):
reset(hangman)
def guess(hangman, guess):
if guess in hangman.secretWord:
hangman.goodGuesses.append(guess)
correct = 0
for i in range(len(hangman.secretWord)):
if hangman.secretWord[i] in hangman.goodGuesses:
correct += 1
updateMask(hangman.secretWord, hangman.goodGuesses)
if correct == len(hangman.secretWord):
warn("You won! Congratulations!")
reset(hangman)
return
else:
hangman.errorsAmount += 1
updateFigure(hangman.errorsAmount)
if hangman.errorsAmount >= len(HANGED):
drawFigure(P_FACE)
warn("\nYou lose!\nErrors: " + str(hangman.errorsAmount) +
"; good guesses: " + str(len(hangman.goodGuesses)) +
"\n\nThe secret word was: '" + hangman.secretWord + "'.")
reset(hangman)
def restart(hangman):
if (hangman.secretWord != ""):
warn("Errors: " + str(hangman.errorsAmount) +
"; good guesses: " + str(len(hangman.goodGuesses)) +
"\n\nThe secret word was: '" + hangman.secretWord + "'.")
reset(hangman)
go(globals())