Commit a7ed2204 authored by Bruno Coudoin's avatar Bruno Coudoin

Added 2 new activities to learn to give money make in a shop.

This is based on the money activity but now the children must give back money to Tux.
parent 289f2ee7
......@@ -16,6 +16,7 @@ memory_group.xml
memory_op_group.xml
memory_op_group_tux.xml
menu.xml
money_group.xml
miscelaneous.xml
mouse.xml
numeration.xml
......
......@@ -21,6 +21,7 @@ icon_DATA = algebra_group.svg \
mem_solo_calc.svg \
mem_tux_calc.svg \
miscelaneous.svg \
money_group.svg \
mouse.svg \
numeration.svg \
puzzles.svg \
......@@ -50,6 +51,7 @@ xml_in_files = \
memory_op_group.xml.in \
menu.xml.in \
miscelaneous.xml.in \
money_group.xml.in \
mouse.xml.in \
numeration.xml.in \
puzzle.xml.in \
......
This diff is collapsed.
<?xml version="1.0" encoding="UTF-8"?>
<GCompris>
<Board
name="money_group"
type="menu"
section="/math/numeration"
icon="money_group.svg"
author="">
<_title>Go to money activities</_title>
<_description>Left-click the mouse on an activity to select it.</_description>
</Board>
</GCompris>
......@@ -790,6 +790,8 @@ src/money-activity/Makefile
src/money-activity/resources/Makefile
src/money-activity/resources/money/Makefile
src/money_cents-activity/Makefile
src/money_back-activity/Makefile
src/money_back_cents-activity/Makefile
src/mosaic-activity/Makefile
src/mosaic-activity/resources/Makefile
src/mosaic-activity/resources/mosaic/Makefile
......
......@@ -288,12 +288,16 @@ src/gnumch-multiples-activity/gnumch-multiples.xml.in
src/gnumch-primes-activity/gnumch-primes.xml.in
src/guessnumber-activity/guessnumber.py
src/guessnumber-activity/guessnumber.xml.in
src/hangman-activity/hangman.py
src/hangman-activity/hangman.xml.in
src/hanoi-activity/hanoi.c
src/hanoi-activity/hanoi.xml.in
src/hanoi_real-activity/hanoi_real.c
src/hanoi_real-activity/hanoi_real.xml.in
src/hexagon-activity/hexagon.py
src/hexagon-activity/hexagon.xml.in
src/hydroelectric-activity/hydroelectric.py
src/hydroelectric-activity/hydroelectric.xml.in
src/imageid-activity/imageid.c
src/imageid-activity/imageid.xml.in
src/imageid-activity/resources/imageid/board1.xml.in
......@@ -354,6 +358,8 @@ src/missing_letter-activity/resources/missing_letter/board5.xml.in
src/money-activity/money.c
src/money-activity/money.xml.in
src/money-activity/money_widget.c
src/money_back-activity/money_back.xml.in
src/money_back_cents-activity/money_back_cents.xml.in
src/money_cents-activity/money_cents.xml.in
src/mosaic-activity/mosaic.py
src/mosaic-activity/mosaic.xml.in
......@@ -437,7 +443,3 @@ src/wordprocessor-activity/wordprocessor.c
src/wordprocessor-activity/wordprocessor.xml.in
src/wordsgame-activity/wordsgame.c
src/wordsgame-activity/wordsgame.xml.in
src/hangman-activity/hangman.xml.in
src/hangman-activity/hangman.py
src/hydroelectric-activity/hydroelectric.xml.in
src/hydroelectric-activity/hydroelectric.py
## Process this file with automake to produce Makefile.in
SUBDIRS = hydroelectric-activity hangman-activity \
SUBDIRS = money_back_cents-activity money_back-activity hydroelectric-activity hangman-activity \
goocanvas gcompris boards \
advanced_colors-activity \
algebra_by-activity \
......
/* gcompris - money.c
*
* Copyright (C) 2001, 2008 Bruno Coudoin
* Copyright (C) 2001, 2010 Bruno Coudoin
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
......@@ -37,6 +37,7 @@ static GooCanvasItem *boardRootItem = NULL;
static void money_destroy_all_items(void);
static void money_next_level(void);
void moneyactivity_process_ok(void);
static void display_paying_tux(guint note);
Money_Widget *tux_money = NULL;
Money_Widget *seller_money = NULL;
......@@ -85,8 +86,14 @@ static gchar *imageList3[] =
};
#define NUMBER_OF_IMAGES3 G_N_ELEMENTS(imageList3)
#define WITHOUT_CENTS 1
#define WITH_CENTS 2
typedef enum
{
WITHOUT_CENTS,
WITH_CENTS,
BACK_WITHOUT_CENTS,
BACK_WITH_CENTS
} type;
static char currentMode = WITHOUT_CENTS;
/* Description of this plugin */
......@@ -159,11 +166,21 @@ static void start_board (GcomprisBoard *agcomprisBoard)
gcomprisBoard->maxlevel=9;
currentMode=WITHOUT_CENTS;
}
else if(g_strncasecmp(gcomprisBoard->mode, "WITH_CENTS", 1)==0)
else if(g_strcmp0(gcomprisBoard->mode, "WITH_CENTS")==0)
{
gcomprisBoard->maxlevel=5;
currentMode=WITH_CENTS;
}
else if(g_strcmp0(gcomprisBoard->mode, "BACK_WITHOUT_CENTS")==0)
{
gcomprisBoard->maxlevel=9;
currentMode=BACK_WITHOUT_CENTS;
}
else if(g_strcmp0(gcomprisBoard->mode, "BACK_WITH_CENTS")==0)
{
gcomprisBoard->maxlevel=5;
currentMode=BACK_WITH_CENTS;
}
money_next_level();
gamewon = FALSE;
......@@ -214,6 +231,7 @@ gboolean is_our_board (GcomprisBoard *gcomprisBoard)
static void money_next_level()
{
guint min_price = 0, max_price = 0;
guint paid = 0;
guint number_of_item = 0;
guint i;
gchar *display_format;
......@@ -468,6 +486,237 @@ static void money_next_level()
break;
}
break;
case BACK_WITHOUT_CENTS:
switch(gcomprisBoard->level)
{
case 1:
number_of_item = 1;
min_price = 3;
max_price = 9;
paid = 10;
money_widget_add(tux_money, MONEY_EURO_PAPER_5E);
money_widget_add(tux_money, MONEY_EURO_COIN_2E);
money_widget_add(tux_money, MONEY_EURO_COIN_1E);
money_widget_add(tux_money, MONEY_EURO_COIN_2E);
money_widget_add(tux_money, MONEY_EURO_PAPER_5E);
money_widget_add(tux_money, MONEY_EURO_PAPER_5E);
money_widget_add(tux_money, MONEY_EURO_COIN_1E);
money_widget_add(tux_money, MONEY_EURO_COIN_1E);
break;
case 2:
number_of_item = 1;
min_price = 11;
max_price = 19;
paid = 20;
money_widget_add(tux_money, MONEY_EURO_PAPER_10E);
money_widget_add(tux_money, MONEY_EURO_PAPER_5E);
money_widget_add(tux_money, MONEY_EURO_COIN_2E);
money_widget_add(tux_money, MONEY_EURO_COIN_1E);
money_widget_add(tux_money, MONEY_EURO_COIN_2E);
money_widget_add(tux_money, MONEY_EURO_PAPER_5E);
money_widget_add(tux_money, MONEY_EURO_PAPER_5E);
money_widget_add(tux_money, MONEY_EURO_COIN_1E);
money_widget_add(tux_money, MONEY_EURO_COIN_1E);
break;
case 3:
number_of_item = 2;
min_price = 21;
max_price = 29;
paid = 30;
money_widget_add(tux_money, MONEY_EURO_PAPER_10E);
money_widget_add(tux_money, MONEY_EURO_PAPER_10E);
money_widget_add(tux_money, MONEY_EURO_PAPER_5E);
money_widget_add(tux_money, MONEY_EURO_COIN_2E);
money_widget_add(tux_money, MONEY_EURO_COIN_1E);
money_widget_add(tux_money, MONEY_EURO_COIN_2E);
money_widget_add(tux_money, MONEY_EURO_PAPER_5E);
money_widget_add(tux_money, MONEY_EURO_PAPER_5E);
money_widget_add(tux_money, MONEY_EURO_COIN_1E);
money_widget_add(tux_money, MONEY_EURO_COIN_1E);
break;
case 4:
number_of_item = 2;
min_price = 30;
max_price = 39;
paid = 40;
money_widget_add(tux_money, MONEY_EURO_PAPER_10E);
money_widget_add(tux_money, MONEY_EURO_PAPER_10E);
money_widget_add(tux_money, MONEY_EURO_PAPER_5E);
money_widget_add(tux_money, MONEY_EURO_COIN_2E);
money_widget_add(tux_money, MONEY_EURO_COIN_1E);
money_widget_add(tux_money, MONEY_EURO_COIN_2E);
money_widget_add(tux_money, MONEY_EURO_PAPER_10E);
money_widget_add(tux_money, MONEY_EURO_PAPER_5E);
money_widget_add(tux_money, MONEY_EURO_COIN_1E);
money_widget_add(tux_money, MONEY_EURO_COIN_1E);
break;
case 5:
number_of_item = 3;
min_price = 40;
max_price = 49;
paid = 50;
money_widget_add(tux_money, MONEY_EURO_COIN_2E);
money_widget_add(tux_money, MONEY_EURO_COIN_1E);
money_widget_add(tux_money, MONEY_EURO_PAPER_10E);
money_widget_add(tux_money, MONEY_EURO_PAPER_10E);
money_widget_add(tux_money, MONEY_EURO_PAPER_5E);
money_widget_add(tux_money, MONEY_EURO_COIN_1E);
money_widget_add(tux_money, MONEY_EURO_PAPER_5E);
money_widget_add(tux_money, MONEY_EURO_COIN_2E);
money_widget_add(tux_money, MONEY_EURO_PAPER_20E);
money_widget_add(tux_money, MONEY_EURO_COIN_1E);
break;
case 6:
number_of_item = 3;
min_price = 50;
max_price = 60;
paid = 100;
money_widget_add(tux_money, MONEY_EURO_PAPER_10E);
money_widget_add(tux_money, MONEY_EURO_PAPER_20E);
money_widget_add(tux_money, MONEY_EURO_COIN_2E);
money_widget_add(tux_money, MONEY_EURO_PAPER_20E);
money_widget_add(tux_money, MONEY_EURO_PAPER_5E);
money_widget_add(tux_money, MONEY_EURO_PAPER_5E);
money_widget_add(tux_money, MONEY_EURO_COIN_2E);
money_widget_add(tux_money, MONEY_EURO_COIN_1E);
money_widget_add(tux_money, MONEY_EURO_COIN_1E);
money_widget_add(tux_money, MONEY_EURO_COIN_1E);
break;
case 7:
number_of_item = 4;
min_price = 60;
max_price = 70;
paid = 100;
money_widget_add(tux_money, MONEY_EURO_COIN_2E);
money_widget_add(tux_money, MONEY_EURO_PAPER_50E);
money_widget_add(tux_money, MONEY_EURO_PAPER_5E);
money_widget_add(tux_money, MONEY_EURO_COIN_1E);
money_widget_add(tux_money, MONEY_EURO_PAPER_10E);
money_widget_add(tux_money, MONEY_EURO_PAPER_20E);
money_widget_add(tux_money, MONEY_EURO_PAPER_5E);
money_widget_add(tux_money, MONEY_EURO_COIN_2E);
money_widget_add(tux_money, MONEY_EURO_COIN_1E);
money_widget_add(tux_money, MONEY_EURO_COIN_1E);
break;
case 8:
number_of_item = 4;
min_price = 70;
max_price = 80;
paid = 100;
money_widget_add(tux_money, MONEY_EURO_PAPER_50E);
money_widget_add(tux_money, MONEY_EURO_PAPER_20E);
money_widget_add(tux_money, MONEY_EURO_PAPER_5E);
money_widget_add(tux_money, MONEY_EURO_COIN_2E);
money_widget_add(tux_money, MONEY_EURO_COIN_1E);
money_widget_add(tux_money, MONEY_EURO_COIN_2E);
money_widget_add(tux_money, MONEY_EURO_PAPER_10E);
money_widget_add(tux_money, MONEY_EURO_PAPER_5E);
money_widget_add(tux_money, MONEY_EURO_COIN_1E);
money_widget_add(tux_money, MONEY_EURO_COIN_1E);
break;
case 9:
number_of_item = 4;
min_price = 50;
max_price = 99;
paid = 100;
money_widget_add(tux_money, MONEY_EURO_PAPER_10E);
money_widget_add(tux_money, MONEY_EURO_COIN_2E);
money_widget_add(tux_money, MONEY_EURO_PAPER_5E);
money_widget_add(tux_money, MONEY_EURO_COIN_1E);
money_widget_add(tux_money, MONEY_EURO_COIN_1E);
money_widget_add(tux_money, MONEY_EURO_COIN_2E);
money_widget_add(tux_money, MONEY_EURO_PAPER_50E);
money_widget_add(tux_money, MONEY_EURO_PAPER_20E);
money_widget_add(tux_money, MONEY_EURO_PAPER_5E);
money_widget_add(tux_money, MONEY_EURO_PAPER_5E);
break;
}
break;
case BACK_WITH_CENTS:
switch(gcomprisBoard->level)
{
case 1:
number_of_item = 1;
min_price = 1;
max_price = 3;
paid = 5;
money_widget_add(tux_money, MONEY_EURO_COIN_2E);
money_widget_add(tux_money, MONEY_EURO_COIN_1E);
money_widget_add(tux_money, MONEY_EURO_COIN_5C);
money_widget_add(tux_money, MONEY_EURO_COIN_2C);
money_widget_add(tux_money, MONEY_EURO_COIN_20C);
money_widget_add(tux_money, MONEY_EURO_COIN_50C);
money_widget_add(tux_money, MONEY_EURO_COIN_20C);
money_widget_add(tux_money, MONEY_EURO_COIN_10C);
money_widget_add(tux_money, MONEY_EURO_COIN_1C);
money_widget_add(tux_money, MONEY_EURO_COIN_1C);
break;
case 2:
number_of_item = 1;
min_price = 1;
max_price = 3;
paid = 5;
money_widget_add(tux_money, MONEY_EURO_COIN_2E);
money_widget_add(tux_money, MONEY_EURO_COIN_1E);
money_widget_add(tux_money, MONEY_EURO_COIN_5C);
money_widget_add(tux_money, MONEY_EURO_COIN_2C);
money_widget_add(tux_money, MONEY_EURO_COIN_20C);
money_widget_add(tux_money, MONEY_EURO_COIN_50C);
money_widget_add(tux_money, MONEY_EURO_COIN_20C);
money_widget_add(tux_money, MONEY_EURO_COIN_10C);
money_widget_add(tux_money, MONEY_EURO_COIN_1C);
money_widget_add(tux_money, MONEY_EURO_COIN_1C);
break;
case 3:
number_of_item = 2;
min_price = 1;
max_price = 3;
paid = 5;
money_widget_add(tux_money, MONEY_EURO_COIN_2E);
money_widget_add(tux_money, MONEY_EURO_COIN_1E);
money_widget_add(tux_money, MONEY_EURO_COIN_5C);
money_widget_add(tux_money, MONEY_EURO_COIN_2C);
money_widget_add(tux_money, MONEY_EURO_COIN_20C);
money_widget_add(tux_money, MONEY_EURO_COIN_50C);
money_widget_add(tux_money, MONEY_EURO_COIN_20C);
money_widget_add(tux_money, MONEY_EURO_COIN_10C);
money_widget_add(tux_money, MONEY_EURO_COIN_1C);
money_widget_add(tux_money, MONEY_EURO_COIN_1C);
break;
case 4:
number_of_item = 3;
min_price = 1;
max_price = 3;
paid = 5;
money_widget_add(tux_money, MONEY_EURO_COIN_2E);
money_widget_add(tux_money, MONEY_EURO_COIN_1E);
money_widget_add(tux_money, MONEY_EURO_COIN_5C);
money_widget_add(tux_money, MONEY_EURO_COIN_2C);
money_widget_add(tux_money, MONEY_EURO_COIN_20C);
money_widget_add(tux_money, MONEY_EURO_COIN_50C);
money_widget_add(tux_money, MONEY_EURO_COIN_20C);
money_widget_add(tux_money, MONEY_EURO_COIN_10C);
money_widget_add(tux_money, MONEY_EURO_COIN_1C);
money_widget_add(tux_money, MONEY_EURO_COIN_1C);
break;
case 5:
number_of_item = 4;
min_price = 0;
max_price = 4;
paid = 5;
money_widget_add(tux_money, MONEY_EURO_COIN_2E);
money_widget_add(tux_money, MONEY_EURO_COIN_1E);
money_widget_add(tux_money, MONEY_EURO_COIN_5C);
money_widget_add(tux_money, MONEY_EURO_COIN_2C);
money_widget_add(tux_money, MONEY_EURO_COIN_20C);
money_widget_add(tux_money, MONEY_EURO_COIN_50C);
money_widget_add(tux_money, MONEY_EURO_COIN_20C);
money_widget_add(tux_money, MONEY_EURO_COIN_10C);
money_widget_add(tux_money, MONEY_EURO_COIN_1C);
money_widget_add(tux_money, MONEY_EURO_COIN_1C);
break;
}
break;
}
seller_money = MONEY_WIDGET(money_widget_new());
......@@ -491,6 +740,8 @@ static void money_next_level()
RsvgHandle *svg_handle;
RsvgDimensionData dimension;
double xratio, yratio;
guint offset_x = 50;
guint boardwidth = BOARDWIDTH - offset_x * 2;
/* Display the price */
object_price = (double) g_random_int_range(min_price/number_of_item,
......@@ -525,18 +776,20 @@ static void money_next_level()
svg_handle,
NULL);
}
xratio = (gdouble)(BOARDWIDTH/(number_of_item+1)) / dimension.width;
xratio = (gdouble)(boardwidth/(number_of_item+1)) / dimension.width;
yratio = 100.0 / dimension.height;
xratio = yratio = MIN(xratio, yratio);
goo_canvas_item_translate(item,
(i*BOARDWIDTH)/(number_of_item+1)
offset_x +
(i*boardwidth)/(number_of_item+1)
- dimension.width*xratio/2,
200);
goo_canvas_item_scale(item, xratio, xratio);
if(currentMode == WITH_CENTS)
if( (currentMode == WITH_CENTS) ||
(currentMode == BACK_WITH_CENTS) )
{
/* Set here the way to display money. Change only the money sign, and it's place, always keep %.2f, it will be replaced by 0,34 if decimal is ',' in your locale */
display_format = _("$ %.2f");
......@@ -552,6 +805,7 @@ static void money_next_level()
}
else
{
/* Set here the way to display money. Change only the money sign, and it's place, always keep %.2f, it will be replaced by 0,34 if decimal is ',' in your locale */
display_format = _("$ %.0f");
}
......@@ -559,7 +813,7 @@ static void money_next_level()
text = g_strdup_printf(display_format, object_price);
goo_canvas_text_new(boardRootItem,
text,
(i*BOARDWIDTH)/(number_of_item+1),
offset_x + (i*boardwidth)/(number_of_item+1),
185,
-1,
GTK_ANCHOR_CENTER,
......@@ -570,6 +824,13 @@ static void money_next_level()
g_object_unref(svg_handle);
}
if (paid)
{
// Calc the money back instead of the objects price
price_target = paid - price_target;
// Display Tux and his money
display_paying_tux(paid);
}
}
/* ==================================== */
/* Destroy all the items */
......@@ -620,3 +881,67 @@ void moneyactivity_process_ok()
gc_bonus_display(gamewon, GC_BONUS_SMILEY);
}
}
static void display_paying_note(guint note, guint x, guint y)
{
gchar *note_str = g_strdup_printf("money/n%de.svgz", note);
RsvgHandle *svg_handle;
svg_handle = gc_rsvg_load(note_str);
GooCanvasItem *item = goo_canvas_svg_new(boardRootItem,
svg_handle,
NULL);
goo_canvas_item_translate(item, x, y);
goo_canvas_item_scale(item, 0.25, 0.25);
g_object_unref(svg_handle);
g_free(note_str);
}
static void display_paying_tux(guint note)
{
GdkPixbuf *pixmap = NULL;
g_assert(boardRootItem);
pixmap = gc_pixmap_load("money/tux_graduate.png");
goo_canvas_image_new (boardRootItem,
pixmap,
20,
130,
NULL);
gdk_pixbuf_unref(pixmap);
if (note == 30)
{
display_paying_note(20, 20, 200);
display_paying_note(10, 30, 250);
}
else if (note == 40)
{
display_paying_note(20, 20, 200);
display_paying_note(20, 30, 250);
}
else if (note == 100)
{
display_paying_note(50, 20, 200);
display_paying_note(50, 30, 250);
}
else
display_paying_note(note, 20, 200);
/* Set here the way to display money. Change only the money sign, and it's place, always keep %d */
gchar *text = g_strdup_printf(_("Tux just bought some items in your shop.\n"
"He gives you $ %d, please give back his change."),
note);
goo_canvas_text_new(boardRootItem,
text,
BOARDWIDTH / 2,
320,
-1,
GTK_ANCHOR_CENTER,
"font", gc_skin_font_board_medium,
"fill-color", "white",
"alignment", PANGO_ALIGN_CENTER,
NULL);
g_free(text);
}
......@@ -3,7 +3,7 @@
<Board
name="money"
type="money"
section="/math/numeration"
section="/math/numeration/money_group"
icon="money.svg"
difficulty="2"
author="Bruno Coudoin (bruno.coudoin@free.fr)"
......
......@@ -28,6 +28,7 @@ img_DATA = \
pamplemousse.svgz \
pencil.svgz \
umbrella.svgz \
money-bg.png
money-bg.png \
tux_graduate.png
EXTRA_DIST = $(img_DATA)
SUBDIRS =
xmldir = $(pkgdatadir)/@PACKAGE_DATA_DIR@
xml_in_files = \
money_back.xml.in
xml_DATA = $(xml_in_files:.xml.in=.xml)
# Do not use the INTLTOOL_XML_RULE, we don't need to embed the translations
# in the file themselves. GCompris pick the translations from the po file at
# runtime.
#
$(xml_DATA): %.xml: %.xml.in
sed -e "s/\(<\{1\}\/*\)_/\1/g" $< > $@
# Use this directive and instead of the one above to embed the translations
# in the xml files directly, this is needed for the tool gcompris2spip
#@INTLTOOL_XML_RULE@
icondir = $(pkgdatadir)/@PACKAGE_DATA_DIR@
icon_DATA = money_back.svg
EXTRA_DIST = $(icon_DATA) ${xml_in_files} init_path.sh
CLEANFILES = $(xml_DATA)
# Set the different path for this activity
# This is sourced by runit.sh
path=$1
activity=money_back
plugindir=$path/../money-activity/.libs
pythonplugindir=$path
resourcedir=$path/../money-activity/resources
section="/math/numeration/money"
This diff is collapsed.
<?xml version="1.0" encoding="UTF-8"?>
<GCompris>
<Board
name="money_back"
type="money"
section="/math/numeration/money_group"
icon="money_back.svg"
mode="BACK_WITHOUT_CENTS"
difficulty="3"
author="Bruno Coudoin (bruno.coudoin@free.fr)"
boarddir=""
demo="1">
<_title>Give tux his change</_title>
<_description>Practice money usage by giving Tux his change</_description>
<_prerequisite>Can count</_prerequisite>
<_goal>You must buy the different items and give the exact price. At higher levels, several items are displayed, and you must first calculate the total price.</_goal>
<_manual>Click on the coins or paper money at the bottom of the screen to pay. If you want to remove a coin or note, click on it on the upper screen area.</_manual>
</Board>
</GCompris>
SUBDIRS =
xmldir = $(pkgdatadir)/@PACKAGE_DATA_DIR@
xml_in_files = \
money_back_cents.xml.in
xml_DATA = $(xml_in_files:.xml.in=.xml)
# Do not use the INTLTOOL_XML_RULE, we don't need to embed the translations
# in the file themselves. GCompris pick the translations from the po file at
# runtime.
#
$(xml_DATA): %.xml: %.xml.in
sed -e "s/\(<\{1\}\/*\)_/\1/g" $< > $@
# Use this directive and instead of the one above to embed the translations
# in the xml files directly, this is needed for the tool gcompris2spip
#@INTLTOOL_XML_RULE@
icondir = $(pkgdatadir)/@PACKAGE_DATA_DIR@
icon_DATA = money_back_cents.svg
EXTRA_DIST = $(icon_DATA) ${xml_in_files} init_path.sh
CLEANFILES = $(xml_DATA)
# Set the different path for this activity
# This is sourced by runit.sh
path=$1
activity=money_back_cents
plugindir=$path/../money-activity/.libs
pythonplugindir=$path
resourcedir=$path/../money-activity/resources
section="/math/numeration/money"
This diff is collapsed.
<?xml version="1.0" encoding="UTF-8"?>
<GCompris>
<Board
name="money_back_cents"
type="money"
section="/math/numeration/money_group"
icon="money_back_cents.svg"
mode="BACK_WITH_CENTS"
difficulty="5"
author="Bruno Coudoin (bruno.coudoin@free.fr)"
boarddir=""
demo="1">
<_title>Give tux his change, including cents</_title>
<_description>Practice money usage by giving Tux his change</_description>
<_prerequisite>Can count</_prerequisite>
<_goal>You must buy the different items and give the exact price. At higher levels, several items are displayed, and you must first calculate the total price.</_goal>
<_manual>Click on the coins or paper money at the bottom of the screen to pay. If you want to remove a coin or note, click on it on the upper screen area.</_manual>
</Board>
</GCompris>
......@@ -3,10 +3,10 @@
<Board
name="money_cents"
type="money"
section="/math/numeration"
section="/math/numeration/money_group"
icon="money_cents.svg"
mode="WITH_CENTS"
difficulty="3"
difficulty="5"
author="Bruno Coudoin (bruno.coudoin@free.fr)"
boarddir=""
demo="1">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment