$num_of_incorrect_guesses_remaining; $num_of_candidate_words; %list_of_candidate_words; $current_state_of_mystery_word; # 'four' may look like **u* meaning only u is known %hash_of_letters_already_guessed; # For each possible letter to choose from # A hash with the following keys num_of_words_present_in total_count_of_letter_across_candidate_words probability_of_being_right probability_of_being_wrong num_of_candidates_remaining_if_wrong maximum_num_of_candidates_remaining_if_right # Optionally for each possible letter to choose from # A hash describing the count and position possibilities # For instance: e => { '03' => 47, '1' => 99 }, # Means of the remaining candidate words, the letter 'e' # Comes in two flavors, either only in the first position # Or in positions 0 and 3. So if e was chosen and correct # Either 47 words would remain or 99 - max being 99