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

Improve check end game (win/fail)

parent bd3ca3b2
No related branches found
No related tags found
1 merge request!3Resolve "Improve end game detection"
Pipeline #2573 passed
org.gradle.jvmargs=-Xmx1536M org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true android.useAndroidX=true
android.enableJetifier=true android.enableJetifier=true
app.versionName=0.0.4 app.versionName=0.0.5
app.versionCode=4 app.versionCode=5
assets/icons/game_fail.png

3.54 KiB

...@@ -58,6 +58,7 @@ function build_icon_for_skin() { ...@@ -58,6 +58,7 @@ function build_icon_for_skin() {
build_icon ${CURRENT_DIR}/button_back.svg ${BASE_DIR}/assets/icons/button_back.png build_icon ${CURRENT_DIR}/button_back.svg ${BASE_DIR}/assets/icons/button_back.png
build_icon ${CURRENT_DIR}/button_help.svg ${BASE_DIR}/assets/icons/button_help.png build_icon ${CURRENT_DIR}/button_help.svg ${BASE_DIR}/assets/icons/button_help.png
build_icon ${CURRENT_DIR}/button_start.svg ${BASE_DIR}/assets/icons/button_start.png build_icon ${CURRENT_DIR}/button_start.svg ${BASE_DIR}/assets/icons/button_start.png
build_icon ${CURRENT_DIR}/game_fail.svg ${BASE_DIR}/assets/icons/game_fail.png
build_icon ${CURRENT_DIR}/game_win.svg ${BASE_DIR}/assets/icons/game_win.png build_icon ${CURRENT_DIR}/game_win.svg ${BASE_DIR}/assets/icons/game_win.png
build_icon ${CURRENT_DIR}/key.svg ${BASE_DIR}/assets/icons/key.png build_icon ${CURRENT_DIR}/key.svg ${BASE_DIR}/assets/icons/key.png
......
<?xml version="1.0" encoding="UTF-8"?>
<svg enable-background="new 0 0 100 100" version="1.1" viewBox="0 0 93.665 93.676" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect x=".44662" y=".89101" width="92.772" height="91.894" ry="11.689" fill="#d11717" stroke="#fff" stroke-width=".238"/><path d="m71.624 59.304c3.5089 3.5089 3.5089 9.0561 0 12.565-1.6976 1.6976-3.9623 2.6034-6.2261 2.6034s-4.5275-0.90569-6.2261-2.6034l-12.452-12.452-12.452 12.452c-1.6976 1.6976-3.9623 2.6034-6.2261 2.6034s-4.5275-0.90569-6.2261-2.6034c-3.5089-3.5089-3.5089-9.0561 0-12.565l12.452-12.452-12.452-12.452c-3.5089-3.5089-3.5089-9.0561 0-12.565s9.0561-3.5089 12.565 0l12.452 12.452 12.452-12.452c3.5089-3.5089 9.0561-3.5089 12.565 0s3.5089 9.0561 0 12.565l-12.452 12.452z" fill="#e7e7e7" stroke-width=".20213"/></svg>
...@@ -10,7 +10,7 @@ import '../utils/game_utils.dart'; ...@@ -10,7 +10,7 @@ import '../utils/game_utils.dart';
class Game { class Game {
static Container buildGameWidget(Data myProvider) { static Container buildGameWidget(Data myProvider) {
bool gameIsFinished = GameUtils.isGameFinished(myProvider); bool gameIsFinished = myProvider.isGameFinished();
return Container( return Container(
child: Column( child: Column(
...@@ -27,8 +27,8 @@ class Game { ...@@ -27,8 +27,8 @@ class Game {
); );
} }
static TextButton buildRestartGameButton(Data myProvider) { static FlatButton buildRestartGameButton(Data myProvider) {
return TextButton( return FlatButton(
child: Container( child: Container(
child: Image( child: Image(
image: AssetImage('assets/icons/button_back.png'), image: AssetImage('assets/icons/button_back.png'),
...@@ -40,10 +40,15 @@ class Game { ...@@ -40,10 +40,15 @@ class Game {
} }
static Container buildEndGameMessage(Data myProvider) { static Container buildEndGameMessage(Data myProvider) {
String decorationImageAssetName = '';
if (myProvider.gameWon) {
decorationImageAssetName = 'assets/icons/game_win.png';
} else {
decorationImageAssetName = 'assets/icons/game_fail.png';
}
Image decorationImage = Image( Image decorationImage = Image(
image: AssetImage( image: AssetImage(decorationImageAssetName),
'assets/icons/game_win.png'
),
fit: BoxFit.fill fit: BoxFit.fill
); );
......
...@@ -48,7 +48,7 @@ class Parameters { ...@@ -48,7 +48,7 @@ class Parameters {
decorationImage, decorationImage,
Column( Column(
children: [ children: [
TextButton( FlatButton(
child: Container( child: Container(
child: Image( child: Image(
image: AssetImage('assets/icons/button_start.png'), image: AssetImage('assets/icons/button_start.png'),
......
...@@ -26,6 +26,7 @@ class Data extends ChangeNotifier { ...@@ -26,6 +26,7 @@ class Data extends ChangeNotifier {
// Game data // Game data
bool _gameIsRunning = false; bool _gameIsRunning = false;
bool _foundWord = false;
String _word = ''; String _word = '';
final int _recentWordsCount = 20; final int _recentWordsCount = 20;
List _recentWords = []; List _recentWords = [];
...@@ -79,6 +80,7 @@ class Data extends ChangeNotifier { ...@@ -79,6 +80,7 @@ class Data extends ChangeNotifier {
print('wrong'); print('wrong');
} else { } else {
print('ok found'); print('ok found');
_foundWord = true;
} }
addGuess(_currentGuess); addGuess(_currentGuess);
notifyListeners(); notifyListeners();
...@@ -95,6 +97,8 @@ class Data extends ChangeNotifier { ...@@ -95,6 +97,8 @@ class Data extends ChangeNotifier {
_currentGuess = ''; _currentGuess = '';
} }
bool get gameWon => _foundWord;
getParameterValue(String parameterCode) { getParameterValue(String parameterCode) {
switch(parameterCode) { switch(parameterCode) {
case 'lang': { return _lang; } case 'lang': { return _lang; }
...@@ -151,6 +155,16 @@ class Data extends ChangeNotifier { ...@@ -151,6 +155,16 @@ class Data extends ChangeNotifier {
notifyListeners(); notifyListeners();
} }
bool isGameFinished() {
print('isGameFinished');
if (_foundWord || (_guesses.length > (_maxGuessesCount - 1))) {
return true;
}
return false;
}
String get word => _word; String get word => _word;
void updateWord(String word) { void updateWord(String word) {
...@@ -170,6 +184,7 @@ class Data extends ChangeNotifier { ...@@ -170,6 +184,7 @@ class Data extends ChangeNotifier {
_word = ''; _word = '';
_guesses = []; _guesses = [];
_currentGuess = ''; _currentGuess = '';
_foundWord = false;
notifyListeners(); notifyListeners();
} }
......
...@@ -31,7 +31,7 @@ class _HomeState extends State<Home> { ...@@ -31,7 +31,7 @@ class _HomeState extends State<Home> {
if (myProvider.gameIsRunning) { if (myProvider.gameIsRunning) {
menuActions = [ menuActions = [
TextButton( FlatButton(
child: Container( child: Container(
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.circular(4), borderRadius: BorderRadius.circular(4),
......
...@@ -125,15 +125,4 @@ class GameUtils { ...@@ -125,15 +125,4 @@ class GameUtils {
return RandomPickWord.checkWordExists(guessedWord); return RandomPickWord.checkWordExists(guessedWord);
} }
static bool isGameFinished(Data myProvider) {
print('isGameFinished');
if (myProvider.guesses.length > 0) {
if (myProvider.guesses[myProvider.guesses.length - 1] == myProvider.word) {
return true;
}
}
return false;
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment