[gbrainy] Verbal analogies. Initial work



commit bd4b6c01431b52a32d16b930f894807453cd0184
Author: Jordi Mas <jmas softcatala org>
Date:   Fri Aug 28 20:09:00 2009 +0200

    Verbal analogies. Initial work

 configure.in                          |    2 +-
 data/Makefile.am                      |   18 ++-
 data/app-graphics/math-games-32.png   |  Bin 1156 -> 1191 bytes
 data/app-graphics/math-games.svg      |  178 ++++++++++++++++++++++---
 data/app-graphics/verbal-games-32.png |  Bin 0 -> 1762 bytes
 data/app-graphics/verbal-games.svg    |  232 +++++++++++++++++++++++++++++++++
 data/verbal_analogies.xml             |   30 +++++
 po/POTFILES.in                        |    2 +
 src/Defines.cs.in                     |    1 +
 src/Game.cs                           |    3 +-
 src/GameDrawingArea.cs                |   44 ++++---
 src/GameManager.cs                    |   49 ++++++-
 src/GameSession.cs                    |   27 +++--
 src/Makefile.am                       |    3 +
 src/gbrainy.cs                        |   19 +++-
 15 files changed, 546 insertions(+), 62 deletions(-)
---
diff --git a/configure.in b/configure.in
index 7c1d9cb..6f1c797 100644
--- a/configure.in
+++ b/configure.in
@@ -1,4 +1,4 @@
-AC_INIT(gbrainy, 1.12)
+AC_INIT(gbrainy, 1.19)
 AC_CONFIG_SRCDIR(src/gbrainy.cs)
 
 AM_CONFIG_HEADER(config.h)
diff --git a/data/Makefile.am b/data/Makefile.am
index ca4256e..eb0373a 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -2,7 +2,9 @@
 pixmapdir = $(datadir)/pixmaps
 pixmap_DATA = app-graphics/gbrainy.png \
 		app-graphics/gbrainy.svg \
-		app-graphics/gbrainy16.png 
+		app-graphics/gbrainy16.png
+
+analogiesdir = $(pkgdatadir)
 
 hicolordir = $(datadir)/icons/hicolor
 images = $(datadir)/games/gbrainy
@@ -22,7 +24,13 @@ tango_icons = 				\
 	app-graphics/resume-32.png		\
 	app-graphics/endgame-32.png		\
 	app-graphics/allgames-32.png		\
-	app-graphics/pause-32.png
+	app-graphics/pause-32.png \
+	app-graphics/verbal-games.svg \
+	app-graphics/verbal-games-32.png
+
+
+analogies_DATA = \
+	verbal_analogies.xml
 
 game_graphics = \
 	game-graphics/present.svg	\
@@ -41,7 +49,9 @@ install-data-local:
 	$(INSTALL_DATA) $(srcdir)/app-graphics/math-games.svg $(DESTDIR)$(images)/math-games.svg
 	$(INSTALL_DATA) $(srcdir)/app-graphics/logic-games.svg $(DESTDIR)$(images)/logic-games.svg
 	$(INSTALL_DATA) $(srcdir)/app-graphics/memory-games.svg $(DESTDIR)$(images)/memory-games.svg
+	$(INSTALL_DATA) $(srcdir)/app-graphics/verbal-games.svg $(DESTDIR)$(images)/verbal-games.svg
 	$(INSTALL_DATA) $(srcdir)/app-graphics/background.svg $(DESTDIR)$(images)/background.svg
+	$(INSTALL_DATA) $(srcdir)/verbal_analogies.xml $(DESTDIR)$(images)/verbal_analogies.xml
 
 gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor
 
@@ -58,7 +68,9 @@ uninstall-hook:
 	rm -f $(DESTDIR)$(images)/math-games.svg
 	rm -f $(DESTDIR)$(images)/logic-games.svg
 	rm -f $(DESTDIR)$(images)/memory-games.svg
+	rm -f $(DESTDIR)$(images)/verbal-games.svg
 	rm -f $(DESTDIR)$(images)/background.svg
+	rm -f $(DESTDIR)$(images)/verbal_analogies.xml
 	rm -f $(DESTDIR)$(hicolordir)/48x48/apps/gbrainy.png
 	rm -f $(DESTDIR)$(hicolordir)/32x32/apps/gbrainy.png
 	rm -f $(DESTDIR)$(hicolordir)/16x16/apps/gbrainy.png
@@ -66,4 +78,4 @@ uninstall-hook:
 
 noinst_DATA = 	
 
-EXTRA_DIST = $(pixmap_DATA) $(tango_icons) $(game_graphics) $(man_MANS) gbrainy.exe.config
+EXTRA_DIST = $(pixmap_DATA) $(tango_icons) $(game_graphics) $(man_MANS) $(analogies_DATA) gbrainy.exe.config
diff --git a/data/app-graphics/math-games-32.png b/data/app-graphics/math-games-32.png
index d12b2f1..7c91653 100644
Binary files a/data/app-graphics/math-games-32.png and b/data/app-graphics/math-games-32.png differ
diff --git a/data/app-graphics/math-games.svg b/data/app-graphics/math-games.svg
index e07d395..f253ed0 100644
--- a/data/app-graphics/math-games.svg
+++ b/data/app-graphics/math-games.svg
@@ -1,19 +1,159 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20000303 Stylable//EN"
-"http://www.w3.org/TR/2000/03/WD-SVG-20000303/DTD/svg-20000303-stylable.dtd";>
-
-<svg width="1.1122in" height="1.1122in" viewBox="0 0 640 640">
-
-<path style="fill:#8fb735" d="M640,580 l0,6 -1,6 -2,6 -2,5 -2,6 -3,5 -4,4 -3,5 -5,3 -4,4 -5,3 -6,2 -5,2 -6,2 -6,1 -6,0 -520,0 -6,0 -6,-1 -6,-2 -5,-2 -5,-2 -5,-3 -5,-4 -4,-3 -4,-5 -4,-4 -3,-5 -2,-6 -2,-5 -2,-6 -1,-6 0,-6 0,-520 0,-6 1,-6 2,-6 2,-5 2,-5 3,-5 4,-5 4,-4 4,-4 5,-4 5,-3 5,-2 5,-2 6,-2 6,-1 6,0 520,0 6,0 6,1 6,2 5,2 6,2 5,3 4,4 5,4 3,4 4,5 3,5 2,5 2,5 2,6 1,6 0,6 0,520z" />
-<ellipse style="fill:#fff" cx="320" cy="275" rx="299" ry="185" />
-<ellipse style="fill:#fff" cx="197" cy="432" rx="60" ry="59" />
-<ellipse style="fill:#fff" cx="141" cy="522" rx="35" ry="35" />
-<ellipse style="fill:#fff" cx="87" cy="573" rx="25" ry="24" />
-<path style="fill:#8fb735;fill-rule:evenodd" d="M468,273 l85,0 0,25 -85,0 0,-25z M468,311 l85,0 0,25 -85,0 0,-25z " />
-<rect style="fill:#8fb735" x="103" y="292" width="343" height="27" />
-<path style="fill:#8fb735" d="M248,338 l69,0 0,16 -38,39 40,0 0,19 -74,0 0,-18 36,-37 -33,0 0,-19z" />
-<path style="fill:#8fb735" d="M259,186 l22,0 -1,15 -1,6 -2,7 5,-3 7,-3 14,-7 7,21 -16,4 -5,0 -8,1 9,8 11,11 -18,14 -8,-14 -5,-11 -5,11 -8,14 -19,-14 12,-11 4,-4 5,-4 -12,-2 -16,-3 7,-21 14,6 11,7 -2,-13 -2,-15z" />
-<path style="fill:#8fb735" d="M113,185 l34,0 12,21 14,-21 31,0 -25,36 27,39 -33,0 -14,-24 -16,24 -31,0 27,-39 -26,-36z" />
-<path style="fill:#8fb735" d="M341,170 l30,0 16,50 14,-50 28,0 -29,80 -6,12 -2,4 -3,3 -4,3 -5,2 -6,1 -7,0 -8,0 -12,-1 -2,-20 3,1 4,0 7,1 5,-1 3,-2 2,-1 1,-2 1,-2 1,-3 -31,-75z" />
-
-</svg>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   width="1.1122in"
+   height="1.1122in"
+   viewBox="0 0 640 640"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docname="math-games02.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <metadata
+     id="metadata29">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs27">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 50.049 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="100.098 : 50.049 : 1"
+       inkscape:persp3d-origin="50.049 : 33.366 : 1"
+       id="perspective31" />
+  </defs>
+  <sodipodi:namedview
+     inkscape:window-height="744"
+     inkscape:window-width="1280"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     showgrid="false"
+     inkscape:zoom="4.6154769"
+     inkscape:cx="15.383026"
+     inkscape:cy="50.049"
+     inkscape:window-x="-4"
+     inkscape:window-y="-4"
+     inkscape:current-layer="svg2" />
+  <path
+     style="fill:#8fb735"
+     d="M 640,580 L 640,586 L 639,592 L 637,598 L 635,603 L 633,609 L 630,614 L 626,618 L 623,623 L 618,626 L 614,630 L 609,633 L 603,635 L 598,637 L 592,639 L 586,640 L 580,640 L 60,640 L 54,640 L 48,639 L 42,637 L 37,635 L 32,633 L 27,630 L 22,626 L 18,623 L 14,618 L 10,614 L 7,609 L 5,603 L 3,598 L 1,592 L 0,586 L 0,580 L 0,60 L 0,54 L 1,48 L 3,42 L 5,37 L 7,32 L 10,27 L 14,22 L 18,18 L 22,14 L 27,9.9999996 L 32,6.9999996 L 37,4.9999996 L 42,2.9999996 L 48,1.0000003 L 54,3.35665e-07 L 60,3.35665e-07 L 580,3.35665e-07 L 586,3.35665e-07 L 592,1.0000003 L 598,2.9999996 L 603,4.9999996 L 609,6.9999996 L 614,9.9999996 L 618,14 L 623,18 L 626,22 L 630,27 L 633,32 L 635,37 L 637,42 L 639,48 L 640,54 L 640,60 L 640,580 z"
+     id="path4" />
+  <ellipse
+     style="fill:#fff"
+     cx="320"
+     cy="275"
+     rx="299"
+     ry="185"
+     id="ellipse6" />
+  <ellipse
+     style="fill:#fff"
+     cx="197"
+     cy="432"
+     rx="60"
+     ry="59"
+     id="ellipse8" />
+  <ellipse
+     style="fill:#fff"
+     cx="141"
+     cy="522"
+     rx="35"
+     ry="35"
+     id="ellipse10" />
+  <ellipse
+     style="fill:#fff"
+     cx="87"
+     cy="573"
+     rx="25"
+     ry="24"
+     id="ellipse12" />
+  <path
+     style="fill:#8fb735;fill-rule:evenodd"
+     d="M468,273 l85,0 0,25 -85,0 0,-25z M468,311 l85,0 0,25 -85,0 0,-25z "
+     id="path14" />
+  <rect
+     style="fill:#8fb735"
+     x="103"
+     y="292"
+     width="343"
+     height="27"
+     id="rect16" />
+  <path
+     style="fill:#8fb735"
+     d="M248,338 l69,0 0,16 -38,39 40,0 0,19 -74,0 0,-18 36,-37 -33,0 0,-19z"
+     id="path18" />
+  <path
+     style="fill:#8fb735"
+     d="M259,186 l22,0 -1,15 -1,6 -2,7 5,-3 7,-3 14,-7 7,21 -16,4 -5,0 -8,1 9,8 11,11 -18,14 -8,-14 -5,-11 -5,11 -8,14 -19,-14 12,-11 4,-4 5,-4 -12,-2 -16,-3 7,-21 14,6 11,7 -2,-13 -2,-15z"
+     id="path20" />
+  <path
+     style="fill:#8fb735"
+     d="M113,185 l34,0 12,21 14,-21 31,0 -25,36 27,39 -33,0 -14,-24 -16,24 -31,0 27,-39 -26,-36z"
+     id="path22" />
+  <path
+     style="fill:#8fb735"
+     d="M341,170 l30,0 16,50 14,-50 28,0 -29,80 -6,12 -2,4 -3,3 -4,3 -5,2 -6,1 -7,0 -8,0 -12,-1 -2,-20 3,1 4,0 7,1 5,-1 3,-2 2,-1 1,-2 1,-2 1,-3 -31,-75z"
+     id="path24" />
+  <rect
+     style="opacity:1;fill:#8bb63f;fill-opacity:0;fill-rule:nonzero;stroke:none;stroke-width:0.10000000000000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.43434340999999999"
+     id="rect2418"
+     width="609.5238"
+     height="513.93939"
+     x="13.532879"
+     y="88.977943" />
+  <rect
+     style="opacity:1;fill:#8bb63f;fill-opacity:0.9848485;fill-rule:nonzero;stroke:none;stroke-width:0.10000000000000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.43434340999999999"
+     id="rect3190"
+     width="601.2121"
+     height="545.80084"
+     x="18.008657"
+     y="62.33765" />
+  <path
+     style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.13209677;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+     d="M 75.317226,269.57656 C 76.986302,266.76998 84.336113,255.14705 91.650092,243.74784 L 104.94827,223.02201 L 89.674116,200.14139 C 81.273376,187.55708 74.398058,176.63456 74.395681,175.86911 C 74.393305,175.10369 83.249588,174.47743 94.076353,174.47743 L 113.76139,174.47743 L 121.07973,188.37466 C 125.10482,196.01815 128.78382,202.27 129.2553,202.26764 C 129.72679,202.26527 133.87081,196.01155 138.46423,188.3704 L 146.8159,174.47743 L 165.56876,174.47743 C 179.61363,174.47743 184.00559,175.03093 183.0627,176.6821 C 182.37028,177.89469 175.39879,188.87298 167.57053,201.07835 L 153.33731,223.26992 L 159.00241,231.81042 C 166.4296,243.00742 183.22267,269.40429 184.79907,272.35996 C 185.75842,274.15864 181.61271,274.67944 166.33499,274.67944 L 146.63382,274.67944 L 138.37323,258.95881 C 133.82985,250.3125 129.72679,243.2267 129.2553,243.2126 C 128.78382,243.19856 124.15467,250.26093 118.9683,258.90691 L 109.53857,274.62684 L 90.910495,274.65311 L 72.282473,274.67944 L 75.
 317226,269.57656 z"
