diff --git a/wordle.py b/wordle.py new file mode 100644 index 0000000..0d3f293 --- /dev/null +++ b/wordle.py @@ -0,0 +1,210 @@ +from colored import bg, fg, attr +from datetime import date +from getch import getch +import possible + +colors = [bg("white")+fg("black"), bg("dark_gray")+fg("white"),bg("light_yellow")+fg("dark_gray"),bg("green")+fg("white")] +keycolors = [fg("white")+bg("black"), fg("dark_gray")+bg("black"),fg("light_yellow")+bg("black"),fg("green")+bg("black")] +reset = bg("black")+fg("white") + +class Wordle: + def check(self): + word=self.curGuess.upper() + if word.lower() not in possible.guesses and word.lower() not in possible.answers: + return False + else: + turn=self.turn + self.guesses[turn][1] = word + processed=[] + for i,letter in enumerate(word): + if letter == self.answer[i]: + self.guesses[turn][0][i] = 3 + self.guessedKeys[letter] = 3 + processed.append(letter) + for i,letter in enumerate(word): + if letter in self.answer and processed.count(letter)0: + move("r",x) + if y>0: + move("d",y) +def putCursorInside(guess,letter): + row = guess * 4 + 1; + col = 48 + letter * 6; + placeCursor(col,row); + put(colors[0]) + +def main(): + cursorLocation = 0 + print(reset+"\033c") + screen=fg('green')+''' + ████████████████████████████████████████ + █▄─█▀▀▀█─▄█─▄▄─█▄─▄▄▀█▄─▄▄▀█▄─▄███▄─▄▄─█ + ██─█─█─█─██─██─██─▄─▄██─██─██─██▀██─▄█▀█ + ▀▀▄▄▄▀▄▄▄▀▀▄▄▄▄▀▄▄▀▄▄▀▄▄▄▄▀▀▄▄▄▄▄▀▄▄▄▄▄▀ + clone by xereeto + original by josh wardle'''+fg('white')+''' + ---------------------------------------- + Guess the WORDLE in 6 tries. + Each guess must be a valid 5 letter word. + Press the enter button to submit. + + After each guess, the color of the tiles + will change to show how close your guess + was to the word. + ---------------------------------------- + Keys: + q w e r t y u i o p + a s d f g h j k l + z x c v b n m + ---------------------------------------- + Game: XXX + ''' + import time + goHome() + print(screen,end="") + goHome() + w = Wordle() + while w.turn<6 and not w.wonGame(): + turnOver = False + w.curGuess="" + prevchar = 0 + char = 0 + w.placeCursor() + while not turnOver: + try: + char = getch().upper() + except OverflowError: + pass + prevchar = ord(char) + if char>="A" and char <="Z" and prevchar !=91: + if len(w.curGuess)<5: + put(char) + w.curGuess+=char + w.updateError() + w.placeCursor() + if ord(char)==127: # backspace + if len(w.curGuess)>0: + if len(w.curGuess)==5: + put(" ") + w.curGuess=w.curGuess[:-1] + w.placeCursor() + else: + w.curGuess=w.curGuess[:-1] + w.placeCursor() + put(" ") + move("l",1) + w.updateError(); + if ord(char)==10: # enter + if len(w.curGuess)<5: + w.updateError("Use all 5 letters!") + elif w.check(): + turnOver=True + else: + w.updateError("You have to enter a real word!") + if w.wonGame(): + w.updateError("You won!") + else: + w.updateError("You lost :(") + time.sleep(2) + + + + + +try: + main() +except KeyboardInterrupt: + pass +finally: + print("\033c"+reset+"Goodbye!")