keyboardRow function
Generates a single row for keyboard.
Implementation
Iterable<String> keyboardRow(
Iterable<String> letters,
String Function(String) close,
String Function(String) hit,
String Function(String) miss, {
Iterable<Letter> hits = const <Letter>[],
Iterable<Letter> misses = const <Letter>[],
Iterable<Letter> closes = const <Letter>[],
}) sync* {
for (final letter in letters) {
if (hits.any((hit) => hit.character == letter)) {
yield hit(letter);
} else if (misses.any((miss) => miss.character == letter)) {
yield miss(letter);
} else if (closes.any((close) => close.character == letter)) {
yield close(letter);
} else {
yield letter;
}
}
}