+     id="path2404" />
+  <path
+     style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.13209677;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+     d="M 240.02203,266.25884 C 234.46405,261.75101 229.48118,257.59152 228.94903,257.01559 C 228.41685,256.43964 233.72748,250.27992 240.75035,243.32732 L 253.51928,230.68623 L 236.15866,227.38583 L 218.79804,224.08536 L 223.03253,210.45457 L 227.26704,196.82376 L 233.55378,199.65988 C 237.0115,201.21973 244.00059,205.03354 249.08509,208.13499 L 258.32964,213.774 L 257.19131,206.06928 C 256.56521,201.83174 255.57424,193.40752 254.98912,187.34883 L 253.9253,176.33302 L 267.00199,176.33302 L 280.07868,176.33302 L 279.08041,187.93048 C 278.53133,194.30907 277.40678,202.40354 276.58141,205.91817 C 274.90739,213.04654 275.55131,214.85703 278.80394,212.16712 C 280.00547,211.17347 286.91875,207.3633 294.16679,203.70004 L 307.34507,197.03964 L 311.54556,210.56097 L 315.74599,224.08225 L 306.93977,226.13661 C 302.09631,227.26654 294.01687,228.74776 288.98543,229.42827 L 279.83737,230.66552 L 291.81705,243.85841 L 303.79672,257.05132 L 299.25059,260.87745 C 296.75024,262.98186 291.93
 808,266.94262 288.55688,269.67917 L 282.40927,274.65474 L 274.84091,258.91654 C 270.67829,250.26053 266.83141,243.16845 266.29228,243.15635 C 265.75314,243.14427 263.63998,247.1007 261.59636,251.94843 C 259.55274,256.79617 256.13624,263.84331 254.00412,267.60873 L 250.12752,274.45497 L 240.02203,266.25884 z"
