Changeset View
Standalone View
src/activities/money/money.js
Context not available. | |||||
22 | .pragma library | 22 | .pragma library | ||
---|---|---|---|---|---|
23 | .import "qrc:/gcompris/src/core/core.js" as Core | 23 | .import "qrc:/gcompris/src/core/core.js" as Core | ||
24 | .import GCompris 1.0 as GCompris | 24 | .import GCompris 1.0 as GCompris | ||
25 | .import "moneyConstants.js" as MoneyConstants | ||||
25 | 26 | | |||
scagarwal: Do rename `Constants` as `moneyConstants`. Clear names are much better. | |||||
26 | var url = "qrc:/gcompris/src/activities/money/resource/" | 27 | var url = "qrc:/gcompris/src/activities/money/resource/" | ||
27 | 28 | | |||
28 | // We create 3 prices categories to make the game more realistic. | 29 | // We create 3 prices categories to make the game more realistic. | ||
29 | // List of images to use in the game (cheap objects) | 30 | // List of images to use in the game (cheap objects) | ||
30 | var cheapObjects = [ | | |||
31 | "apple.svg", | | |||
32 | "orange.svg", | | |||
33 | "banane.svg", | | |||
34 | "pamplemousse.svg", | | |||
35 | "carot.svg", | | |||
36 | "cerise.svg", | | |||
37 | "cake.svg" | | |||
38 | ] | | |||
39 | | ||||
40 | var normalObjects = [ | | |||
41 | "umbrella.svg", | | |||
42 | "pencil.svg", | | |||
43 | "bottle.svg", | | |||
44 | "light.svg", | | |||
45 | "eggpot.svg" | | |||
46 | ] | | |||
47 | | ||||
48 | var expensiveObjects = [ | | |||
49 | "lamp.svg", | | |||
50 | "football.svg", | | |||
51 | "bicycle.svg" | | |||
52 | ] | | |||
53 | | ||||
54 | var moneyItems = { | | |||
55 | MONEY_EURO_COIN_1C: { img: "c1c.svg", val: 0.01 }, | | |||
56 | MONEY_EURO_COIN_2C: { img: "c2c.svg", val: 0.02 }, | | |||
57 | MONEY_EURO_COIN_5C: { img: "c5c.svg", val: 0.05 }, | | |||
58 | MONEY_EURO_COIN_10C: { img: "c10c.svg", val: 0.1 }, | | |||
59 | MONEY_EURO_COIN_20C: { img: "c20c.svg", val: 0.20 }, | | |||
60 | MONEY_EURO_COIN_50C: { img: "c50c.svg", val: 0.5 }, | | |||
61 | MONEY_EURO_COIN_1E: { img: "c1e.svg", val: 1.0 }, | | |||
62 | MONEY_EURO_COIN_2E: { img: "c2e.svg", val: 2.0 }, | | |||
63 | MONEY_EURO_PAPER_5E: { img: "n5e.svg", val: 5.0 }, | | |||
64 | MONEY_EURO_PAPER_10E: { img: "n10e.svg", val: 10.0 }, | | |||
65 | MONEY_EURO_PAPER_20E: { img: "n20e.svg", val: 20.0 }, | | |||
66 | MONEY_EURO_PAPER_50E: { img: "n50e.svg", val: 50.0 }, | | |||
67 | } | | |||
68 | | ||||
69 | var fullDataset = { | | |||
70 | WITHOUT_CENTS: [ | | |||
71 | { | | |||
72 | numberOfItem: 1, | | |||
73 | minPrice: 3, | | |||
74 | maxPrice: 10, | | |||
75 | pocket: [ | | |||
76 | moneyItems.MONEY_EURO_PAPER_5E, | | |||
77 | moneyItems.MONEY_EURO_PAPER_5E, | | |||
78 | moneyItems.MONEY_EURO_PAPER_5E, | | |||
79 | moneyItems.MONEY_EURO_COIN_2E, | | |||
80 | moneyItems.MONEY_EURO_COIN_2E, | | |||
81 | moneyItems.MONEY_EURO_COIN_1E, | | |||
82 | moneyItems.MONEY_EURO_COIN_1E, | | |||
83 | moneyItems.MONEY_EURO_COIN_1E | | |||
84 | ] | | |||
85 | }, | | |||
86 | { | | |||
87 | numberOfItem: 1, | | |||
88 | minPrice: 10, | | |||
89 | maxPrice: 20, | | |||
90 | pocket: [ | | |||
91 | moneyItems.MONEY_EURO_PAPER_10E, | | |||
92 | moneyItems.MONEY_EURO_PAPER_5E, | | |||
93 | moneyItems.MONEY_EURO_PAPER_5E, | | |||
94 | moneyItems.MONEY_EURO_PAPER_5E, | | |||
95 | moneyItems.MONEY_EURO_COIN_2E, | | |||
96 | moneyItems.MONEY_EURO_COIN_2E, | | |||
97 | moneyItems.MONEY_EURO_COIN_1E, | | |||
98 | moneyItems.MONEY_EURO_COIN_1E, | | |||
99 | moneyItems.MONEY_EURO_COIN_1E | | |||
100 | ] | | |||
101 | }, | | |||
102 | { | | |||
103 | numberOfItem: 2, | | |||
104 | minPrice: 20, | | |||
105 | maxPrice: 30, | | |||
106 | pocket: [ | | |||
107 | moneyItems.MONEY_EURO_PAPER_10E, | | |||
108 | moneyItems.MONEY_EURO_PAPER_10E, | | |||
109 | moneyItems.MONEY_EURO_PAPER_5E, | | |||
110 | moneyItems.MONEY_EURO_PAPER_5E, | | |||
111 | moneyItems.MONEY_EURO_PAPER_5E, | | |||
112 | moneyItems.MONEY_EURO_COIN_2E, | | |||
113 | moneyItems.MONEY_EURO_COIN_2E, | | |||
114 | moneyItems.MONEY_EURO_COIN_1E, | | |||
115 | moneyItems.MONEY_EURO_COIN_1E, | | |||
116 | moneyItems.MONEY_EURO_COIN_1E | | |||
117 | ] | | |||
118 | }, | | |||
119 | { | | |||
120 | numberOfItem: 2, | | |||
121 | minPrice: 30, | | |||
122 | maxPrice: 40, | | |||
123 | pocket: [ | | |||
124 | moneyItems.MONEY_EURO_PAPER_10E, | | |||
125 | moneyItems.MONEY_EURO_PAPER_10E, | | |||
126 | moneyItems.MONEY_EURO_PAPER_5E, | | |||
127 | moneyItems.MONEY_EURO_COIN_2E, | | |||
128 | moneyItems.MONEY_EURO_COIN_1E, | | |||
129 | moneyItems.MONEY_EURO_COIN_2E, | | |||
130 | moneyItems.MONEY_EURO_PAPER_10E, | | |||
131 | moneyItems.MONEY_EURO_PAPER_5E, | | |||
132 | moneyItems.MONEY_EURO_COIN_1E, | | |||
133 | moneyItems.MONEY_EURO_COIN_1E | | |||
134 | ] | | |||
135 | }, | | |||
136 | { | | |||
137 | numberOfItem: 3, | | |||
138 | minPrice: 40, | | |||
139 | maxPrice: 50, | | |||
140 | pocket: [ | | |||
141 | moneyItems.MONEY_EURO_COIN_2E, | | |||
142 | moneyItems.MONEY_EURO_COIN_1E, | | |||
143 | moneyItems.MONEY_EURO_PAPER_10E, | | |||
144 | moneyItems.MONEY_EURO_PAPER_10E, | | |||
145 | moneyItems.MONEY_EURO_PAPER_5E, | | |||
146 | moneyItems.MONEY_EURO_COIN_1E, | | |||
147 | moneyItems.MONEY_EURO_PAPER_5E, | | |||
148 | moneyItems.MONEY_EURO_COIN_2E, | | |||
149 | moneyItems.MONEY_EURO_PAPER_20E, | | |||
150 | moneyItems.MONEY_EURO_COIN_1E | | |||
151 | ] | | |||
152 | }, | | |||
153 | { | | |||
154 | numberOfItem: 3, | | |||
155 | minPrice: 50, | | |||
156 | maxPrice: 60, | | |||
157 | pocket: [ | | |||
158 | moneyItems.MONEY_EURO_PAPER_10E, | | |||
159 | moneyItems.MONEY_EURO_PAPER_20E, | | |||
160 | moneyItems.MONEY_EURO_COIN_2E, | | |||
161 | moneyItems.MONEY_EURO_PAPER_20E, | | |||
162 | moneyItems.MONEY_EURO_PAPER_5E, | | |||
163 | moneyItems.MONEY_EURO_PAPER_5E, | | |||
164 | moneyItems.MONEY_EURO_COIN_2E, | | |||
165 | moneyItems.MONEY_EURO_COIN_1E, | | |||
166 | moneyItems.MONEY_EURO_COIN_1E, | | |||
167 | moneyItems.MONEY_EURO_COIN_1E | | |||
168 | ] | | |||
169 | }, | | |||
170 | { | | |||
171 | numberOfItem: 4, | | |||
172 | minPrice: 60, | | |||
173 | maxPrice: 70, | | |||
174 | pocket: [ | | |||
175 | moneyItems.MONEY_EURO_PAPER_50E, | | |||
176 | moneyItems.MONEY_EURO_PAPER_20E, | | |||
177 | moneyItems.MONEY_EURO_PAPER_10E, | | |||
178 | moneyItems.MONEY_EURO_PAPER_5E, | | |||
179 | moneyItems.MONEY_EURO_PAPER_5E, | | |||
180 | moneyItems.MONEY_EURO_COIN_2E, | | |||
181 | moneyItems.MONEY_EURO_COIN_2E, | | |||
182 | moneyItems.MONEY_EURO_COIN_1E, | | |||
183 | moneyItems.MONEY_EURO_COIN_1E, | | |||
184 | moneyItems.MONEY_EURO_COIN_1E | | |||
185 | ] | | |||
186 | }, | | |||
187 | { | | |||
188 | numberOfItem: 4, | | |||
189 | minPrice: 70, | | |||
190 | maxPrice: 80, | | |||
191 | pocket: [ | | |||
192 | moneyItems.MONEY_EURO_PAPER_50E, | | |||
193 | moneyItems.MONEY_EURO_PAPER_20E, | | |||
194 | moneyItems.MONEY_EURO_PAPER_5E, | | |||
195 | moneyItems.MONEY_EURO_COIN_2E, | | |||
196 | moneyItems.MONEY_EURO_COIN_1E, | | |||
197 | moneyItems.MONEY_EURO_COIN_2E, | | |||
198 | moneyItems.MONEY_EURO_PAPER_10E, | | |||
199 | moneyItems.MONEY_EURO_PAPER_5E, | | |||
200 | moneyItems.MONEY_EURO_COIN_1E, | | |||
201 | moneyItems.MONEY_EURO_COIN_1E | | |||
202 | ] | | |||
203 | }, | | |||
204 | { | | |||
205 | numberOfItem: 4, | | |||
206 | minPrice: 50, | | |||
207 | maxPrice: 100, | | |||
208 | pocket: [ | | |||
209 | moneyItems.MONEY_EURO_PAPER_10E, | | |||
210 | moneyItems.MONEY_EURO_COIN_2E, | | |||
211 | moneyItems.MONEY_EURO_PAPER_5E, | | |||
212 | moneyItems.MONEY_EURO_COIN_1E, | | |||
213 | moneyItems.MONEY_EURO_COIN_1E, | | |||
214 | moneyItems.MONEY_EURO_COIN_2E, | | |||
215 | moneyItems.MONEY_EURO_PAPER_50E, | | |||
216 | moneyItems.MONEY_EURO_PAPER_20E, | | |||
217 | moneyItems.MONEY_EURO_PAPER_5E, | | |||
218 | moneyItems.MONEY_EURO_PAPER_5E | | |||
219 | ] | | |||
220 | } | | |||
221 | ], | | |||
222 | | ||||
223 | WITH_CENTS: [ | | |||
224 | { | | |||
225 | numberOfItem: 1, | | |||
226 | minPrice: 1, | | |||
227 | maxPrice: 3, | | |||
228 | pocket: [ | | |||
229 | moneyItems.MONEY_EURO_COIN_2E, | | |||
230 | moneyItems.MONEY_EURO_COIN_1E, | | |||
231 | moneyItems.MONEY_EURO_COIN_5C, | | |||
232 | moneyItems.MONEY_EURO_COIN_2C, | | |||
233 | moneyItems.MONEY_EURO_COIN_20C, | | |||
234 | moneyItems.MONEY_EURO_COIN_50C, | | |||
235 | moneyItems.MONEY_EURO_COIN_20C, | | |||
236 | moneyItems.MONEY_EURO_COIN_10C, | | |||
237 | moneyItems.MONEY_EURO_COIN_1C, | | |||
238 | moneyItems.MONEY_EURO_COIN_1C, | | |||
239 | ] | | |||
240 | }, | | |||
241 | { | | |||
242 | numberOfItem: 1, | | |||
243 | minPrice: 1, | | |||
244 | maxPrice: 3, | | |||
245 | pocket: [ | | |||
246 | moneyItems.MONEY_EURO_COIN_2E, | | |||
247 | moneyItems.MONEY_EURO_COIN_1E, | | |||
248 | moneyItems.MONEY_EURO_COIN_5C, | | |||
249 | moneyItems.MONEY_EURO_COIN_2C, | | |||
250 | moneyItems.MONEY_EURO_COIN_20C, | | |||
251 | moneyItems.MONEY_EURO_COIN_50C, | | |||
252 | moneyItems.MONEY_EURO_COIN_20C, | | |||
253 | moneyItems.MONEY_EURO_COIN_10C, | | |||
254 | moneyItems.MONEY_EURO_COIN_1C, | | |||
255 | moneyItems.MONEY_EURO_COIN_1C | | |||
256 | ] | | |||
257 | }, | | |||
258 | { | | |||
259 | numberOfItem: 2, | | |||
260 | minPrice: 1, | | |||
261 | maxPrice: 3, | | |||
262 | pocket: [ | | |||
263 | moneyItems.MONEY_EURO_COIN_2E, | | |||
264 | moneyItems.MONEY_EURO_COIN_1E, | | |||
265 | moneyItems.MONEY_EURO_COIN_5C, | | |||
266 | moneyItems.MONEY_EURO_COIN_2C, | | |||
267 | moneyItems.MONEY_EURO_COIN_20C, | | |||
268 | moneyItems.MONEY_EURO_COIN_50C, | | |||
269 | moneyItems.MONEY_EURO_COIN_20C, | | |||
270 | moneyItems.MONEY_EURO_COIN_10C, | | |||
271 | moneyItems.MONEY_EURO_COIN_1C, | | |||
272 | moneyItems.MONEY_EURO_COIN_1C, | | |||
273 | ] | | |||
274 | }, | | |||
275 | { | | |||
276 | numberOfItem: 3, | | |||
277 | minPrice: 1, | | |||
278 | maxPrice: 3, | | |||
279 | pocket: [ | | |||
280 | moneyItems.MONEY_EURO_COIN_2E, | | |||
281 | moneyItems.MONEY_EURO_COIN_1E, | | |||
282 | moneyItems.MONEY_EURO_COIN_5C, | | |||
283 | moneyItems.MONEY_EURO_COIN_2C, | | |||
284 | moneyItems.MONEY_EURO_COIN_20C, | | |||
285 | moneyItems.MONEY_EURO_COIN_50C, | | |||
286 | moneyItems.MONEY_EURO_COIN_20C, | | |||
287 | moneyItems.MONEY_EURO_COIN_10C, | | |||
288 | moneyItems.MONEY_EURO_COIN_1C, | | |||
289 | moneyItems.MONEY_EURO_COIN_1C | | |||
290 | ] | | |||
291 | }, | | |||
292 | { | | |||
293 | numberOfItem: 4, | | |||
294 | minPrice: 0, | | |||
295 | maxPrice: 4, | | |||
296 | pocket: [ | | |||
297 | moneyItems.MONEY_EURO_COIN_2E, | | |||
298 | moneyItems.MONEY_EURO_COIN_1E, | | |||
299 | moneyItems.MONEY_EURO_COIN_5C, | | |||
300 | moneyItems.MONEY_EURO_COIN_2C, | | |||
301 | moneyItems.MONEY_EURO_COIN_20C, | | |||
302 | moneyItems.MONEY_EURO_COIN_50C, | | |||
303 | moneyItems.MONEY_EURO_COIN_20C, | | |||
304 | moneyItems.MONEY_EURO_COIN_10C, | | |||
305 | moneyItems.MONEY_EURO_COIN_1C, | | |||
306 | moneyItems.MONEY_EURO_COIN_1C, | | |||
307 | ] | | |||
308 | } | | |||
309 | ], | | |||
310 | | ||||
311 | BACK_WITHOUT_CENTS: [ | | |||
312 | { | | |||
313 | numberOfItem: 1, | | |||
314 | minPrice: 3, | | |||
315 | maxPrice: 9, | | |||
316 | paid: 10, | | |||
317 | pocket: [ | | |||
318 | moneyItems.MONEY_EURO_PAPER_5E, | | |||
319 | moneyItems.MONEY_EURO_COIN_2E, | | |||
320 | moneyItems.MONEY_EURO_COIN_1E, | | |||
321 | moneyItems.MONEY_EURO_COIN_2E, | | |||
322 | moneyItems.MONEY_EURO_PAPER_5E, | | |||
323 | moneyItems.MONEY_EURO_PAPER_5E, | | |||
324 | moneyItems.MONEY_EURO_COIN_1E, | | |||
325 | moneyItems.MONEY_EURO_COIN_1E, | | |||
326 | ] | | |||
327 | }, | | |||
328 | { | | |||
329 | numberOfItem: 1, | | |||
330 | minPrice: 1, | | |||
331 | maxPrice: 19, | | |||
332 | paid: 20, | | |||
333 | pocket: [ | | |||
334 | moneyItems.MONEY_EURO_PAPER_10E, | | |||
335 | moneyItems.MONEY_EURO_PAPER_5E, | | |||
336 | moneyItems.MONEY_EURO_COIN_2E, | | |||
337 | moneyItems.MONEY_EURO_COIN_1E, | | |||
338 | moneyItems.MONEY_EURO_COIN_2E, | | |||
339 | moneyItems.MONEY_EURO_PAPER_5E, | | |||
340 | moneyItems.MONEY_EURO_PAPER_5E, | | |||
341 | moneyItems.MONEY_EURO_COIN_1E, | | |||
342 | moneyItems.MONEY_EURO_COIN_1E | | |||
343 | ] | | |||
344 | }, | | |||
345 | { | | |||
346 | numberOfItem: 2, | | |||
347 | minPrice: 2, | | |||
348 | maxPrice: 29, | | |||
349 | paid: 30, | | |||
350 | pocket: [ | | |||
351 | moneyItems.MONEY_EURO_PAPER_10E, | | |||
352 | moneyItems.MONEY_EURO_PAPER_10E, | | |||
353 | moneyItems.MONEY_EURO_PAPER_5E, | | |||
354 | moneyItems.MONEY_EURO_COIN_2E, | | |||
355 | moneyItems.MONEY_EURO_COIN_1E, | | |||
356 | moneyItems.MONEY_EURO_COIN_2E, | | |||
357 | moneyItems.MONEY_EURO_PAPER_5E, | | |||
358 | moneyItems.MONEY_EURO_PAPER_5E, | | |||
359 | moneyItems.MONEY_EURO_COIN_1E, | | |||
360 | moneyItems.MONEY_EURO_COIN_1E | | |||
361 | ] | | |||
362 | }, | | |||
363 | { | | |||
364 | numberOfItem: 2, | | |||
365 | minPrice: 2, | | |||
366 | maxPrice: 39, | | |||
367 | paid: 40, | | |||
368 | pocket: [ | | |||
369 | moneyItems.MONEY_EURO_PAPER_10E, | | |||
370 | moneyItems.MONEY_EURO_PAPER_10E, | | |||
371 | moneyItems.MONEY_EURO_PAPER_5E, | | |||
372 | moneyItems.MONEY_EURO_COIN_2E, | | |||
373 | moneyItems.MONEY_EURO_COIN_1E, | | |||
374 | moneyItems.MONEY_EURO_COIN_2E, | | |||
375 | moneyItems.MONEY_EURO_PAPER_10E, | | |||
376 | moneyItems.MONEY_EURO_PAPER_5E, | | |||
377 | moneyItems.MONEY_EURO_COIN_1E, | | |||
378 | moneyItems.MONEY_EURO_COIN_1E | | |||
379 | ] | | |||
380 | }, | | |||
381 | { | | |||
382 | numberOfItem: 3, | | |||
383 | minPrice: 3, | | |||
384 | maxPrice: 49, | | |||
385 | paid: 50, | | |||
386 | pocket: [ | | |||
387 | moneyItems.MONEY_EURO_COIN_2E, | | |||
388 | moneyItems.MONEY_EURO_COIN_1E, | | |||
389 | moneyItems.MONEY_EURO_PAPER_10E, | | |||
390 | moneyItems.MONEY_EURO_PAPER_10E, | | |||
391 | moneyItems.MONEY_EURO_PAPER_5E, | | |||
392 | moneyItems.MONEY_EURO_COIN_1E, | | |||
393 | moneyItems.MONEY_EURO_PAPER_5E, | | |||
394 | moneyItems.MONEY_EURO_COIN_2E, | | |||
395 | moneyItems.MONEY_EURO_PAPER_20E, | | |||
396 | moneyItems.MONEY_EURO_COIN_1E | | |||
397 | ] | | |||
398 | }, | | |||
399 | { | | |||
400 | numberOfItem: 3, | | |||
401 | minPrice: 3, | | |||
402 | maxPrice: 60, | | |||
403 | paid: 100, | | |||
404 | pocket: [ | | |||
405 | moneyItems.MONEY_EURO_PAPER_10E, | | |||
406 | moneyItems.MONEY_EURO_PAPER_50E, | | |||
407 | moneyItems.MONEY_EURO_COIN_2E, | | |||
408 | moneyItems.MONEY_EURO_PAPER_20E, | | |||
409 | moneyItems.MONEY_EURO_PAPER_20E, | | |||
410 | moneyItems.MONEY_EURO_PAPER_5E, | | |||
411 | moneyItems.MONEY_EURO_COIN_2E, | | |||
412 | moneyItems.MONEY_EURO_COIN_1E, | | |||
413 | moneyItems.MONEY_EURO_COIN_1E, | | |||
414 | moneyItems.MONEY_EURO_COIN_1E | | |||
415 | ] | | |||
416 | }, | | |||
417 | { | | |||
418 | numberOfItem: 4, | | |||
419 | minPrice: 4, | | |||
420 | maxPrice: 70, | | |||
421 | paid: 100, | | |||
422 | pocket: [ | | |||
423 | moneyItems.MONEY_EURO_PAPER_10E, | | |||
424 | moneyItems.MONEY_EURO_PAPER_50E, | | |||
425 | moneyItems.MONEY_EURO_PAPER_5E, | | |||
426 | moneyItems.MONEY_EURO_COIN_1E, | | |||
427 | moneyItems.MONEY_EURO_PAPER_10E, | | |||
428 | moneyItems.MONEY_EURO_PAPER_20E, | | |||
429 | moneyItems.MONEY_EURO_PAPER_5E, | | |||
430 | moneyItems.MONEY_EURO_COIN_2E, | | |||
431 | moneyItems.MONEY_EURO_COIN_1E, | | |||
432 | moneyItems.MONEY_EURO_COIN_1E | | |||
433 | ] | | |||
434 | }, | | |||
435 | { | | |||
436 | numberOfItem: 4, | | |||
437 | minPrice: 4, | | |||
438 | maxPrice: 80, | | |||
439 | paid: 100, | | |||
440 | pocket: [ | | |||
441 | moneyItems.MONEY_EURO_PAPER_50E, | | |||
442 | moneyItems.MONEY_EURO_PAPER_20E, | | |||
443 | moneyItems.MONEY_EURO_PAPER_10E, | | |||
444 | moneyItems.MONEY_EURO_COIN_2E, | | |||
445 | moneyItems.MONEY_EURO_COIN_1E, | | |||
446 | moneyItems.MONEY_EURO_COIN_2E, | | |||
447 | moneyItems.MONEY_EURO_PAPER_10E, | | |||
448 | moneyItems.MONEY_EURO_PAPER_5E, | | |||
449 | moneyItems.MONEY_EURO_COIN_1E, | | |||
450 | moneyItems.MONEY_EURO_COIN_1E | | |||
451 | ] | | |||
452 | }, | | |||
453 | { | | |||
454 | numberOfItem: 4, | | |||
455 | minPrice: 4, | | |||
456 | maxPrice: 99, | | |||
457 | paid: 100, | | |||
458 | pocket: [ | | |||
459 | moneyItems.MONEY_EURO_PAPER_10E, | | |||
460 | moneyItems.MONEY_EURO_COIN_2E, | | |||
461 | moneyItems.MONEY_EURO_PAPER_5E, | | |||
462 | moneyItems.MONEY_EURO_COIN_1E, | | |||
463 | moneyItems.MONEY_EURO_COIN_1E, | | |||
464 | moneyItems.MONEY_EURO_COIN_2E, | | |||
465 | moneyItems.MONEY_EURO_PAPER_50E, | | |||
466 | moneyItems.MONEY_EURO_PAPER_20E, | | |||
467 | moneyItems.MONEY_EURO_PAPER_5E, | | |||
468 | moneyItems.MONEY_EURO_PAPER_5E | | |||
469 | ] | | |||
470 | } | | |||
471 | ], | | |||
472 | | ||||
473 | BACK_WITH_CENTS: [ | | |||
474 | { | | |||
475 | numberOfItem: 1, | | |||
476 | minPrice: 1, | | |||
477 | maxPrice: 3, | | |||
478 | paid: 5, | | |||
479 | pocket: [ | | |||
480 | moneyItems.MONEY_EURO_COIN_2E, | | |||
481 | moneyItems.MONEY_EURO_COIN_1E, | | |||
482 | moneyItems.MONEY_EURO_COIN_5C, | | |||
483 | moneyItems.MONEY_EURO_COIN_2C, | | |||
484 | moneyItems.MONEY_EURO_COIN_20C, | | |||
485 | moneyItems.MONEY_EURO_COIN_50C, | | |||
486 | moneyItems.MONEY_EURO_COIN_20C, | | |||
487 | moneyItems.MONEY_EURO_COIN_10C, | | |||
488 | moneyItems.MONEY_EURO_COIN_1C, | | |||
489 | moneyItems.MONEY_EURO_COIN_1C | | |||
490 | ] | | |||
491 | }, | | |||
492 | { | | |||
493 | numberOfItem: 1, | | |||
494 | minPrice: 1, | | |||
495 | maxPrice: 3, | | |||
496 | paid: 5, | | |||
497 | pocket: [ | | |||
498 | moneyItems.MONEY_EURO_COIN_2E, | | |||
499 | moneyItems.MONEY_EURO_COIN_1E, | | |||
500 | moneyItems.MONEY_EURO_COIN_5C, | | |||
501 | moneyItems.MONEY_EURO_COIN_2C, | | |||
502 | moneyItems.MONEY_EURO_COIN_20C, | | |||
503 | moneyItems.MONEY_EURO_COIN_50C, | | |||
504 | moneyItems.MONEY_EURO_COIN_20C, | | |||
505 | moneyItems.MONEY_EURO_COIN_10C, | | |||
506 | moneyItems.MONEY_EURO_COIN_1C, | | |||
507 | moneyItems.MONEY_EURO_COIN_1C | | |||
508 | ] | | |||
509 | }, | | |||
510 | { | | |||
511 | numberOfItem: 2, | | |||
512 | minPrice: 1, | | |||
513 | maxPrice: 3, | | |||
514 | paid: 5, | | |||
515 | pocket: [ | | |||
516 | moneyItems.MONEY_EURO_COIN_2E, | | |||
517 | moneyItems.MONEY_EURO_COIN_1E, | | |||
518 | moneyItems.MONEY_EURO_COIN_5C, | | |||
519 | moneyItems.MONEY_EURO_COIN_2C, | | |||
520 | moneyItems.MONEY_EURO_COIN_20C, | | |||
521 | moneyItems.MONEY_EURO_COIN_50C, | | |||
522 | moneyItems.MONEY_EURO_COIN_20C, | | |||
523 | moneyItems.MONEY_EURO_COIN_10C, | | |||
524 | moneyItems.MONEY_EURO_COIN_1C, | | |||
525 | moneyItems.MONEY_EURO_COIN_1C | | |||
526 | ] | | |||
527 | }, | | |||
528 | { | | |||
529 | numberOfItem: 3, | | |||
530 | minPrice: 1, | | |||
531 | maxPrice: 3, | | |||
532 | paid: 5, | | |||
533 | pocket: [ | | |||
534 | moneyItems.MONEY_EURO_COIN_2E, | | |||
535 | moneyItems.MONEY_EURO_COIN_1E, | | |||
536 | moneyItems.MONEY_EURO_COIN_5C, | | |||
537 | moneyItems.MONEY_EURO_COIN_2C, | | |||
538 | moneyItems.MONEY_EURO_COIN_20C, | | |||
539 | moneyItems.MONEY_EURO_COIN_50C, | | |||
540 | moneyItems.MONEY_EURO_COIN_20C, | | |||
541 | moneyItems.MONEY_EURO_COIN_10C, | | |||
542 | moneyItems.MONEY_EURO_COIN_1C, | | |||
543 | moneyItems.MONEY_EURO_COIN_1C | | |||
544 | ] | | |||
545 | }, | | |||
546 | { | | |||
547 | numberOfItem: 4, | | |||
548 | minPrice: 0, | | |||
549 | maxPrice: 4, | | |||
550 | paid: 5, | | |||
551 | pocket: [ | | |||
552 | moneyItems.MONEY_EURO_COIN_2E, | | |||
553 | moneyItems.MONEY_EURO_COIN_1E, | | |||
554 | moneyItems.MONEY_EURO_COIN_5C, | | |||
555 | moneyItems.MONEY_EURO_COIN_2C, | | |||
556 | moneyItems.MONEY_EURO_COIN_20C, | | |||
557 | moneyItems.MONEY_EURO_COIN_50C, | | |||
558 | moneyItems.MONEY_EURO_COIN_20C, | | |||
559 | moneyItems.MONEY_EURO_COIN_10C, | | |||
560 | moneyItems.MONEY_EURO_COIN_1C, | | |||
561 | moneyItems.MONEY_EURO_COIN_1C | | |||
562 | ] | | |||
563 | } | | |||
564 | ] | | |||
565 | } | | |||
566 | 31 | | |||
567 | var currentLevel | 32 | var currentLevel | ||
568 | var numberOfLevel | 33 | var numberOfLevel | ||
Context not available. | |||||
574 | 39 | | |||
575 | function start(items_, datasetName) { | 40 | function start(items_, datasetName) { | ||
576 | items = items_ | 41 | items = items_ | ||
577 | 42 | dataset = items.levels | |||
578 | switch(datasetName) { | 43 | switch(datasetName) { | ||
579 | case "WITHOUT_CENTS": | 44 | case "WITHOUT_CENTS": | ||
580 | dataset = fullDataset.WITHOUT_CENTS | 45 | centsMode = false | ||
581 | centsMode = false | 46 | backMode = false | ||
582 | backMode = false | | |||
583 | break | 47 | break | ||
amankumargupta: Indentation for break. Same for the following breaks.. | |||||
584 | case "WITH_CENTS": | 48 | case "WITH_CENTS": | ||
585 | dataset = fullDataset.WITH_CENTS | 49 | centsMode = true | ||
586 | centsMode = true | 50 | backMode = false | ||
587 | backMode = false | | |||
588 | break | 51 | break | ||
589 | case "BACK_WITHOUT_CENTS": | 52 | case "BACK_WITHOUT_CENTS": | ||
590 | dataset = fullDataset.BACK_WITHOUT_CENTS | 53 | centsMode = false | ||
591 | centsMode = false | 54 | backMode = true | ||
592 | backMode = true | | |||
593 | break | 55 | break | ||
594 | case "BACK_WITH_CENTS": | 56 | case "BACK_WITH_CENTS": | ||
595 | dataset = fullDataset.BACK_WITH_CENTS | 57 | centsMode = true | ||
596 | centsMode = true | 58 | backMode = true | ||
597 | backMode = true | | |||
598 | break | 59 | break | ||
599 | } | 60 | } | ||
600 | | ||||
601 | currentLevel = 0 | 61 | currentLevel = 0 | ||
602 | numberOfLevel = dataset.length | 62 | numberOfLevel = dataset.length | ||
603 | initLevel() | 63 | initLevel() | ||
Context not available. | |||||
606 | function stop() { | 66 | function stop() { | ||
607 | } | 67 | } | ||
608 | 68 | | |||
69 | function getCoinCount (pocket) { | ||||
70 | var count = 0 | ||||
71 | for(var i = 0; i < pocket.length; i++) { | ||||
72 | if(pocket[i].val <= 2) | ||||
73 | count++ | ||||
jjazeix: small typo: available | |||||
74 | } | ||||
I would use the dataset moneyItems, not directly the Constants one. Else the specific items won't be used. jjazeix: I would use the dataset moneyItems, not directly the Constants one. Else the specific items… | |||||
@jjazeix But there is a problem with using the dataset's moneyItems. If suppose we need to find change for 100 units paid, then the pocket values might not contain a 100 units note, it might instead contain one 50 units, two 20 units and one 10 units notes. So instead of just one 100 units note, tux will now hold 4 notes will would require alot of space and would hinder the visibility of individual notes. AkshayCHD: @jjazeix But there is a problem with using the dataset's moneyItems. If suppose we need to find… | |||||
It will be up to the person doing the dataset to take care of not having too much notes for the layout. jjazeix: It will be up to the person doing the dataset to take care of not having too much notes for the… | |||||
75 | return count; | ||||
76 | } | ||||
77 | | ||||
609 | function initLevel() { | 78 | function initLevel() { | ||
610 | items.bar.level = currentLevel + 1 | 79 | items.bar.level = currentLevel + 1 | ||
611 | | ||||
612 | items.answerModel.clear() | 80 | items.answerModel.clear() | ||
613 | items.pocketModel.clear() | 81 | items.pocketModel.clear() | ||
614 | 82 | | |||
615 | var data = dataset[currentLevel] | 83 | var data = dataset[currentLevel] | ||
616 | var pocket = Core.shuffle(data.pocket) | 84 | var pocket = Core.shuffle(data.pocket) | ||
85 | var coinCount = getCoinCount(pocket) | ||||
86 | items.pocketRows = (((data.pocket.length - coinCount / 2) > 9) ? 3 : 2) | ||||
I think the part: (avaliableCurrency[i].val > amountToBeCovered) is not needed because it should always be the case before breaking as we start from the higher value in a sorted array. jjazeix: I think the part: (avaliableCurrency[i].val > amountToBeCovered) is not needed because it… | |||||
The dataset is sorted in ascending order that is why i added that condition, but yes it won't be needed if i sort it in descending order. Will do that AkshayCHD: The dataset is sorted in ascending order that is why i added that condition, but yes it won't… | |||||
jjazeix: Then, it's the other condition that's not needed (one of the two is not). | |||||
87 | | ||||
617 | for (var i in pocket) | 88 | for (var i in pocket) | ||
Please follow the coding style everywhere and write a complete version of "for". Having "for" written in different ways everywhere is not uniform. amankumargupta: Please follow the coding style everywhere and write a complete version of "for". Having "for"… | |||||
618 | items.pocketModel.append(pocket[i]) | 89 | items.pocketModel.append(pocket[i]) | ||
619 | 90 | | |||
Context not available. | |||||
628 | // Calc a random price for each item based on the previous prices | 99 | // Calc a random price for each item based on the previous prices | ||
629 | price = Math.floor((centsMode ? 0 : 1) + | 100 | price = Math.floor((centsMode ? 0 : 1) + | ||
630 | Math.random() * | 101 | Math.random() * | ||
631 | ((priceTotal - priceCounter) / data.numberOfItem)) | 102 | (2 * (priceTotal - priceCounter) / data.numberOfItem)) | ||
632 | else | 103 | else | ||
633 | // Put the remaining missing price on the last item | 104 | // Put the remaining missing price on the last item | ||
634 | price = priceTotal - priceCounter | 105 | price = priceTotal - priceCounter | ||
Context not available. | |||||
665 | qsTr("Click on the coins or paper money at the bottom of the screen to pay." + | 136 | qsTr("Click on the coins or paper money at the bottom of the screen to pay." + | ||
666 | " If you want to remove a coin or note, click on it on the upper screen area.") | 137 | " If you want to remove a coin or note, click on it on the upper screen area.") | ||
667 | } else { | 138 | } else { | ||
668 | var tuxMoney | 139 | var availableCurrency = pocket.slice() | ||
669 | switch(data.paid) { | 140 | availableCurrency.sort(function sort(a, b) { return b.val - a.val }); | ||
670 | case 5: | 141 | var amountToBeCovered = data.paid | ||
can this part be made generic (computed from the moneyItems of the current dataset)? For example, if we take the previous Italian money (https://en.wikipedia.org/wiki/Italian_lira), 1€ is around 2000 Lira so the prices had higher values. jjazeix: can this part be made generic (computed from the moneyItems of the current dataset)? For… | |||||
@jjazeix I have done an implementation for it. You may have a look whenever you have time :) AkshayCHD: @jjazeix I have done an implementation for it. You may have a look whenever you have time :) | |||||
671 | tuxMoney = [moneyItems.MONEY_EURO_PAPER_5E] | 142 | var tuxMoney = [] | ||
672 | break | 143 | while(amountToBeCovered > 0) { | ||
673 | case 10: | 144 | var maxPossible = 0 | ||
674 | tuxMoney = [moneyItems.MONEY_EURO_PAPER_10E] | 145 | for(var i = 0; i < availableCurrency.length; i++) { | ||
675 | break | 146 | if((availableCurrency[i].val <= amountToBeCovered)) { | ||
676 | case 20: | 147 | maxPossible = availableCurrency[i] | ||
677 | tuxMoney = [moneyItems.MONEY_EURO_PAPER_20E] | 148 | break; | ||
678 | break | 149 | } | ||
679 | case 30: | 150 | } | ||
680 | tuxMoney = [moneyItems.MONEY_EURO_PAPER_20E, moneyItems.MONEY_EURO_PAPER_10E] | 151 | tuxMoney.push(maxPossible) | ||
681 | break | 152 | amountToBeCovered -= maxPossible.val; | ||
682 | case 40: | | |||
683 | tuxMoney = [moneyItems.MONEY_EURO_PAPER_20E, moneyItems.MONEY_EURO_PAPER_20E] | | |||
684 | break | | |||
685 | case 50: | | |||
686 | tuxMoney = [moneyItems.MONEY_EURO_PAPER_50E] | | |||
687 | break | | |||
688 | case 100: | | |||
689 | tuxMoney = [moneyItems.MONEY_EURO_PAPER_50E, moneyItems.MONEY_EURO_PAPER_50E] | | |||
690 | break | | |||
691 | } | 153 | } | ||
692 | items.tuxMoney.model = tuxMoney | 154 | items.tuxMoney.model = tuxMoney | ||
693 | 155 | | |||
Context not available. | |||||
722 | function getRandomObject(price) { | 184 | function getRandomObject(price) { | ||
723 | var list | 185 | var list | ||
amankumargupta: better rename it as "itemList" or "objectList"? | |||||
724 | if(price < 5) | 186 | if(price < 5) | ||
725 | list = cheapObjects | 187 | list = MoneyConstants.cheapObjects | ||
726 | else if(price < 10) | 188 | else if(price < 10) | ||
727 | list = normalObjects | 189 | list = MoneyConstants.normalObjects | ||
728 | else | 190 | else | ||
729 | list = expensiveObjects | 191 | list = MoneyConstants.expensiveObjects | ||
730 | 192 | | |||
731 | return list[Math.floor(Math.random() * list.length)] | 193 | return list[Math.floor(Math.random() * list.length)] | ||
732 | } | 194 | } | ||
Context not available. |
Do rename Constants as moneyConstants. Clear names are much better.