Skip to content
    Wordle Solver @weichen-huang
    main.py
    VENV.md
    Packager files
    poetry.lock
    pyproject.toml
    Config files
    .replit
    from wordle.evaluators.evaluator import WordleEvaluator
    from wordle.solvers.solver import WordleSolver
    from wordle.logging._logging import logger
    from colored import stylize

    import colored
    import art

    if __name__ == "__main__":
    logo = art.text2art("Entropy Solver")
    print(stylize(logo, colored.fg("cyan")))
    lang = input("[INPUT] Language (en/fr): ").replace(" ", "")
    if lang == "fr":
    solver = WordleSolver("data/words_{}.txt".format(lang), strict_syntax=True, common_words=["comme", "aussi", "faire"])
    else:
    solver = WordleSolver("data/words_{}.txt".format(lang), strict_syntax=True)

    mode = input("[INPUT] Automatic (y/n): ")
    if mode == "y":
    evaluator = WordleEvaluator("data/words_{}.txt".format(lang))
    solved = unsolved = 0
    ans_cnt = 0
    cur_solved = False
    cur_word = ""

    logger("[INFO] Solved: {}, Unsolved = {} ".format(solved, unsolved), "cyan")
    cur_word = evaluator.get_word()
    logger("[INFO] Word: " + cur_word, "green")

    pred = solver.init_cbw
    logger("[INFO] Prediction: " + pred, "green")

    while True:
    if ans_cnt > 6 or cur_solved:
    ans_cnt = 0
    if cur_solved:
    solved += 1
    logger("[INFO] Solved: " + evaluator.get_word() , "light_green")
    else:
    unsolved += 1

    cur_solved = False
    evaluator.increment()
    solver.reset()
    cur_word = evaluator.get_word()
    logger("[INFO] Solved: {}, Unsolved = {} ".format(solved, unsolved), "cyan")

    logger("[INFO] Word: " + cur_word, "green")
    pred = solver.init_cbw

    cur_solved, res = evaluator.evaluate(pred)
    logger("[INFO] Pattern: " + res, "green")

    pred, n = solver.search(res)
    logger("[INFO] Prediction: {}".format(pred), "green")
    ans_cnt += 1
    elif mode == "n":
    solver.printExample()
    logger("[INFO] Commands:")
    logger("[INFO] !quit - exits the solver", "red")
    logger("[INFO] !reset - resets cache for new game", "red")
    logger("[INFO] Recommended initial word: " + solver.init_cbw, "green")
    while True:
    p = input("[INPUT] Word pattern: ")
    if p == "!quit":
    break
    if p == "!reset":
    solver.reset()
    continue
    rec, n = solver.search(p)
    logger("[INFO] {} words left. Recommended: {}".format(n, rec), "green")
    else:
    logger("[ERR] Choice invalid", "red")

    logger("[INFO] Exiting", "red")