+     id="path2406" />
+  <path
+     style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.13209677;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+     d="M 366.48044,306.69575 C 362.59745,305.76738 360.71274,299.71126 360.71274,288.16257 L 360.71274,281.89974 L 371.42836,282.21345 C 383.37719,282.56329 388.74519,280.01832 391.55037,272.67361 C 393.09283,268.63504 391.17312,262.30997 377.73662,227.16014 C 369.15382,204.70747 360.66623,182.37077 358.87538,177.52302 L 355.61926,168.70896 L 373.54553,168.70896 L 391.47175,168.70896 L 401.11513,201.31509 C 406.41897,219.24846 411.09991,233.5517 411.51722,233.10004 C 411.93451,232.64839 415.98805,218.1844 420.52507,200.95782 L 428.77414,169.63676 L 445.32115,169.10564 C 454.42206,168.81357 461.86822,168.99321 461.86822,169.50486 C 461.86822,173.49405 425.9698,276.28533 421.02688,286.44968 C 412.49049,304.00337 407.93577,306.74018 386.47236,307.2122 C 377.49094,307.40974 368.49458,307.17733 366.48046,306.69577 L 366.48044,306.69575 z"
+     id="path2408" />
+  <path
+     style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.13209677;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+     d="M 47.887859,349.62927 L 47.887859,332.00114 L 259.62854,332.00114 L 471.36923,332.00114 L 471.36923,349.62927 L 471.36923,367.2574 L 259.62854,367.2574 L 47.887859,367.2574 L 47.887859,349.62927 z"
+     id="path2410" />
+  <path
+     style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.13209677;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+     d="M 235.33274,495.22277 L 235.43115,483.62531 L 262.25177,458.5748 L 289.07239,433.52431 L 264.23379,433.00327 L 239.39518,432.4823 L 239.39518,420.47802 L 239.39518,408.4738 L 291.40576,408.4738 L 343.41634,408.4738 L 343.41634,418.55849 L 343.41634,428.64312 L 315.33061,454.52674 C 299.88348,468.76275 287.24492,480.92499 287.24492,481.55395 C 287.24492,482.18289 300.35158,482.69753 316.37083,482.69753 L 345.49675,482.69753 L 345.49675,494.75887 L 345.49675,506.82023 L 290.36554,506.82023 L 235.23434,506.82023 L 235.33274,495.22277 z"
+     id="path2412" />
+  <path
+     style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.13209677;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+     d="M 486.01375,321.79538 L 486.01375,306.02284 L 538.30599,306.02284 L 590.59823,306.02284 L 590.59823,321.79538 L 590.59823,337.56793 L 538.30599,337.56793 L 486.01375,337.56793 L 486.01375,321.79538 z"
+     id="path2414" />
+  <path
+     style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.13209677;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+     d="M 486.01375,372.82419 L 486.01375,356.12385 L 538.30599,356.12385 L 590.59823,356.12385 L 590.59823,372.82419 L 590.59823,389.52452 L 538.30599,389.52452 L 486.01375,389.52452 L 486.01375,372.82419 z"
+     id="path2416" />
+</svg>
diff --git a/data/app-graphics/verbal-games-32.png b/data/app-graphics/verbal-games-32.png
new file mode 100644
index 0000000..ab7e352
Binary files /dev/null and b/data/app-graphics/verbal-games-32.png differ
diff --git a/data/app-graphics/verbal-games.svg b/data/app-graphics/verbal-games.svg
new file mode 100644
index 0000000..5006438
--- /dev/null
+++ b/data/app-graphics/verbal-games.svg
@@ -0,0 +1,232 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   width="1.1122in"
+   height="1.1122in"
+   viewBox="0 0 640 640"
+   id="svg3280"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docname="verbal-games.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <metadata
+     id="metadata3307">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs3305">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 50.049 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="100.098 : 50.049 : 1"
+       inkscape:persp3d-origin="50.049 : 33.366 : 1"
+       id="perspective3309" />
+    <inkscape:perspective
+       id="perspective2565"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <sodipodi:namedview
+     inkscape:window-height="725"
+     inkscape:window-width="1280"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     showgrid="false"
+     inkscape:zoom="4.6154769"
+     inkscape:cx="53.455641"
+     inkscape:cy="48.424032"
+     inkscape:window-x="0"
+     inkscape:window-y="52"
+     inkscape:current-layer="svg3280" />
+  <ellipse
+     style="fill:#fff"
+     cx="320"
+     cy="275"
+     rx="299"
+     ry="185"
+     id="ellipse3284"
+     inkscape:export-filename="/home/jordi/dev/gbrainy/data/app-graphics/verbal-games-32.png"
+     inkscape:export-xdpi="28.793007"
+     inkscape:export-ydpi="28.793007" />
+  <ellipse
+     style="fill:#fff"
+     cx="197"
+     cy="432"
+     rx="60"
+     ry="59"
+     id="ellipse3286"
+     inkscape:export-filename="/home/jordi/dev/gbrainy/data/app-graphics/verbal-games-32.png"
+     inkscape:export-xdpi="28.793007"
+     inkscape:export-ydpi="28.793007" />
+  <ellipse
+     style="fill:#fff"
+     cx="141"
+     cy="522"
+     rx="35"
+     ry="35"
+     id="ellipse3288"
+     inkscape:export-filename="/home/jordi/dev/gbrainy/data/app-graphics/verbal-games-32.png"
+     inkscape:export-xdpi="28.793007"
+     inkscape:export-ydpi="28.793007" />
+  <ellipse
+     style="fill:#fff"
+     cx="87"
+     cy="573"
+     rx="25"
+     ry="24"
+     id="ellipse3290"
+     inkscape:export-filename="/home/jordi/dev/gbrainy/data/app-graphics/verbal-games-32.png"
+     inkscape:export-xdpi="28.793007"
+     inkscape:export-ydpi="28.793007" />
+  <path
+     style="opacity:1;fill:#785050;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.13209677000000040;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+     d="M 44.051916,637.11774 C 23.688793,630.51518 10.600585,618.32484 3.7169159,599.54977 L 0.41560556,590.54542 L 0.051939796,323.28758 C -0.34162521,34.076597 -0.71029541,49.742016 6.8733088,33.416872 C 10.861437,24.831781 24.831718,10.861437 33.416871,6.8733106 C 49.742015,-0.71029358 34.076595,-0.34162441 323.28757,0.051879472 L 590.54543,0.41560739 L 599.54978,3.7169177 C 618.70297,10.739219 631.51972,24.854358 637.53668,45.552103 C 639.53703,52.433026 639.71587,79.220781 639.39047,323.24181 L 639.03027,593.316 L 634.4141,604.01542 C 628.13822,618.56153 618.56154,628.13817 604.01549,634.41403 L 593.316,639.03028 L 322.49349,639.30925 C 65.973802,639.57345 51.268621,639.45777 44.051916,637.1178 L 44.051916,637.11774 z M 99.756771,593.67723 C 107.96916,589.0616 112.42792,580.62856 111.64531,571.19178 C 110.52391,557.66858 100.98298,549.12895 86.995675,549.12895 C 82.49213,549.12895 77.564877,550.09065 74.946052,551.48076 C 63.320136,557.65204 58.654406,573.0255 64.98757
 1,584.29384 C 71.66445,596.17372 87.642464,600.48578 99.756771,593.67723 L 99.756771,593.67723 z M 153.37255,554.90911 C 159.6544,552.9973 169.91083,543.41786 173.06179,536.51949 C 176.22501,529.59433 176.44919,515.48291 173.50813,508.42302 C 170.6777,501.62868 162.46165,493.1818 155.56712,489.97787 C 151.95754,488.30043 146.88721,487.40285 141.02162,487.40285 C 130.15251,487.40279 123.01574,490.37765 115.80788,497.91275 C 109.1371,504.88642 106.11257,512.39253 106.11257,521.97405 C 106.11257,531.57124 109.14784,539.08809 115.80788,545.98427 C 126.27068,556.81817 137.96823,559.5973 153.3726,554.90911 L 153.37255,554.90911 z M 207.57105,490.10198 C 217.13377,488.2884 228.69409,482.94221 236.00257,476.95342 C 240.46999,473.29272 247.88256,463.80706 252.44413,455.91361 C 252.52669,455.77084 260.99683,456.55229 271.2668,457.65012 C 293.55052,460.03226 342.42693,460.33094 364.30237,458.21856 C 496.23617,445.47852 600.06134,379.8543 616.7493,298.65582 C 632.38494,222.5773 570.8219
 5,148.52505 461.64887,112.09037 C 351.01592,75.168463 216.52927,84.780179 121.88013,136.37346 C 71.533323,163.81759 35.480006,204.23795 24.445354,245.61038 C 20.444046,260.6126 20.149391,288.38573 23.843962,302.28993 C 35.898467,347.65537 71.744933,387.45732 126.25383,416.00001 L 136.83591,421.5411 L 136.85086,430.74582 C 136.89437,457.56708 155.11845,482.00479 179.86003,488.41935 C 193.04111,491.83672 197.11826,492.08427 207.57105,490.10198 L 207.57105,490.10198 z"
+     id="path3832"
+     inkscape:export-filename="/home/jordi/dev/gbrainy/data/app-graphics/verbal-games-32.png"
+     inkscape:export-xdpi="28.793007"
+     inkscape:export-ydpi="28.793007" />
+  <path
+     style="opacity:1;fill:#cc0000;fill-opacity:0;fill-rule:nonzero;stroke:none;stroke-width:4.13209677000000040;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+     d="M 6.8048359,99.490675 C 4.2282528,98.798283 2.2352063,97.0765 0.98868721,94.466132 L 0.19138498,92.796478 L 0.1308062,52.605615 C 0.094157762,28.297548 0.15277576,11.271174 0.2791289,9.5209666 C 0.53024704,6.0425893 0.94155449,5.0185998 2.8690823,3.07305 C 4.5051256,1.4217147 5.8895979,0.67781325 7.9054069,0.36695047 C 9.0700298,0.18735256 20.869016,0.12974421 51.089007,0.15610551 L 92.670149,0.19237696 L 93.771466,0.65767232 C 95.421826,1.3549112 96.27944,1.9465337 97.433752,3.1841263 C 99.034237,4.90004 99.586899,6.3111314 99.77611,9.1648171 C 99.863035,10.475624 99.940947,29.807386 99.949267,52.124289 L 99.96439,92.700471 L 99.208715,94.292909 C 98.132077,96.561688 96.842871,97.905088 94.724888,98.965169 L 92.981016,99.838004 L 50.486123,99.823748 C 13.792428,99.811433 7.8292696,99.765964 6.8048381,99.490675 L 6.8048359,99.490675 z M 15.981948,92.614172 C 16.995486,91.84111 17.417954,90.99945 17.447348,89.694736 C 17.478498,88.312452 16.906932,87.154303 15.847663,
 86.453311 C 15.160529,85.998585 14.740113,85.890964 13.660734,85.893475 C 12.035585,85.897258 11.109126,86.335111 10.38816,87.440128 C 9.0488034,89.492937 9.6756812,91.815873 11.891151,93.009576 C 12.925471,93.566877 14.995181,93.366818 15.981955,92.61417 L 15.981948,92.614172 z M 23.092769,87.027051 C 25.250401,86.567486 26.977659,84.856443 27.369456,82.790498 C 27.815458,80.438743 26.974346,78.379272 25.010855,77.015439 C 24.081614,76.37 23.910841,76.330141 22.074281,76.330141 C 20.320165,76.330141 20.033571,76.389162 19.220773,76.917779 C 16.748255,78.525827 15.865744,81.481359 17.111584,83.981437 C 17.769358,85.301415 19.183945,86.543023 20.497295,86.953134 C 21.670567,87.319508 21.713876,87.320736 23.092763,87.027044 L 23.092769,87.027051 z M 32.774852,76.642015 C 35.162709,76.091526 37.557831,74.402251 38.80866,72.386381 L 39.407268,71.421649 L 40.707242,71.546564 C 41.422227,71.615259 44.932157,71.731689 48.507086,71.805291 C 55.64,71.952145 58.638693,71.733467 63.997
 164,70.675691 C 78.596587,67.793714 90.239349,60.576367 94.719883,51.630635 C 98.798508,43.487372 97.025799,34.942064 89.759832,27.720728 C 81.165899,19.179587 66.328538,14.059046 50.132053,14.044742 C 45.394449,14.040554 42.313457,14.288649 37.892791,15.030295 C 22.393539,17.630566 10.368184,24.803212 5.4083323,34.405979 C 3.7385504,37.638861 3.44132,38.9484 3.44132,43.072472 C 3.44132,46.894153 3.5939066,47.657548 5.000342,50.872316 C 7.2698951,56.059952 12.98288,61.595676 19.646157,65.063699 L 21.311294,65.930349 L 21.316836,67.01366 C 21.324464,68.506893 21.866385,70.672008 22.544224,71.917422 C 23.222572,73.163772 24.647945,74.69465 25.817441,75.432918 C 27.732381,76.641771 30.608112,77.14153 32.774848,76.642018 L 32.774852,76.642015 z"
