-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwordle.py
61 lines (51 loc) · 1.58 KB
/
wordle.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
import random
words = (
"awake",
"blush",
"focal",
"evade",
"serve",
"model"
)
class Wordle:
def __init__(self):
self.word = random.choice(words)
self.num_guesses = 0
self.riddles = {
0: [" "]*5,
1: [" "]*5,
2: [" "]*5,
3: [" "]*5,
4: [" "]*5,
5: [" "]*5,
}
def draw_board(self):
for guess in self.riddles.values():
print(" | ".join(guess))
print("==================")
def get_user_input(self):
user_guess = input("enter a 5 letter word: ")
while len(user_guess) != 5:
user_guess = input("not valid, enter a 5 letter word: ")
user_guess = user_guess.lower()
for idx, char in enumerate(user_guess):
if char in self.word:
if char == self.word[idx]:
char = f"[green]{char}[/]"
else:
char = f"[yellow]{char}[/]"
self.riddles[self.num_guesses][idx] = char
self.num_guesses += 1
return user_guess
def play(self):
while True:
self.draw_board()
user_guess = self.get_user_input()
if user_guess == self.word:
self.draw_board()
print(f"You won! The word was {self.word}")
break
if self.num_guesses > 5:
self.draw_board()
print(f"You lost! The word was {self.word}")
break