## Notes - https://thecoconutmama.com/5-letter-foods-listed-with-pictures-facts/ - https://wordslibrary.com/5-letter-food-words/ - https://www.listchallenges.com/5-letter-foods - https://uppolice.org/5-letter-food-words/ ## Layout and Design It looks like the height and width of the letters, keys, and boxes are scaled to device size. ### Height - 6 guesses - 3 rows of keys - Width is dependent on the device - Only the first and last rows of the keyboard are scaled to fit - The rows of guesses ## Evaluation Logic The rules for evaluating if a *GUESS* matches the *TARGET* seems to be the following: - *INCORRECT*: `!TARGET.contains(GUESS[i])` - *CORRECT*: `GUESS[i] = TARGET[i]` - *WRONG POSITION*: See below ### Wrong Position If there are no duplicate letters, then the *WRONG POSITION* state is evaluated as the following: - `TARGET.contains(GUESS[i]) && TARGET[i] !== GUESS[i]` Otherwise let us consider this scenario: - *TARGET* = BREAD - *GUESS* = PASTA Then: - *P* is *INCORRECT* because `!BREAD.contains(P)` - *A* is *WRONG POSITION* because `BREAD.contains(A) && idx of A in BREAD !== PASTA[i]` - S is *INCORRECT* - T is *INCORRECT* - A is *INCORRECT* because that is an extra A and the first one is *WRONG POSITION*