+     id="path4623"
+     transform="scale(6.3937342,6.3937342)"
+     inkscape:export-filename="/home/jordi/dev/gbrainy/data/app-graphics/verbal-games-32.png"
+     inkscape:export-xdpi="28.793007"
+     inkscape:export-ydpi="28.793007" />
+  <path
+     style="opacity:1;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.13209677;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+     d="M 30.199118,38.610972 C 29.782043,38.430599 29.123931,37.976548 28.736648,37.601972 L 28.032495,36.920924 L 28.032495,37.830074 L 28.032495,38.739226 L 25.865872,38.739226 L 23.699248,38.739226 L 23.699248,30.181063 L 23.699248,21.622901 L 25.974203,21.622901 L 28.249157,21.622901 L 28.249157,24.547843 C 28.249157,26.156561 28.299997,27.472784 28.362134,27.472784 C 28.424275,27.472784 28.860039,27.21805 29.330506,26.906711 C 30.631329,26.045861 32.589515,25.945917 34.150771,26.660684 C 36.220403,27.608194 37.132313,29.383625 37.132313,32.465573 C 37.132313,35.405891 35.977347,37.65037 34.002801,38.547235 C 32.940893,39.029573 31.233198,39.058187 30.199118,38.610975 L 30.199118,38.610972 z M 31.857092,34.960383 C 32.79721,33.89318 32.77376,31.111041 31.816578,30.153859 C 31.035496,29.37277 29.757125,29.438001 29.035356,30.295773 C 27.784976,31.781769 28.091639,34.561956 29.601429,35.427642 C 30.270116,35.811056 31.294687,35.598816 31.857092,34.960383 z"
+     id="path5138"
+     transform="scale(6.3937342,6.3937342)"
+     inkscape:export-filename="/home/jordi/dev/gbrainy/data/app-graphics/verbal-games-32.png"
+     inkscape:export-xdpi="28.793007"
+     inkscape:export-ydpi="28.793007" />
+  <path
+     style="opacity:1;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.13209677;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+     d="M 39.732261,30.181063 L 39.732261,21.622901 L 42.115547,21.622901 L 44.498832,21.622901 L 44.498832,30.181063 L 44.498832,38.739226 L 42.115547,38.739226 L 39.732261,38.739226 L 39.732261,30.181063 z"
+     id="path5140"
+     transform="scale(6.3937342,6.3937342)"
+     inkscape:export-filename="/home/jordi/dev/gbrainy/data/app-graphics/verbal-games-32.png"
+     inkscape:export-xdpi="28.793007"
+     inkscape:export-ydpi="28.793007" />
+  <path
+     style="opacity:1;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.13209677;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+     d="M 49.413553,38.641983 C 48.369462,38.269614 47.76919,37.737132 47.39387,36.850389 C 46.72746,35.275902 47.256339,33.53086 48.658329,32.678259 C 49.041602,32.445174 50.285593,32.048327 51.422754,31.796368 C 54.299198,31.15904 55.975269,30.692129 56.097694,30.494039 C 56.317672,30.138102 55.746002,29.188031 55.183059,28.974001 C 54.277285,28.629627 52.944296,28.94827 52.269707,29.670421 L 51.683826,30.297606 L 49.67318,30.069842 C 48.567335,29.944566 47.62348,29.803005 47.575732,29.755257 C 47.340173,29.519693 48.076948,28.069748 48.718394,27.506549 C 49.892661,26.475529 50.770852,26.281141 54.25442,26.281141 C 57.189348,26.281141 57.474547,26.318017 58.479336,26.827399 C 59.333494,27.260416 59.669078,27.597276 60.098172,28.452367 C 60.604137,29.460655 60.647138,29.806896 60.756773,33.755992 C 60.821284,36.079696 60.953745,38.151529 61.051131,38.360067 C 61.2135,38.707753 61.047595,38.739226 59.052414,38.739226 L 56.876635,38.739226 L 56.608701,37.998284 L 56.340783,37
 .257349 L 55.629476,37.79989 C 54.19952,38.890567 51.236197,39.29202 49.413557,38.641985 L 49.413553,38.641983 z M 54.898624,35.967287 C 55.196535,35.781878 55.557618,35.476609 55.701031,35.288908 C 55.989924,34.910807 56.317975,33.153162 56.133992,32.969178 C 55.940694,32.775874 52.375288,33.944274 52.082714,34.296805 C 51.738758,34.711245 51.732464,35.609766 52.070665,36.017273 C 52.568488,36.617113 53.892074,36.593718 54.898624,35.967285 L 54.898624,35.967287 z"
+     id="path5142"
+     transform="scale(6.3937342,6.3937342)"
+     inkscape:export-filename="/home/jordi/dev/gbrainy/data/app-graphics/verbal-games-32.png"
+     inkscape:export-xdpi="28.793007"
+     inkscape:export-ydpi="28.793007" />
+  <path
+     style="opacity:1;fill:#cc0000;fill-opacity:0;fill-rule:nonzero;stroke:none;stroke-width:4.13209677000000040;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+     d="M 63.78178,30.181063 L 63.78178,21.622901 L 66.056735,21.622901 L 68.331689,21.622901 L 68.331689,24.790219 L 68.331689,27.957538 L 69.090094,27.379078 C 70.207638,26.526683 71.209073,26.17281 72.503739,26.17281 C 74.225771,26.17281 75.449567,26.867152 76.131533,28.231102 C 76.650678,29.269407 76.676331,29.510199 76.748566,34.02682 L 76.823964,38.739226 L 74.419446,38.739226 L 72.014949,38.739226 L 72.014949,34.730973 C 72.014949,31.011602 71.983728,30.69149 71.581624,30.289395 C 70.881285,29.589047 69.774422,29.64415 68.981676,30.418831 C 68.449358,30.939007 68.43885,31.015363 68.372183,34.843682 L 68.304346,38.739226 L 66.043063,38.739226 L 63.78178,38.739226 L 63.78178,30.181063 z"
+     id="path5144"
+     transform="scale(6.3937342,6.3937342)"
+     inkscape:export-filename="/home/jordi/dev/gbrainy/data/app-graphics/verbal-games-32.png"
+     inkscape:export-xdpi="28.793007"
+     inkscape:export-ydpi="28.793007" />
+  <path
+     style="opacity:1;fill:#b02b2c;fill-opacity:0.98431373;fill-rule:nonzero;stroke:none;stroke-width:4.13209677000000040;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+     d="M 6.8048359,99.490675 C 4.2282528,98.798283 2.2352063,97.0765 0.98868721,94.466132 L 0.19138498,92.796478 L 0.1308062,52.605615 C 0.094157762,28.297548 0.15277576,11.271174 0.2791289,9.5209666 C 0.53024704,6.0425893 0.94155449,5.0185998 2.8690823,3.07305 C 4.5051256,1.4217147 5.8895979,0.67781325 7.9054069,0.36695047 C 9.0700298,0.18735256 20.869016,0.12974421 51.089005,0.15610551 L 92.670149,0.19237696 L 93.771466,0.65767232 C 95.421826,1.3549112 96.27944,1.9465337 97.433752,3.1841263 C 99.034237,4.90004 99.586899,6.3111314 99.77611,9.1648171 C 99.863035,10.475624 99.940947,29.807386 99.949267,52.124289 L 99.96439,92.700471 L 99.208715,94.292909 C 98.132077,96.561688 96.842871,97.905088 94.724888,98.965169 L 92.981016,99.838004 L 50.486127,99.823748 C 13.792428,99.811433 7.8292696,99.765964 6.8048381,99.490675 L 6.8048359,99.490675 z M 15.981948,92.614172 C 16.995486,91.84111 17.417954,90.99945 17.447348,89.694736 C 17.478498,88.312452 16.906932,87.154303 15.847663,
 86.453311 C 15.160529,85.998585 14.740113,85.890964 13.660734,85.893475 C 12.035585,85.897258 11.109126,86.335111 10.38816,87.440128 C 9.0488034,89.492937 9.6756812,91.815873 11.891151,93.009576 C 12.925471,93.566877 14.995181,93.366818 15.981955,92.61417 L 15.981948,92.614172 z M 23.092769,87.027051 C 25.250401,86.567486 26.977659,84.856443 27.369456,82.790498 C 27.815458,80.438743 26.974346,78.379272 25.010855,77.015439 C 24.081614,76.37 23.910841,76.330141 22.074281,76.330141 C 20.320165,76.330141 20.033571,76.389162 19.220773,76.917779 C 16.748255,78.525827 15.865744,81.481359 17.111584,83.981437 C 17.769358,85.301415 19.183945,86.543023 20.497295,86.953134 C 21.670567,87.319508 21.713876,87.320736 23.092763,87.027044 L 23.092769,87.027051 z M 32.774852,76.642015 C 35.162709,76.091526 37.557831,74.402251 38.80866,72.386381 L 39.407268,71.421649 L 40.707242,71.546564 C 41.422227,71.615259 44.932157,71.731689 48.507086,71.805291 C 55.639989,71.952145 58.638704,71.733467 63
 .997158,70.675691 C 78.596587,67.793714 90.239349,60.576367 94.719883,51.630635 C 98.798508,43.487372 97.025799,34.942064 89.759832,27.720728 C 81.165899,19.179587 66.328538,14.059046 50.132053,14.044742 C 45.394452,14.040554 42.313457,14.288649 37.892791,15.030295 C 22.393539,17.630566 10.368184,24.803212 5.4083323,34.405979 C 3.7385504,37.638861 3.44132,38.9484 3.44132,43.072472 C 3.44132,46.894153 3.5939066,47.657548 5.000342,50.872316 C 7.2698951,56.059952 12.98288,61.595676 19.646157,65.063699 L 21.311294,65.930349 L 21.316836,67.01366 C 21.324464,68.506893 21.866385,70.672008 22.544224,71.917422 C 23.222572,73.163772 24.647945,74.69465 25.817441,75.432918 C 27.732381,76.641771 30.608112,77.14153 32.774848,76.642018 L 32.774852,76.642015 z"
+     id="path5146"
+     transform="scale(6.3937342,6.3937342)"
+     inkscape:export-filename="/home/jordi/dev/gbrainy/data/app-graphics/verbal-games-32.png"
+     inkscape:export-xdpi="28.793007"
+     inkscape:export-ydpi="28.793007" />
+  <path
+     style="opacity:1;fill:#b02b2c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.13209677000000040;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+     d="M 23.649923,30.289468 L 23.708916,21.622901 L 25.97292,21.622901 L 28.236925,21.622901 L 28.297213,24.531411 L 28.357488,27.439917 L 29.549131,26.888011 C 32.531367,25.506808 35.888008,26.851206 36.700225,29.752159 C 37.044092,30.980357 37.06559,33.821619 36.739621,34.960455 C 36.039663,37.405873 34.309389,38.779414 31.943053,38.768096 C 30.549262,38.761431 30.107074,38.595615 28.844979,37.606359 L 28.032495,36.969515 L 28.032495,37.962706 L 28.032495,38.955888 L 25.811706,38.955962 L 23.590917,38.95604 L 23.649923,30.289468 z M 31.37837,35.251224 C 31.802264,35.001129 32.156539,34.733009 32.165656,34.655405 C 32.174767,34.577805 32.23808,34.319314 32.306335,34.080986 C 32.574715,33.143878 32.418885,30.722719 32.090186,30.722719 C 31.989341,30.722719 31.964078,30.630114 32.034029,30.516927 C 32.209935,30.232304 31.30989,29.762112 30.524112,29.728133 C 30.073753,29.708657 29.660448,29.900891 29.178403,30.354034 C 28.795749,30.713739 28.529226,31.083356 28.586115,31.17
 5403 C 28.643,31.26745 28.590461,31.404005 28.469353,31.478854 C 28.072409,31.724178 28.220463,33.550085 28.700253,34.326401 C 29.176652,35.097232 29.901628,35.705953 30.343275,35.705953 C 30.488696,35.705953 30.95449,35.501326 31.378377,35.251226 L 31.37837,35.251224 z"
