Skip to content
Snippets Groups Projects
Commit 2049ce55 authored by Benoît Harrault's avatar Benoît Harrault
Browse files

Add initial tip, repeat found letters on new guess

parent 06266e09
No related branches found
No related tags found
1 merge request!8Resolve "Add initial tip, repeat on new guess"
Pipeline #3569 passed
org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true
app.versionName=0.0.19
app.versionCode=19
app.versionName=0.0.20
app.versionCode=20
Add initial tip, repeat found letters on new guess
Propose la première lettre et répète les lettres trouvées à chaque nouvelle ligne
......@@ -10,7 +10,8 @@ class Board {
int maxGuessesCount = myProvider.maxGuessesCount;
int wordLength = int.parse(myProvider.length);
Widget buildCellWidget(String cellValue, String cellTip, bool hasFocus) {
Widget buildCellWidget(
String cellValue, String cellTip, bool hasFocus, String foundLetter) {
Color textColor = Colors.white;
Color focusBorderColor = Colors.yellow.shade700;
Color defaultBorderColor = Colors.white;
......@@ -20,6 +21,11 @@ class Board {
cellImage = cellTip;
}
if ((foundLetter != ' ') && (cellValue == ' ')) {
cellValue = foundLetter;
cellImage = 'good';
}
Image imageWidget = Image(
image: AssetImage('assets/skins/' + skin + '_' + cellImage + '.png'),
fit: BoxFit.fill,
......@@ -84,7 +90,13 @@ class Board {
(lineIndex == guesses.length) &&
(colIndex == word.length);
tableCells.add(TableCell(child: buildCellWidget(cellValue, cellTip, hasFocus)));
String foundLetter = ((!myProvider.gameWon) && (lineIndex == guesses.length))
? myProvider.foundLetters.substring(colIndex, colIndex + 1)
: ' ';
tableCells.add(TableCell(
child: buildCellWidget(cellValue, cellTip, hasFocus, foundLetter),
));
}
tableRows.add(TableRow(children: tableCells));
......
......@@ -31,6 +31,7 @@ class Data extends ChangeNotifier {
List _recentWords = [];
List<String> _guesses = [];
String _currentGuess = '';
String _foundLetters = '';
int _maxGuessesCount = 7;
String get lang => _lang;
......@@ -100,6 +101,16 @@ class Data extends ChangeNotifier {
_currentGuess = '';
}
String get foundLetters => _foundLetters;
void initFoundLetters() {
_foundLetters = _word.substring(0, 1).padRight(_word.length, ' ');
}
void addFoundLetter(String letter, int i) {
_foundLetters = _foundLetters.substring(0, i) + letter + _foundLetters.substring(i + 1);
print('Found a "' + letter + '" => "' + _foundLetters + '".');
}
bool get gameWon => _foundWord;
getParameterValue(String parameterCode) {
......@@ -204,6 +215,7 @@ class Data extends ChangeNotifier {
_recentWords.insert(0, word);
_recentWords = _recentWords.take(_recentWordsCount).toList();
}
initFoundLetters();
notifyListeners();
}
......
......@@ -76,6 +76,7 @@ class GameUtils {
for (int i = 0; i < wordLength; i++) {
if ((tips[i] == '') && (word[i] == candidate[i])) {
print('Found "' + word[i] + '" on the right place: ' + (i + 1).toString());
myProvider.addFoundLetter(word[i], i);
word = replaceCharAt(word, i, ' ');
candidate = replaceCharAt(candidate, i, ' ');
tips[i] = 'good';
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment