diff --git a/android/gradle.properties b/android/gradle.properties
index 24d6ef87a0f500a457d89af29b7beaad6d91075f..3c7c2e70ab4354f351f91597ca2347851797bdb8 100644
--- a/android/gradle.properties
+++ b/android/gradle.properties
@@ -1,5 +1,5 @@
 org.gradle.jvmargs=-Xmx1536M
 android.useAndroidX=true
 android.enableJetifier=true
-app.versionName=0.1.9
-app.versionCode=33
+app.versionName=0.1.10
+app.versionCode=34
diff --git a/lib/main.dart b/lib/main.dart
index 900d8ea449b856418ec92a062a27d67c0979c4ee..7c10b0908914b84e0fd7b0303ffc268f66d4d498 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -5,6 +5,7 @@ import 'package:flutter/services.dart';
 import 'provider/data.dart';
 import 'screens/home.dart';
 import 'screens/game_pick_word.dart';
+import 'screens/game_pick_image.dart';
 
 void main() {
   WidgetsFlutterBinding.ensureInitialized();
@@ -35,6 +36,13 @@ class MyApp extends StatelessWidget {
               }
               break;
 
+              case '/game-pick-image': {
+                return MaterialPageRoute(
+                  builder: (context) => GamePickImagePage(),
+                );
+              }
+              break;
+
               default: { print("Unknown menu entry"); }
               break;
             }