+     id="path5148"
+     transform="scale(6.3937342,6.3937342)"
+     inkscape:export-filename="/home/jordi/dev/gbrainy/data/app-graphics/verbal-games-32.png"
+     inkscape:export-xdpi="28.793007"
+     inkscape:export-ydpi="28.793007" />
+  <path
+     style="opacity:1;fill:#b02b2b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.13209677000000040;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+     d="M 39.732261,30.289395 L 39.732261,21.622901 L 42.115547,21.622901 L 44.498832,21.622901 L 44.498832,30.289395 L 44.498832,38.955888 L 42.115547,38.955888 L 39.732261,38.955888 L 39.732261,30.289395 z"
+     id="path5150"
+     transform="scale(6.3937342,6.3937342)"
+     inkscape:export-filename="/home/jordi/dev/gbrainy/data/app-graphics/verbal-games-32.png"
+     inkscape:export-xdpi="28.793007"
+     inkscape:export-ydpi="28.793007" />
+  <path
+     style="opacity:1;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.13209677;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+     d="M 50.054746,38.715984 C 47.933851,38.217843 47.175633,37.165685 47.281747,34.867979 C 47.336827,33.675272 48.588611,32.607664 50.511212,32.113663 C 51.375153,31.89168 52.082014,31.637212 52.082014,31.548181 C 52.082014,31.459148 52.229503,31.442903 52.409766,31.512077 C 52.590024,31.581253 52.86712,31.530287 53.025522,31.398825 C 53.183926,31.267365 53.371194,31.21747 53.441674,31.28795 C 53.512161,31.358433 53.694056,31.339317 53.845899,31.245471 C 53.99774,31.151628 54.321096,31.052492 54.564466,31.025171 C 55.373992,30.93429 56.198598,30.520768 56.198598,30.205685 C 56.198598,29.74409 54.943417,28.772758 54.346935,28.772758 C 53.725121,28.772758 52.332257,29.501476 51.826851,30.09122 C 51.578486,30.381023 51.415138,30.437351 51.311127,30.269057 C 51.217473,30.117534 50.796065,30.063639 50.216086,30.12901 C 49.697535,30.187459 49.326009,30.149957 49.390457,30.045676 C 49.454901,29.941392 49.185018,29.849217 48.790701,29.840841 C 48.096255,29.826088 46.931649,29.468
 691 47.477939,29.437975 C 47.626895,29.429601 47.748767,29.279891 47.748767,29.105292 C 47.748767,28.655748 48.987476,27.300594 49.785055,26.877585 C 50.295072,26.607088 51.305776,26.492253 53.978202,26.401162 C 55.914831,26.335149 57.523554,26.329891 57.55313,26.389473 C 57.5827,26.449055 57.986158,26.691123 58.449692,26.9274 C 60.068877,27.752755 60.327444,28.456522 60.658129,32.938404 C 61.099752,38.923991 61.105041,38.513106 60.586011,38.548197 C 60.377473,38.562295 60.499346,38.64826 60.856839,38.739226 C 61.286595,38.84858 60.717663,38.913305 59.177706,38.930255 C 57.096867,38.953158 56.847766,38.91547 56.840907,38.576729 C 56.831801,38.126795 56.217437,36.985593 56.206277,37.397874 C 56.20205,37.553862 56.112148,37.628058 56.006486,37.562756 C 55.900831,37.497449 55.693071,37.590181 55.544816,37.768819 C 54.963136,38.469698 51.528799,39.062204 50.054741,38.715984 L 50.054746,38.715984 z M 54.580402,35.999149 C 55.224532,35.683754 55.705278,35.350837 55.648729,35.25933
 8 C 55.592178,35.16784 55.653606,35.057078 55.785233,35.013203 C 55.916864,34.969325 56.07397,34.495029 56.134365,33.959208 C 56.232816,33.085704 56.197021,32.981437 55.78806,32.950632 C 55.537202,32.931737 55.331949,33.004653 55.331949,33.11267 C 55.331949,33.220689 55.185702,33.252948 55.006956,33.184357 C 54.828209,33.115763 54.681962,33.173329 54.681962,33.312274 C 54.681962,33.45122 54.584464,33.504646 54.4653,33.430999 C 54.346135,33.357351 54.126765,33.374478 53.97781,33.46906 C 53.828854,33.563644 53.658233,33.651331 53.59865,33.663928 C 53.539068,33.676527 53.124702,33.849948 52.677836,34.049312 C 51.971807,34.364298 51.865352,34.507295 51.865352,35.140677 C 51.865352,35.541558 52.011599,35.990931 52.190345,36.139278 C 52.369092,36.287624 52.515339,36.328812 52.515339,36.230805 C 52.515339,36.132797 52.632336,36.16961 52.775334,36.312608 C 53.133869,36.671147 53.24876,36.651194 54.580406,35.999151 L 54.580402,35.999149 z"
+     id="path5152"
+     transform="scale(6.3937342,6.3937342)"
+     inkscape:export-filename="/home/jordi/dev/gbrainy/data/app-graphics/verbal-games-32.png"
+     inkscape:export-xdpi="28.793007"
+     inkscape:export-ydpi="28.793007" />
+  <path
+     style="opacity:1;fill:#b02b2c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.13209677000000040;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+     d="M 63.78178,30.181063 L 63.78178,21.622901 L 66.056735,21.622901 L 68.331689,21.622901 L 68.331689,24.790219 L 68.331689,27.957538 L 69.090094,27.379078 C 70.207638,26.526683 71.209073,26.17281 72.503739,26.17281 C 74.225771,26.17281 75.449567,26.867152 76.131533,28.231102 C 76.650678,29.269407 76.676331,29.510199 76.748566,34.02682 L 76.823964,38.739226 L 74.419446,38.739226 L 72.014949,38.739226 L 72.014949,34.730973 C 72.014949,31.011602 71.983728,30.69149 71.581624,30.289395 C 70.881285,29.589047 69.774422,29.64415 68.981676,30.418831 C 68.449358,30.939007 68.43885,31.015363 68.372183,34.843682 L 68.304346,38.739226 L 66.043063,38.739226 L 63.78178,38.739226 L 63.78178,30.181063 z"
+     id="path5154"
+     transform="scale(6.3937342,6.3937342)"
+     inkscape:export-filename="/home/jordi/dev/gbrainy/data/app-graphics/verbal-games-32.png"
+     inkscape:export-xdpi="28.793007"
+     inkscape:export-ydpi="28.793007" />
+  <path
+     style="opacity:1;fill:#b02b2c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.13209677000000040;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+     d="M 30.33448,62.687104 C 29.872693,62.522501 29.165832,62.068915 28.763681,61.679135 L 28.032495,60.970443 L 28.032495,61.879593 L 28.032495,62.788745 L 25.865872,62.788745 L 23.699248,62.788745 L 23.699248,54.230583 L 23.699248,45.67242 L 25.974203,45.67242 L 28.249157,45.67242 L 28.249157,48.597362 C 28.249157,51.2894 28.387511,51.958196 28.804755,51.28308 C 29.125754,50.763704 30.762956,50.231845 32.040748,50.231845 C 34.438652,50.231847 36.152603,51.536326 36.839693,53.884296 C 37.321173,55.529634 37.15654,58.400579 36.493805,59.916158 C 35.387488,62.446141 32.854889,63.585503 30.334482,62.687106 L 30.33448,62.687104 z M 31.65913,59.207429 C 32.571161,58.568613 32.872359,56.112137 32.202909,54.772488 C 31.374598,53.114945 29.434578,53.157584 28.665983,54.850222 C 27.982084,56.35635 28.279297,58.478618 29.280602,59.238886 C 29.79381,59.628554 31.08221,59.611515 31.659126,59.207429 L 31.65913,59.207429 z"
+     id="path5156"
+     transform="scale(6.3937342,6.3937342)"
+     inkscape:export-filename="/home/jordi/dev/gbrainy/data/app-graphics/verbal-games-32.png"
+     inkscape:export-xdpi="28.793007"
+     inkscape:export-ydpi="28.793007" />
+  <path
+     style="opacity:1;fill:#b02b2c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.13209677000000040;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+     d="M 39.732261,54.230583 L 39.732261,45.67242 L 42.115547,45.67242 L 44.498832,45.67242 L 44.498832,54.230583 L 44.498832,62.788745 L 42.115547,62.788745 L 39.732261,62.788745 L 39.732261,54.230583 z"
+     id="path5158"
+     transform="scale(6.3937342,6.3937342)"
+     inkscape:export-filename="/home/jordi/dev/gbrainy/data/app-graphics/verbal-games-32.png"
+     inkscape:export-xdpi="28.793007"
+     inkscape:export-ydpi="28.793007" />
+  <path
+     style="opacity:1;fill:#b02b2c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.13209677000000040;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+     d="M 49.70665,62.75103 C 47.51763,62.122965 46.489324,59.913651 47.44684,57.895836 C 47.949366,56.836842 48.916766,56.342484 51.688089,55.72848 C 53.036815,55.429663 54.607116,55.034454 55.177662,54.850237 C 56.079114,54.559179 56.197281,54.454072 56.079649,54.047947 C 55.820033,53.151632 55.113588,52.767308 53.933972,52.880655 C 53.070456,52.963628 52.74725,53.114028 52.306728,53.637877 L 51.757021,54.291558 L 49.644563,54.064621 C 48.482711,53.939804 47.532105,53.76181 47.532105,53.669078 C 47.532105,53.256755 48.034827,52.237044 48.467352,51.772046 C 49.515753,50.644938 50.468697,50.361955 53.54671,50.26371 C 57.836429,50.12679 59.286752,50.635175 60.170751,52.58565 C 60.559095,53.442497 60.639851,54.167025 60.752572,57.805511 C 60.824567,60.129215 60.961027,62.201048 61.055828,62.409586 C 61.213729,62.756943 61.045937,62.788745 59.055192,62.788745 L 56.882188,62.788745 L 56.634105,62.037026 L 56.386009,61.285318 L 55.555012,61.83524 C 53.942634,62.902267 51.543266,6
 3.277977 49.706645,62.751026 L 49.70665,62.75103 z M 55.348942,59.621817 C 55.79017,59.180585 56.017367,58.690809 56.116579,57.966979 C 56.282616,56.755578 56.300798,56.761028 54.190741,57.389428 C 51.870205,58.080512 51.088663,59.202413 52.266389,60.151821 C 52.886003,60.651308 54.617083,60.353675 55.34894,59.621817 L 55.348942,59.621817 z"
