-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathguessword
executable file
·130 lines (108 loc) · 3.87 KB
/
guessword
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#-----------------------------------------------------------------------
#~ The MIT License (MIT)
#~
#~ Copyright (c) 2015 James Heald <[email protected]>
#~
#~ Permission is hereby granted, free of charge, to any person obtaining a copy
#~ of this software and associated documentation files (the "Software"), to deal
#~ in the Software without restriction, including without limitation the rights
#~ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
#~ copies of the Software, and to permit persons to whom the Software is
#~ furnished to do so, subject to the following conditions:
#~
#~ The above copyright notice and this permission notice shall be included in all
#~ copies or substantial portions of the Software.
#~
#~ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
#~ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
#~ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
#~ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
#~ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
#~ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
#~ SOFTWARE.
#-----------------------------------------------------------------------
from sys import exit, argv
import argparse, string
from wordfunctions import *
parser = argparse.ArgumentParser()
parser.add_argument("-d", "--dictionary",
help="specify text file for words (must be encoded in hex)")
parser.add_argument("-l", "--level", type=int, choices=[1,2,3],
help="""choose a difficulty level (default is 1):
level 1 is fifteen incorrect guesses,
level 2 is ten incorrect guesses
and level 3 is five incorrect guesses
""")
parser.add_argument("-r", "--random", action="store_true",
help = "choose random word from dictionary")
parser.add_argument("--no-color", action="store_true",
help = "turn off color")
args = parser.parse_args()
if len(argv)==1:
parser.print_help()
exit(1)
def get_word():
if args.dictionary:
word = get_dict(args.dictionary)
else:
if get_rand():
word = get_rand()
else:
print('''
Unable to locate dictionary. Please install the 'requests' module or supply a 'random.txt' file.
''')
exit(0)
return list(word)
msgs = get_msg(args.no_color)
notnew = None
while True:
if notnew:
pass
else:
guesses = ''
word = get_word()
blankword = gen_blank_word(word)
tries = get_tries(args.level)
notnew = True
while True:
letter = input("Guess a letter: ")
if len(letter) == 1:
if letter in string.ascii_letters:
break
print(msgs.err_letter)
else:
print(msgs.err_one)
letter = letter.lower()
if letter in guesses:
print(msgs.err_guess)
continue
else:
guesses += letter
for x in range(0, len(word)):
if letter == word[x]:
blankword[x] = letter
if letter in blankword:
print(msgs.correct)
else:
tries -= 1
print(msgs.incorrect % tries)
print("\nCurrent guesses: %s" % guesses)
print("%s\n\n" % ''.join(blankword))
if blankword == word:
print(msgs.win % ''.join(word))
again = input("Play again? (Y/n) > ")
if again == "y" or again == "Y":
notnew = None
else:
exit(0)
elif tries == 0:
print(msgs.lose % ''.join(word))
again = input("Play again? (Y/n) > ")
if again == "y" or again == "Y":
notnew = None
else:
exit(0)
else:
continue