diff --git a/lib/screens/game_pick_image.dart b/lib/screens/game_pick_image.dart
new file mode 100644
index 0000000000000000000000000000000000000000..da62fe7ff6c389a22c16d6106a34f7cf60986fe5
--- /dev/null
+++ b/lib/screens/game_pick_image.dart
@@ -0,0 +1,306 @@
+import 'package:flutter/material.dart';
+import 'package:provider/provider.dart';
+
+import '../provider/data.dart';
+import '../utils/random_pick_data.dart';
+
+class GamePickImagePage extends StatelessWidget {
+  int _countWords = 4;
+  int _countImages = 1;
+
+  Future<void> startGame(Data myProvider, String lang) async {
+    await resetGame(myProvider);
+    myProvider.updateLang = lang;
+    await nextWord(myProvider);
+  }
+
+  Future<void> resetGame(Data myProvider) async {
+    myProvider.updateLang = '';
+    myProvider.updateQuestionsCount = 0;
+    myProvider.updateGoodAnswers = 0;
+    myProvider.updateWrongAnswers = 0;
+    myProvider.updateWord = null;
+    myProvider.updateImages = null;
+  }
+
+  Future<void> nextWord(Data myProvider) async {
+    await pickData(myProvider);
+    myProvider.updateQuestionsCount = myProvider.questionsCount + 1;
+  }
+
+  Future<void> pickData(Data myProvider) async {
+    List words;
+    RandomPickData randomPickData;
+    Map word;
+
+    int attempts = 0;
+    do {
+      randomPickData = RandomPickData();
+      await randomPickData.init(myProvider.lang, _countWords, _countImages);
+
+      if (randomPickData.words != null) {
+        words = randomPickData.words;
+        word = words.take(1).toList()[0];
+      }
+      attempts++;
+    } while (attempts < 3);
+
+    if ((words != null) && (words.length == _countWords)) {
+      myProvider.updateWord = word;
+      myProvider.updateImages = words;
+    }
+  }
+
+  Future<void> checkWord(Data myProvider, word) async {
+    if (myProvider.word['key'] == word['key']) {
+      myProvider.updateGoodAnswers = myProvider.goodAnswers + 1;
+      nextWord(myProvider);
+    } else {
+      myProvider.updateWrongAnswers = myProvider.wrongAnswers + 1;
+    }
+  }
+
+  Container _buildScoreItemContainer(String text, Color blockColor) {
+    Color backgroundColor = blockColor;
+
+    // Darken block color to get border color
+    double amount = 0.2;
+    final hsl = HSLColor.fromColor(blockColor);
+    final hslDark = hsl.withLightness((hsl.lightness - amount).clamp(0.0, 1.0));
+    Color borderColor = hslDark.toColor();
+
+    return Container(
+      margin: EdgeInsets.symmetric(horizontal: 15),
+      padding: EdgeInsets.all(5),
+      decoration: BoxDecoration(
+        color: backgroundColor,
+        borderRadius: BorderRadius.circular(4),
+        border: Border.all(
+          color: borderColor,
+          width: 4,
+        ),
+      ),
+      child: Text(
+        text,
+        style: TextStyle(
+          fontSize: 25,
+          fontWeight: FontWeight.w600,
+          color: Colors.black,
+        ),
+      ),
+    );
+  }
+
+  Container _buildScoreContainer(Data myProvider) {
+    return Container(
+      padding: EdgeInsets.all(5),
+      child: Row(
+        mainAxisSize: MainAxisSize.min,
+        mainAxisAlignment: MainAxisAlignment.center,
+        children: [
+          _buildScoreItemContainer(
+            '❓ ' + myProvider.questionsCount.toString(),
+            Colors.white,
+          ),
+          SizedBox(width: 20),
+          _buildScoreItemContainer(
+            '☺️ ' + myProvider.goodAnswers.toString(),
+            Colors.green,
+          ),
+          SizedBox(width: 20),
+          _buildScoreItemContainer(
+            '😟 ' + myProvider.wrongAnswers.toString(),
+            Colors.orange,
+          ),
+        ],
+      ),
+    );
+  }
+
+  Container _buildImageContainer(Data myProvider, Map word) {
+    double imageSize = 130;
+
+    String imageAsset = 'assets/placeholder.png';
+    if ((word['images'] != null) && (word['images'][0] != null)) {
+        imageAsset = 'assets/images/'+word['images'][0];
+    }
+
+    return Container(
+      child: FlatButton(
+        child: Container(
+          decoration: BoxDecoration(
+            borderRadius: BorderRadius.circular(8),
+            border: Border.all(
+              color: Colors.teal,
+              width: 8,
+            ),
+          ),
+          margin: EdgeInsets.all(2),
+          child: Image(
+            image: AssetImage(imageAsset),
+            width: imageSize,
+            height: imageSize,
+            fit: BoxFit.fill
+          ),
+        ),
+        onPressed: () { checkWord(myProvider, word); },
+      ),
+    );
+  }
+
+  Column _buildImageItemsBlock(Data myProvider) {
+    List words = myProvider.images;
+
+    if ((words == null) || (words.length != _countWords)) {
+      return Column();
+    }
+
+    words.sort((a, b) => a['key'].compareTo(b['key']));
+
+    return Column(
+      mainAxisSize: MainAxisSize.min,
+      mainAxisAlignment: MainAxisAlignment.center,
+      children: [
+        Row(
+          mainAxisSize: MainAxisSize.min,
+          mainAxisAlignment: MainAxisAlignment.center,
+          children: [
+            _buildImageContainer(myProvider, words[0]),
+            _buildImageContainer(myProvider, words[1]),
+          ],
+        ),
+        Row(
+          mainAxisSize: MainAxisSize.min,
+          mainAxisAlignment: MainAxisAlignment.center,
+          children: [
+            _buildImageContainer(myProvider, words[2]),
+            _buildImageContainer(myProvider, words[3]),
+          ],
+        )
+      ],
+    );
+  }
+
+  Column _buildTextItemBlock(Data myProvider) {
+    Map word = myProvider.word;
+
+    if (word == null) {
+      return Column();
+    }
+
+    return Column(
+      mainAxisSize: MainAxisSize.min,
+      mainAxisAlignment: MainAxisAlignment.center,
+      children: [
+        Container(
+          margin: EdgeInsets.all(2),
+          decoration: BoxDecoration(
+            borderRadius: BorderRadius.circular(6),
+            border: Border.all(
+              color: Colors.white,
+              width: 6,
+            ),
+          ),
+          child: RaisedButton(
+            color: Colors.green,
+            padding: EdgeInsets.all(15),
+            child: Text(
+              word != null ? word[myProvider.lang] : '',
+              style: TextStyle(
+                fontSize: 30,
+                fontWeight: FontWeight.w600,
+                color: Colors.white,
+              ),
+            ),
+          ),
+        ),
+      ],
+    );
+  }
+
+  Column _buildStartGameBlock(Data myProvider) {
+    return Column(
+      mainAxisSize: MainAxisSize.min,
+      mainAxisAlignment: MainAxisAlignment.center,
+      children: [
+        Container(
+          child: RaisedButton(
+            color: Colors.teal,
+            padding: EdgeInsets.all(35),
+            child: Text(
+              "πŸ‡«πŸ‡·",
+              style: TextStyle(
+                fontSize: 60,
+                color: Colors.black,
+              ),
+            ),
+            onPressed: () => startGame(myProvider, 'fr'),
+          ),
+        ),
+        SizedBox(height: 15),
+        Container(
+          child: RaisedButton(
+            color: Colors.teal,
+            padding: EdgeInsets.all(35),
+            child: Text(
+              "πŸ‡¬πŸ‡§",
+              style: TextStyle(
+                fontSize: 60,
+                color: Colors.black,
+              ),
+            ),
+            onPressed: () => startGame(myProvider, 'en'),
+          ),
+        )
+      ],
+    );
+  }
+
+  @override
+  Widget build(BuildContext context) {
+    Data _myProvider = Provider.of<Data>(context);
+
+    Scaffold pageContent = Scaffold(
+      appBar: AppBar(
+        elevation: 0,
+        actions: <Widget>[
+          IconButton(
+            icon: const Icon(Icons.loop),
+            onPressed: () => resetGame(_myProvider),
+          ),
+        ],
+      ),
+      backgroundColor: Colors.blue,
+      body: Center(
+        child: Column(
+          mainAxisAlignment: MainAxisAlignment.spaceEvenly,
+          crossAxisAlignment: CrossAxisAlignment.center,
+          mainAxisSize: MainAxisSize.max,
+          children: <Widget>[
+            _buildTextItemBlock(_myProvider),
+            SizedBox(height: 2),
+            ((_myProvider.word == null) || (_myProvider.word['key'] == '')) ?
+            _buildStartGameBlock(_myProvider) :
+            _buildScoreContainer(_myProvider),
+            SizedBox(height: 2),
+            _buildImageItemsBlock(_myProvider),
+          ],
+        ),
+      ),
+    );
+
+    return SizedBox.expand(
+      child: Container(
+        child: FittedBox(
+          fit: BoxFit.contain,
+          alignment: Alignment.center,
+          child: SizedBox(
+            height: (MediaQuery.of(context).size.height),
+            width: (MediaQuery.of(context).size.width),
+            child: pageContent,
+          )
+        )
+      )
+    );
+  }
+}
diff --git a/lib/screens/home.dart b/lib/screens/home.dart
index dcda72875720e540257c6d04e12db91ac7599ee8..bbdd1c98ac8aa292c0f840334339f46bdd5b1ae6 100644
--- a/lib/screens/home.dart
+++ b/lib/screens/home.dart
@@ -35,6 +35,23 @@ class Home extends StatelessWidget {
                 );
               },
             ),
+            FlatButton(
+              color: Colors.green,
+              padding: EdgeInsets.all(15),
+              child: Text(
+                'πŸ’¬οΈ ➑️ πŸ–Ό',
+                style: Theme.of(context)
+                    .textTheme
+                    .display1
+                    .copyWith(color: Colors.white),
+              ),
+              onPressed: () {
+                Navigator.pushNamed(
+                  context,
+                  '/game-pick-image',
+                );
+              },
+            ),
           ],
         ),
       ),