+     id="path5160"
+     transform="scale(6.3937342,6.3937342)"
+     inkscape:export-filename="/home/jordi/dev/gbrainy/data/app-graphics/verbal-games-32.png"
+     inkscape:export-xdpi="28.793007"
+     inkscape:export-ydpi="28.793007" />
+  <path
+     style="opacity:1;fill:#b02b2c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.13209677000000040;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+     d="M 63.78178,54.230583 L 63.78178,45.67242 L 66.056735,45.67242 L 68.331689,45.67242 L 68.331689,48.832226 L 68.331689,51.99204 L 69.167161,51.330343 C 70.288345,50.442333 70.939849,50.222329 72.448274,50.222329 C 73.89833,50.222329 74.719263,50.478426 75.446295,51.157576 C 76.500228,52.14209 76.627907,52.81872 76.731536,57.968008 L 76.828536,62.788745 L 74.421742,62.788745 L 72.014949,62.788745 L 72.014949,58.770647 C 72.014949,54.793393 72.009532,54.747136 71.483151,54.220735 C 70.8742,53.611799 70.306566,53.552869 69.427741,54.007338 C 68.505582,54.484199 68.331689,55.315326 68.331689,59.246147 L 68.331689,62.788745 L 66.056735,62.788745 L 63.78178,62.788745 L 63.78178,54.230583 z"
+     id="path5162"
+     transform="scale(6.3937342,6.3937342)"
+     inkscape:export-filename="/home/jordi/dev/gbrainy/data/app-graphics/verbal-games-32.png"
+     inkscape:export-xdpi="28.793007"
+     inkscape:export-ydpi="28.793007" />
+  <path
+     style="opacity:1;fill:#b02b2c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.13209677000000040;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+     d="M 50.132053,38.754427 C 49.714978,38.671029 49.154364,38.483813 48.886245,38.338394 C 48.618125,38.192974 48.398754,38.126173 48.398754,38.189948 C 48.398754,38.253724 48.217688,38.135279 47.996382,37.926742 C 47.775072,37.718204 47.597821,37.498834 47.602479,37.439252 C 47.607133,37.37967 47.506717,36.976704 47.379323,36.543771 C 47.052267,35.432319 47.351894,34.076134 48.096114,33.299335 C 48.506106,32.871403 49.223243,32.503051 50.234966,32.200744 C 51.072097,31.950608 51.854519,31.675258 51.973683,31.58886 C 52.092847,31.502461 52.336592,31.425477 52.515339,31.417783 C 52.983832,31.39762 55.368171,30.718579 55.820497,30.476502 C 56.350193,30.193019 55.967829,29.512327 55.026828,29.063595 C 54.361046,28.746107 54.247233,28.753103 53.306282,29.169331 C 52.752101,29.414469 52.298676,29.723776 52.298676,29.856674 C 52.298676,29.989573 52.200489,30.037622 52.080484,29.963454 C 51.960482,29.889286 51.804485,29.979247 51.733833,30.163362 C 51.632947,30.426249 51.512092,
 30.448199 51.170893,30.265594 C 50.931929,30.137707 50.405435,30.095159 50.000907,30.171049 C 49.545756,30.256438 49.265404,30.222702 49.265404,30.082549 C 49.265404,29.957984 49.046033,29.85474 48.777913,29.853113 C 48.509794,29.851483 48.075494,29.792525 47.812804,29.722093 C 47.354154,29.599117 47.349262,29.571278 47.68977,29.020897 C 47.884788,28.705673 48.294717,28.170942 48.600714,27.8326 C 49.651234,26.671049 50.177305,26.530745 53.968053,26.401162 L 57.479053,26.281141 L 58.5623,26.977048 C 60.198534,28.028218 60.331372,28.432588 60.737765,33.599347 C 60.932504,36.075224 61.018163,38.220157 60.92811,38.365867 C 60.82947,38.525458 60.911977,38.689365 61.135601,38.778112 C 61.339775,38.85914 60.458722,38.932285 59.177706,38.940659 C 57.245049,38.953295 56.848585,38.900568 56.848585,38.630895 C 56.848585,38.452148 56.745333,38.305901 56.619136,38.305901 C 56.492939,38.305901 56.449944,38.208403 56.523592,38.089239 C 56.733923,37.748914 56.418771,37.383279 56.125143,37.6
 26968 C 55.986802,37.741788 55.824856,37.83881 55.765274,37.842575 C 55.705692,37.846341 55.304712,37.996596 54.874209,38.176471 C 54.155577,38.476733 51.616792,38.984106 51.107034,38.929336 C 50.987869,38.916533 50.549128,38.837822 50.132053,38.754425 L 50.132053,38.754427 z M 55.116476,35.654923 C 55.576528,35.367622 56.198598,34.140295 56.198598,33.519943 C 56.198598,33.165704 56.084647,33.098385 55.602777,33.167953 C 55.275075,33.215263 54.860709,33.307432 54.681962,33.372773 C 54.503216,33.438112 53.901534,33.653695 53.344889,33.851846 C 52.788238,34.049996 52.216743,34.351972 52.074886,34.522899 C 51.693929,34.981924 52.00324,35.867503 52.66577,36.214637 C 53.162403,36.474855 53.348726,36.473863 53.985941,36.207617 C 54.393996,36.037117 54.902743,35.788408 55.116483,35.654925 L 55.116476,35.654923 z"
+     id="path5166"
+     transform="scale(6.3937342,6.3937342)"
+     inkscape:export-filename="/home/jordi/dev/gbrainy/data/app-graphics/verbal-games-32.png"
+     inkscape:export-xdpi="28.793007"
+     inkscape:export-ydpi="28.793007" />
+</svg>
diff --git a/data/verbal_analogies.xml b/data/verbal_analogies.xml
new file mode 100644
index 0000000..e696837
--- /dev/null
+++ b/data/verbal_analogies.xml
@@ -0,0 +1,30 @@
+<analogies>
+	<analogy>
+		<_question>Which of the following sports is the odd one?</_question>
+		<_tip>Think of the elements used in the game.</_tip>
+		<_answer>Water polo</_answer>
+		<_answer>Basketball</_answer>
+		<_answer>Tennis</_answer>
+		<_answer correct = "yes">Cycling</_answer>
+		<_rationale>It is the only one that does not use a ball in the game.</_rationale>
+	</analogy>
+	<analogy>
+		<_question>A terrier is to a dog like a?</_question>
+		<_answer correct ="yes">chicken / bird</_answer>
+		<_answer>horse / pony</_answer>
+		<_answer>ant / insect</_answer>
+		<_answer>dog / cat </_answer>
+	</analogy>
+	<analogy>
+		<_question>A restaurant is to a dinner like a park is to?</_question>
+		<_answer correct ="yes">picnic</_answer>
+	</analogy>
+	<analogy>
+		<_question type = "PairOfWords">moratorium / payment</_question>
+		<_answer correct ="yes">reprieve / punishment </_answer>
+		<_answer>amnesty / prisoner</_answer>
+		<_answer>date / meeting</_answer>
+		<_answer>sentence / prison </_answer>
+	</analogy>
+</analogies>
+
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 8f26f65..0ae8b0a 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -11,6 +11,7 @@ src/ColorPalette.cs
 src/Dialogs/CustomGameDialog.cs
 src/Game.cs
 src/GameDrawingArea.cs
+src/GameManager.cs
 src/GameSession.cs
 src/gbrainy.cs
 src/gbrainy.glade
@@ -65,3 +66,4 @@ src/PuzzleGames/PuzzleSquareSheets.cs
 src/PuzzleGames/PuzzleTetris.cs
 src/PuzzleGames/PuzzleTriangles.cs
 src/PuzzleGames/PuzzleTrianglesWithNumbers.cs
+src/VerbalAnalogies.cs
diff --git a/src/Defines.cs.in b/src/Defines.cs.in
index 080f81c..1a5dc2f 100644
--- a/src/Defines.cs.in
+++ b/src/Defines.cs.in
@@ -24,6 +24,7 @@ public class Defines
 	public const string VERSION = "@VERSION@";
 	public const string GNOME_LOCALE_DIR = "@prefix@/share/locale";
 	public const string DATA_DIR = "@prefix@/share/games/gbrainy/";
+	public const string VERBAL_ANALOGIES = "verbal_analogies.xml";
 }
 
 
diff --git a/src/Game.cs b/src/Game.cs
index ae102a6..97dfbe3 100644
--- a/src/Game.cs
+++ b/src/Game.cs
@@ -27,7 +27,8 @@ abstract public class Game
 		None			= 0,
 		LogicPuzzle		= 2,
 		MemoryTrainer		= 4,
-		MathTrainer		= 8
+		MathTrainer		= 8,
+		VerbalAnalogy		= 16,
 	}
 
 	public enum Difficulty
