## 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*