diff --git a/src/GameDrawingArea.cs b/src/GameDrawingArea.cs
index 127c619..34f1a79 100644
--- a/src/GameDrawingArea.cs
+++ b/src/GameDrawingArea.cs
@@ -101,8 +101,9 @@ public class GameDrawingArea : DrawingArea
 
 	private void DrawWelcome (CairoContextEx gr, int area_width, int area_height)
 	{
-		double y = 0.05;
-		const double space = 0.20;
+		double y = 0.03;
+		const double space = 0.17;
+		const double image_size = 0.14;
 
 		gr.Scale (area_width, area_height);
 		gr.DrawBackground ();
@@ -114,27 +115,31 @@ public class GameDrawingArea : DrawingArea
 
 		gr.DrawStringWithWrapping (0.05, y + 0.07, Catalog.GetString ("gbrainy is a brain teaser game and trainer to have fun and to keep your brain trained. It includes:"));
 
-		y = 0.25;
-
-		gr.DrawImageFromFile (Defines.DATA_DIR + "logic-games.svg", rtl ? 0.75 : 0.05, y, 0.15, 0.15);
+		y = 0.22;
+		gr.DrawImageFromFile (Defines.DATA_DIR + "logic-games.svg", rtl ? 0.75 : 0.05, y, image_size, image_size);
 		gr.DrawStringWithWrapping (rtl ? 0.05 : 0.23, y + 0.01, 
-			Catalog.GetString ("Logic puzzles. Designed to challenge your reasoning and thinking skills."), 
+			Catalog.GetString ("Logic puzzles. Challenge your reasoning and thinking skills."), 
 			rtl ? 0.65 : -1);
 
 		y += space;
+		gr.DrawImageFromFile (Defines.DATA_DIR + "math-games.svg", rtl ? 0.75 : 0.05, y, image_size, image_size);
+		gr.DrawStringWithWrapping (rtl ? 0.05 : 0.23, y + 0.01, 
+			Catalog.GetString ("Mental calculation. Arithmetical operations that test your mental calculation abilities."),
+			rtl ? 0.65 : -1);
 
-		gr.DrawImageFromFile (Defines.DATA_DIR + "math-games.svg", rtl ? 0.75 : 0.05, y, 0.15, 0.15);
+		y += space;
+		gr.DrawImageFromFile (Defines.DATA_DIR + "memory-games.svg", rtl ? 0.75 : 0.05, y, image_size, image_size);
 		gr.DrawStringWithWrapping (rtl ? 0.05 : 0.23, y + 0.01, 
-			Catalog.GetString ("Mental calculation. Based on arithmetical operations that test your mental calculation abilities."),
+			Catalog.GetString ("Memory trainers. To prove your short term memory."),
 			rtl ? 0.65 : -1);
 
 		y += space;
-		gr.DrawImageFromFile (Defines.DATA_DIR + "memory-games.svg", rtl ? 0.75 : 0.05, y, 0.15, 0.15);
+		gr.DrawImageFromFile (Defines.DATA_DIR + "verbal-games.svg", rtl ? 0.75 : 0.05, y, image_size, image_size);
 		gr.DrawStringWithWrapping (rtl ? 0.05 : 0.23, y + 0.01, 
-			Catalog.GetString ("Memory trainers. To prove and enhance your short term memory."),
+			Catalog.GetString ("Verbal analogies. Challenge your verbal aptitude."),
 			rtl ? 0.65 : -1);
 
-		gr.DrawStringWithWrapping (0.05, y + 0.2,  Catalog.GetString ("Use the Settings to adjust the difficulty level of the game."));
+		gr.DrawStringWithWrapping (0.05, y + 0.17,  Catalog.GetString ("Use the Settings to adjust the difficulty level of the game."));
 		gr.Stroke ();
 	}
 
@@ -162,8 +167,9 @@ public class GameDrawingArea : DrawingArea
 
 	private void DrawGraphicBar (CairoContextEx gr, double x, double y)
 	{
-		const double area_w = 0.8, area_h = 0.28;
+		const double area_w = 0.9, area_h = 0.28;
 		const double bar_w = 0.05, bar_h = area_h - 0.02;
+		const double space_x = 0.09;
 		
 		gr.LineWidth = 0.005;
 
@@ -173,21 +179,25 @@ public class GameDrawingArea : DrawingArea
 		gr.LineTo (x + area_w, y + area_h);
 		gr.Stroke ();
 
-		x = x + 0.1;
+		x = x + space_x;
 		DrawBar (gr, x, y + area_h, bar_w, bar_h, session.TotalScore);
 		gr.DrawTextCentered (x + bar_w / 2, y + area_h + 0.03, Catalog.GetString ("Total"));
 
-		x = x + 0.2;
+		x = x + space_x * 2;
 		DrawBar (gr, x, y + area_h, bar_w, bar_h, session.LogicScore);
 		gr.DrawTextCentered (x + bar_w / 2, y + area_h + 0.03, 	Catalog.GetString ("Logic")); 
 
-		x = x + 0.2;
+		x = x + space_x * 2;
 		DrawBar (gr, x, y + area_h, bar_w, bar_h, session.MathScore);
 		gr.DrawTextCentered (x + bar_w / 2, y + area_h + 0.03, Catalog.GetString ("Calculation"));
 
-		x = x + 0.2;
+		x = x + space_x * 2;
 		DrawBar (gr, x, y + area_h, bar_w, bar_h, session.MemoryScore);
 		gr.DrawTextCentered (x + bar_w / 2, y + area_h + 0.03, Catalog.GetString ("Memory"));
+
+		x = x + space_x * 2;
+		DrawBar (gr, x, y + area_h, bar_w, bar_h, session.VerbalScore);
+		gr.DrawTextCentered (x + bar_w / 2, y + area_h + 0.03, Catalog.GetString ("Verbal"));
 	}
 
 	private void DrawScores (CairoContextEx gr, int area_width, int area_height)
@@ -231,7 +241,7 @@ public class GameDrawingArea : DrawingArea
 		gr.ShowPangoText (String.Format (Catalog.GetString ("Time played {0} (average per game {1})"), session.GameTime, session.TimePerGame));
 		
 		y += 0.1;
-		DrawGraphicBar (gr, x + 0.05, y);
+		DrawGraphicBar (gr, x, y);
 		y += 0.4;
 
 		gr.MoveTo (x, y);
diff --git a/src/GameManager.cs b/src/GameManager.cs
index 1c71845..d49f874 100644
--- a/src/GameManager.cs
+++ b/src/GameManager.cs
@@ -20,7 +20,7 @@
 using System;
 using System.Collections;
 using System.Collections.Generic;
-using Mono.Posix;
+using Mono.Unix;
 
 #if MONO_ADDINS
 using Mono.Addins;
@@ -97,6 +97,11 @@ public class GameManager
 		typeof (MemoryFacts),
 	};
 
+	static Type[] VerbalAnalogiesInternal = new Type[] 
+	{
+		typeof (VerbalAnalogies),
+	};
+
 	bool once;
 	GameSession.Types game_type;
 	ArrayListIndicesRandom list;
@@ -106,6 +111,7 @@ public class GameManager
 	List <Type> LogicPuzzles;
 	List <Type> CalculationTrainers;
 	List <Type> MemoryTrainers;
+	List <Type> VerbalAnalogies;
 	
 	public GameManager ()
 	{
@@ -115,13 +121,14 @@ public class GameManager
 		LogicPuzzles = new List <Type> (LogicPuzzlesInternal);
 		CalculationTrainers = new List <Type> (CalculationTrainersInternal);
 		MemoryTrainers = new List <Type> (MemoryTrainersInternal);
+		VerbalAnalogies = new List <Type> (VerbalAnalogiesInternal);
 		LoadPlugins ();
 
 		if (once == false) {
 			once = true;
-			Console.WriteLine ("Games registered: {0}: {1} logic puzzles, {2} math trainers, {3} memory trainers", 
-				LogicPuzzles.Count + CalculationTrainers.Count + MemoryTrainers.Count,
-				LogicPuzzles.Count, CalculationTrainers.Count, MemoryTrainers.Count);
+			Console.WriteLine (Catalog.GetString ("Games registered: {0}: {1} logic puzzles, {2} math trainers, {3} memory trainers, {4} verbal analogies"), 
+				LogicPuzzles.Count + CalculationTrainers.Count + MemoryTrainers.Count + VerbalAnalogies.Count,
+				LogicPuzzles.Count, CalculationTrainers.Count, MemoryTrainers.Count, VerbalAnalogies.Count);
 		}
 		//GeneratePDF ();
 	}
@@ -150,7 +157,7 @@ public class GameManager
 	// Used from CustomGameDialog only
 	public Type[] CustomGames {
 		get { 
-			Type[] list = new Type [LogicPuzzles.Count + CalculationTrainers.Count + MemoryTrainers.Count];
+			Type[] list = new Type [LogicPuzzles.Count + CalculationTrainers.Count + MemoryTrainers.Count + VerbalAnalogies.Count];
 			int idx = 0;
 
 			for (int i = 0; i < LogicPuzzles.Count; i++, idx++)
@@ -162,6 +169,9 @@ public class GameManager
 			for (int i = 0; i < MemoryTrainers.Count; i++, idx++)
 				list[idx] = MemoryTrainers [i];
 
+			for (int i = 0; i < VerbalAnalogies.Count; i++, idx++)
+				list[idx] = VerbalAnalogies [i];
+
 			return list;
 		}
 		set {
@@ -208,6 +218,13 @@ public class GameManager
 				Console.WriteLine ("Loading external calculation game: {0}", game);
 				CalculationTrainers.Add (game.GetType ());
 			}
+
+			addins = AddinManager.GetExtensionNodes ("/gbrainy/games/verbal");
+			foreach (TypeExtensionNode node in addins) {
+				game = (Game) node.CreateInstance ();
+				Console.WriteLine ("Loading external verbal analogy game: {0}", game);
+				VerbalAnalogies.Add (game.GetType ());
+			}
 		}
 		catch (Exception e)
 		{
@@ -225,20 +242,22 @@ public class GameManager
 		games.Clear ();
 		Random random = new Random ();
 
-		// For all games, 1/3 of the total are logic, 1/3 Memory, 1/3 calculation
+		// For all games, 1/4 of the total are logic, 1/4 Memory, 1/4 calculation, 1/4 verbal analogies
 		if ((game_type & GameSession.Types.AllGames) == GameSession.Types.AllGames) {
 			
-			int idx_cal = 0, idx_mem = 0;
+			int idx_cal = 0, idx_mem = 0, idx_verb = 0;
 			ArrayListIndicesRandom idx_logic = new ArrayListIndicesRandom (LogicPuzzles.Count);
 			ArrayListIndicesRandom idx_memory = new ArrayListIndicesRandom (MemoryTrainers.Count);
 			ArrayListIndicesRandom idx_calculation = new ArrayListIndicesRandom (CalculationTrainers.Count);
+			ArrayListIndicesRandom idx_verbal = new ArrayListIndicesRandom (VerbalAnalogies.Count);
 
 			games.Clear ();
 			idx_memory.Initialize ();
 			idx_logic.Initialize ();
 			idx_calculation.Initialize ();
+			idx_verbal.Initialize ();
 
-			for (int i = 0; i < LogicPuzzles.Count; i++, idx_mem++, idx_cal++) {
+			for (int i = 0; i < LogicPuzzles.Count; i++, idx_mem++, idx_cal++, idx_verb++) {
 
 				if (idx_cal == CalculationTrainers.Count) {
 					idx_cal = 0;
@@ -250,19 +269,27 @@ public class GameManager
 					idx_memory.Initialize ();
 				}
 
+				if (idx_verb == VerbalAnalogies.Count) {
+					idx_verb = 0;
+					idx_verbal.Initialize ();
+				}
+
 				switch (random.Next (3)) {
 				case 0:
 					games.Add (CalculationTrainers [idx_calculation[idx_cal]]);
 					games.Add (LogicPuzzles [idx_logic[i]]);
 					games.Add (MemoryTrainers [idx_memory[idx_mem]]);
+					games.Add (VerbalAnalogies [idx_verbal[idx_verb]]);
 					break;
 				case 1:
 					games.Add (MemoryTrainers [idx_memory[idx_mem]]);
 					games.Add (CalculationTrainers [idx_calculation[idx_cal]]);
+					games.Add (VerbalAnalogies [idx_verbal[idx_verb]]);
 					games.Add (LogicPuzzles [idx_logic[i]]);
 					break;
 				case 2:
 					games.Add (CalculationTrainers [idx_calculation[idx_cal]]);
+					games.Add (VerbalAnalogies [idx_verbal[idx_verb]]);
 					games.Add (MemoryTrainers [idx_memory[idx_mem]]);
 					games.Add (LogicPuzzles [idx_logic[i]]);
 					break;
@@ -284,6 +311,12 @@ public class GameManager
 				for (int i = 0; i < MemoryTrainers.Count; i++)
 					games.Add (MemoryTrainers [i]);
 			}
+
+			if ((game_type & GameSession.Types.VerbalAnalogies) == GameSession.Types.VerbalAnalogies) {
+				for (int i = 0; i < VerbalAnalogies.Count; i++)
+					games.Add (VerbalAnalogies [i]);
+			}
+
 		}
 
 		list = new ArrayListIndicesRandom (games.Count);
diff --git a/src/GameSession.cs b/src/GameSession.cs
index db9c1d5..287019f 100644
--- a/src/GameSession.cs
+++ b/src/GameSession.cs
@@ -31,7 +31,8 @@ public class GameSession
 		LogicPuzzles		= 2,
 		MemoryTrainers		= 4,
 		CalculationTrainers	= 8,
-		Custom			= 16,
+		VerbalAnalogies		= 16,
+		Custom			= 32,
 		TrainersOnly		= MemoryTrainers | CalculationTrainers,
 		AllGames		= MemoryTrainers | CalculationTrainers | LogicPuzzles
 	}
@@ -42,6 +43,7 @@ public class GameSession
 		LogicPuzzles,
 		MemoryTrainers,
 		CalculationTrainers,
+		VerbalAnalogies,
 		Last			
 	}
 
@@ -180,16 +182,13 @@ public class GameSession
 		}
 	}
 
-	public int LogicGamesPlayed {
-		get { return games [(int) ScoresType.LogicPuzzles]; }
-	}
-
-	public int MemoryGamesPlayed {
-		get { return games [(int) ScoresType.MemoryTrainers]; }
-	}
-
-	public int MathGamesPlayed {
-		get { return games [(int) ScoresType.CalculationTrainers]; }
+	public int VerbalScore {
+		get {
+			if (games [(int) ScoresType.VerbalAnalogies] == 0)
+				return 0;
+			
+			return scores [(int) ScoresType.VerbalAnalogies] * 10 / games [(int) ScoresType.VerbalAnalogies];
+		}
 	}
 
 	public string TimePlayed {
@@ -296,6 +295,12 @@ public class GameSession
 			scores [(int) ScoresType.CalculationTrainers] += current_game.Score;
 			games [(int) ScoresType.CalculationTrainers]++;
 			break;
+		case Game.Types.VerbalAnalogy:
+			scores [(int) ScoresType.VerbalAnalogies] += current_game.Score;
+			games [(int) ScoresType.VerbalAnalogies]++;
+			break;
+		default:
+			break;
 		}
 		
 		total_score = 0;
diff --git a/src/Makefile.am b/src/Makefile.am
index cd14dd4..702a9b6 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -74,6 +74,7 @@ GBRAINY_CSDISTFILES =				\
 	$(srcdir)/CalculationGames/CalculationPrimes.cs	\
 	$(srcdir)/MemoryGames/MemoryFacts.cs		\
 	$(srcdir)/PuzzleGames/PuzzleCounting.cs	\
+	$(srcdir)/VerbalAnalogies.cs	\
 	$(srcdir)/SimpleLabel.cs	\
 	$(srcdir)/gbrainy.cs			
 
@@ -93,6 +94,8 @@ RESOURCES =										\
 -resource:$(top_srcdir)/data/app-graphics/logic-games-32.png  \
 -resource:$(top_srcdir)/data/app-graphics/math-games-32.png  \
 -resource:$(top_srcdir)/data/app-graphics/memory-games-32.png  \
+-resource:$(top_srcdir)/data/app-graphics/verbal-games.svg  \
+-resource:$(top_srcdir)/data/app-graphics/verbal-games-32.png  \
 -resource:$(top_srcdir)/data/app-graphics/gbrainy.svg  \
 -resource:$(top_srcdir)/data/game-graphics/present.svg  \
 -resource:$(top_srcdir)/data/game-graphics/handshake.svg  \
diff --git a/src/gbrainy.cs b/src/gbrainy.cs
index 698f4b8..6ba15a3 100644
--- a/src/gbrainy.cs
+++ b/src/gbrainy.cs
@@ -55,7 +55,7 @@ public class gbrainy: Program
 	[Glade.Widget] Gtk.MenuItem newgame_menuitem;
 	GameDrawingArea drawing_area;
 	GameSession session;
-	ToolButton all_tbbutton, logic_tbbutton, calculation_tbbutton, memory_tbbutton, pause_tbbutton, finish_tbbutton;
+	ToolButton all_tbbutton, logic_tbbutton, calculation_tbbutton, memory_tbbutton, verbal_tbbutton, pause_tbbutton, finish_tbbutton;
 	TextTag tag_green;
 	bool low_res;
 	bool full_screen;
@@ -75,6 +75,7 @@ public class gbrainy: Program
                 AddIcon (icon_factory, "logic-games", "logic-games-32.png");
 		AddIcon (icon_factory, "math-games", "math-games-32.png");
 		AddIcon (icon_factory, "memory-games", "memory-games-32.png");
+		AddIcon (icon_factory, "verbal-games", "verbal-games-32.png");
 		AddIcon (icon_factory, "pause", "pause-32.png");
 		AddIcon (icon_factory, "resume", "resume-32.png");
 		AddIcon (icon_factory, "endgame", "endgame-32.png");
@@ -85,6 +86,7 @@ public class gbrainy: Program
 		gXML.Autoconnect (this);
 
 		toolbar.IconSize = Gtk.IconSize.Dnd;
+		toolbar.ShowArrow = false;
 	
 		Tooltips tooltips = new Tooltips ();
 		all_tbbutton = new ToolButton ("allgames");
@@ -111,6 +113,12 @@ public class gbrainy: Program
 		memory_tbbutton.Clicked += OnMemoryOnly;
 		toolbar.Insert (memory_tbbutton, -1);
 
+		verbal_tbbutton = new ToolButton ("verbal-games");
+		verbal_tbbutton.Label = Catalog.GetString ("Verbal");
+		verbal_tbbutton.SetTooltip (tooltips, Catalog.GetString ("Play games that challenge your verbal aptitude"), null);
+		verbal_tbbutton.Clicked += OnVerbalOnly;
+		toolbar.Insert (verbal_tbbutton, -1);
+
 		pause_tbbutton = new ToolButton ("pause");
 		pause_tbbutton.Label = Catalog.GetString ("Pause");
 		pause_tbbutton.SetTooltip (tooltips, Catalog.GetString ("Pause or resume the game"), null);
@@ -247,7 +255,7 @@ public class gbrainy: Program
 
 		answer = entry = next = tip = active;
 
-		if (active == true && session.CurrentGame != null && session.CurrentGame.ButtonsActive == true && session.CurrentGame.Tip != string.Empty)
+		if (active == true && session.CurrentGame != null && session.CurrentGame.ButtonsActive == true && String.IsNullOrEmpty (session.CurrentGame.Tip ) == false)
 			tip = true;
 		else
 			tip = false;
@@ -421,6 +429,13 @@ public class gbrainy: Program
 		OnNewGame ();
 	}
 
+
+	void OnVerbalOnly (object sender, EventArgs args)
+	{
+		session.Type = GameSession.Types.VerbalAnalogies;
+		OnNewGame ();
+	}
+
 	void OnMemoryOnlyAfterCountDown (object source, EventArgs e)
 	{
 		OnNewGame ();



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]