Le jeu du simon pour la meta -- By jicehel

Le jeu du Simon pour la META

Author :  jicehel

Voici une toute première version du jeu de Simon pour la META.

Je ne partage pas encore le code qui est loin d'être fini. Un gros nettoyage, l'ajout de la gestion du highscore, va être fait et surtout l'ajout d'options comme le mode multijoueur et une amélioration graphique mais en attendant, c'est une première version jouable.


See more
Author :  Sorunome

It looks nice so far, it seems i have issues like it doesn't always register my button press if i press the arrows too quickly on playback?

Also, I recall from my physical thing that the pattern it showed me got quicker and quicker the longer it got, maybe you could implement such a thing, too?

Author :  jicehel

Sure the game is just at the start point. I have added a menu to allow multi player but i have remove it on current version because my start was not good for that (I had some problems due to how i had start to organize it... so i have scratch all the main loop and system of state of the game i had written and just have make a first playable version as i had already fun with it during my tests  ;)

I will improve step by step and all your suggestions are welcome i have noted the idea to increase speed of lights show and the problem of the button not stored when you press it too quick. I'll begin with that in my next changes as i want want the one player working fine before begin to add multi player and other options to avoid the problem i have add trying to program all in one shot...  ;) 

I will post next versions each time that a good improvment has been done as if you test, you can discover bug and often it's easier to solve them first before continue to add other things

Author :  jicehel

It's will not really be visible but i have clean the code. I have add link to source and i'll be happy to have your advices (or your versions)  to make it better. Time for me to jump in my bed ...

Author :  jicehel

If someone can explain me how i can extract the procedures about sounds in an external h file, could be cool. I have problem to call procedures and use variables of others files from the Sons.h file. I can use the things from this file but i can't call other procedures or use variables from this... (and i know that its only because i don't know how to do it...)

Can you make an example with Sons.h and the actual procedure intro() to show me how i should do for others ?

Author :  Sorunome

If someone can explain me how i can extract the procedures about sounds in an external h file, could be cool

Even cleaner is a .h / .cpp separation, as that would mean you could include the header file in multiple locations without the actual content landing multiple times in the source. A rule of thumb is that a header file should "do nothing". That being said, it appears you are using gb.sound.tone()? I will show you below how to make it work with sound effects, whatever sound method you will be using should be fairly similar

sound.h

#ifndef _SOUND_H_
#define _SOUND_H_

#include <Gamebuino-Meta.h>

extern const Gamebuino_Meta::Sound_FX sfx_chest[];
extern const Gamebuino_Meta::Sound_FX sfx_badchest[];

#endif SOUND_H

sound.cpp

#include "sound.h"

const Gamebuino_Meta::Sound_FX sfx_chest[] = {
{Gamebuino_Meta::Sound_FX_Wave::SQUARE,1,147,0,0,67,5},
{Gamebuino_Meta::Sound_FX_Wave::SQUARE,1,147,0,0,63,5},
{Gamebuino_Meta::Sound_FX_Wave::SQUARE,0,147,0,0,56,13},
};

const Gamebuino_Meta::Sound_FX sfx_badchest[] = {
{Gamebuino_Meta::Sound_FX_Wave::SQUARE,1,147,0,0,567,4},
{Gamebuino_Meta::Sound_FX_Wave::NOISE,1,0,0,0,0,3},
{Gamebuino_Meta::Sound_FX_Wave::SQUARE,0,147,0,0,567,10},
};

Author :  jicehel

Thanks for your explain. I use gb.sound.tone because it's very easy to play a note with it and with the simon, the sounds are very simple so i not really need effect for this game (it's one of the reasons i have choisen it: a simple game but fun (i hope) to continue learning how to program.

I have many things to program in it (but should not be very hard in think) so to not have a program part too long cuting it in little part is very useful so many thanks for your example of sound.h / sound. cpp. I had seen it in 1942 shooter and some other prog but i hadn't really understood how it's works until you gave me this example. Will try to do it this night.

Author :  Sorunome

The idea is that the header file doesn't "do stuff", the extern keyword basically just says "hey, this variable exists but it is actually defined elsewhere", as defining it would "do stuff". So you define it in the cpp file.

You should try to apply the same concept to your Graphiques.h so that the header file has like

#ifndef _GRAPHIQUES_H_
#define _GRAPHIQUES_H_

#include <Gamebuino-Meta.h>

extern Image Simon;

// all the other images

#endif // GRAPHIQUES_H

and then the Graphiques.cpp would be like

#include "Graphiques.h"

const uint16_t SimonData[] = {67,64,1, 1, 0, 0, 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xefde,0xefde,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xefde,0xefde,0xffff,0xffff,0xffff,0xffff,0xffff,0xf77e,0xef5d,0xdeda,0xce38,0xc617,0xd658,0xd5f8,0xa533,0x9430,0x9430,0x9430,0xa4b3,0xad34,0xc5d6,0xdeda,0xf7dd,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xf7dd,0xf7dd,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xef5d,0xd5f8,0xac52,0x82cc,0x61a7,0x40a2,0x30c2,0x30c2,0x40a2,0x5040,0x40a2,0x58a2,0x40c4,0x4125,0x4125,0x4125,0x3145,0x4125,0x4227,0x836e,0xb595,0xef3b,0xffff,0xffff,0xffff,0xffff,0xffff,0xef9d,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xf7dd,0xffff,0xffff,0xf7dd,0xce38,0x9430,0x6249,0x5166,0x4022,0x4020,0x5040,0x50a1,0x6921,0x5800,0x6000,0x7820,0x6800,0x6000,0x7020,0x6000,0x6000,0x50a1,0x50a1,0x30c0,0x3020,0x2040,0x20c2,0x41a6,0x6bb1,0xbdd8,0xffff,0xffff,0xffff,0xefde,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xd5f8,0x836e,0x5145,0x40a2,0x4020,0x4020,0x5040,0x4000,0x6081,0x70a2,0x7081,0x7880,0x88c1,0x7840,0x8080,0x80c1,0x7060,0x80c1,0x6800,0x78a2,0x7082,0x4000,0x4000,0x4980,0x40a2,0x2842,0x20c2,0x3146,0x6b2c,0xbdd8,0xefde,0xffff,0xefde,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xefde,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xd65a,0x836e,0x40c4,0x4022,0x5042,0x5040,0x6042,0x7842,0x88a4,0x88a3,0x8040,0x8881,0x88a0,0x9121,0x8900,0x8940,0x8961,0x8981,0x7920,0x8140,0x8962,0x78a0,0x8060,0x90c2,0x90c3,0x6800,0x5000,0x50a1,0x4022,0x3020,0x30c2,0x20c2,0x6b2c,0xce99,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xe75e,0x8430,0x3146,0x4022,0x5042,0x7081,0x60a2,0x7862,0x9043,0x9000,0x9000,0xa061,0x9860,0x98a0,0x98e0,0x90e0,0x8920,0x91c0,0x8180,0x8180,0x9242,0x7980,0x81a0,0x91a1,0x9121,0x9080,0x9020,0x9040,0x8881,0x78a1,0x5860,0x7081,0x5040,0x3020,0x2040,0x41a6,0x8430,0xef5d,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xf77e,0xdeda,0x4a49,0x40c4,0x3042,0x5042,0x6041,0x7821,0x8800,0xa001,0xa800,0xa800,0xb8a2,0x9000,0xa0a0,0xa0e0,0xa100,0x9960,0x91a0,0x89c0,0x9200,0x81a0,0x89e0,0x81e0,0x8200,0x7140,0x8980,0x9940,0xa101,0x9840,0xa060,0x9000,0x9060,0x7881,0x4841,0x5040,0x4020,0x2040,0x20c2,0x734d,0xdeda,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xf77e,0xffff,0xffff,0xf77d,0xad34,0x4125,0x3020,0x5042,0x4861,0x6000,0x9862,0xa001,0xa800,0xb801,0xb000,0xa000,0x9000,0xb922,0x9880,0x98e0,0x9920,0x9140,0x9200,0x79c0,0x9281,0x8200,0x79e0,0x7a00,0x8a40,0x8a00,0x8180,0x80e0,0xa0e0,0x9020,0xa860,0xa820,0x9800,0xa082,0x7882,0x5021,0x7081,0x4020,0x2040,0x20a0,0x4a49,0xf77d,0xffff,0xffff,0xf7dd,0xffff,0xffff,0xefde,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xf77e,0x9430,0x2922,0x30c2,0x6924,0x68c2,0x7041,0x8821,0x9800,0xa800,0xb841,0xa000,0xa000,0xa060,0x9860,0x9040,0x90a0,0x9940,0x9160,0x9a22,0x8200,0x7a00,0x7a40,0x7a40,0x8ac2,0x8260,0x71a0,0x8180,0x99c0,0x9960,0x90c0,0x98a0,0x9840,0xa020,0xa800,0xa000,0x9800,0x9881,0x8000,0x5040,0x3042,0x10a2,0x2924,0x7bad,0xdeda,0xffff,0xf7dd,0xf7dd,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xf77d,0xb554,0x2922,0x20c2,0x30c2,0x58a2,0x5000,0x80a2,0x8000,0x9000,0xa820,0xa000,0xa800,0x9800,0xa040,0x9060,0x98c0,0x9120,0x9140,0x91c1,0x7980,0x7a00,0x8281,0x7aa1,0x7281,0x7260,0x7220,0x8a20,0x89c0,0x9160,0x9940,0x90c0,0x98c0,0x9840,0x9800,0xa800,0xa800,0xa000,0xa020,0x8800,0x5042,0x30c2,0x20c4,0x10a2,0x10a5,0x2a85,0xdeda,0xf7dd,0xffff,0xf7dd,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xf77d,0x836e,0x2924,0x10a2,0x2922,0x20a0,0x40a2,0x58a2,0x7081,0x5840,0x8081,0x8000,0xa800,0xa800,0xb000,0xa000,0x9860,0x90c0,0x8100,0x89a0,0x7960,0x8221,0x7a20,0x7a61,0x7281,0x7281,0x7260,0x7a40,0x8200,0x89a0,0x8940,0x9940,0x9900,0x98a0,0x9040,0x9820,0xa800,0xa001,0x9042,0x7822,0x6000,0x4022,0x20c4,0x10a5,0x10a5,0x10a5,0x10a2,0x4a49,0xef5d,0xf7dd,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xf77d,0x8430,0x1141,0x10a2,0x2922,0x1141,0x10a2,0x10a2,0x30c2,0x30c2,0x4020,0x5040,0x5820,0x8041,0x9000,0x9000,0x9800,0x98a1,0x8880,0x9160,0x91c1,0x8180,0x8a20,0x7a20,0x7a41,0x7261,0x7260,0x7240,0x7a40,0x8200,0x89c0,0x99c1,0x88c0,0x98e0,0x9880,0x9020,0x9800,0xa821,0x8800,0x6842,0x5022,0x4022,0x2842,0x10a5,0x8a7,0x8c8,0x10a5,0x8c8,0x10a2,0x5b2e,0xf7dd,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0x9d14,0x2922,0x1141,0x1a0,0x140,0x1a0,0x1141,0x10a2,0x10a2,0x10a2,0x20c2,0x3020,0x4020,0x7081,0x8081,0x6841,0x90c2,0x8840,0x9880,0x90a0,0x8900,0x9180,0x89c0,0x8200,0x7a20,0x7a20,0x7a00,0x7a00,0x8200,0x81e0,0x81a0,0x8100,0x9940,0x98a0,0xa0a0,0xa061,0xa000,0xa042,0x8862,0x4861,0x5042,0x3042,0x10a5,0x94a,0xed,0xcd,0x8c8,0x10a5,0x10a5,0x10a2,0x9491,0xf77d,0xffff,0xef5d,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xbe17,0x21a4,0x1141,0x1a0,0x180,0x1a0,0x180,0x180,0x1141,0x1141,0x10a2,0x10a2,0x20c2,0x2040,0x2040,0x3020,0x5042,0x4800,0x7881,0x8880,0x88a0,0x9100,0xa1c0,0x8980,0x81e0,0x8200,0x81e0,0x81e0,0x81c0,0x89c0,0x81a0,0x8980,0x9980,0x90a0,0xa0a0,0x9820,0x8800,0x9862,0x7800,0x5000,0x4020,0x3042,0x10a5,0x8c8,0xec,0x172,0x173,0xcd,0x8c8,0x8c8,0x10a2,0x20c4,0xdeda,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xf7dd,0x4b69,0x1125,0x1141,0x160,0x1e0,0x1e0,0x1c0,0x180,0x180,0x2922,0x1141,0x10a2,0x10a2,0x10a2,0x2842,0x20c2,0x3020,0x3020,0x7081,0x6060,0x78a0,0x80a0,0x9120,0x9140,0x89a0,0x89c0,0x89c0,0x89a0,0x89a0,0x8980,0x9160,0x9920,0x98a0,0xa060,0xa861,0x9000,0x90a3,0x6000,0x7081,0x3020,0x3020,0x20c4,0x10a5,0x8a8,0x152,0x194,0x1b4,0x153,0xcd,0x10a5,0x10a5,0x2924,0x4a49,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0x9cd2,0x10a2,0x1a0,0x180,0x1e0,0x220,0x260,0x260,0x240,0x1e0,0x1a0,0x120,0x10a2,0x1141,0x10a2,0x10a2,0x20c4,0x20c2,0x20a0,0x20a0,0x2800,0x4800,0x78e1,0x7040,0x9982,0x8940,0x8960,0x8960,0x9160,0x9140,0x9120,0x9900,0x98a0,0xa8e1,0x9820,0x9000,0x8041,0x5800,0x5040,0x2040,0x20c2,0x3042,0x10a5,0x8c8,0x10c,0x1b5,0x215,0x255,0x1d5,0x132,0x89,0x10a5,0x10a2,0x20c4,0xb556,0xffff,0xffff,0xffff,0xffff,0xffff,0xefde,0xffff,0xffff,0xffff,0xffff,0xffff,0xdeda,0x4a49,0x1141,0x9c2,0x1e0,0x260,0x2a0,0x2a0,0x2c0,0x2a0,0x260,0x200,0x1a0,0x120,0x1141,0x10a2,0x10a2,0x10a2,0x10a2,0x20c2,0x10a2,0x2040,0x3800,0x4000,0x70a2,0x7020,0x80a0,0x88c0,0x88e0,0x90e0,0x90c0,0x98a0,0x9860,0x9840,0x8000,0x8040,0x7082,0x5061,0x4020,0x3020,0x20c4,0x10a2,0x10a5,0x2946,0x10b,0x195,0x217,0x278,0x2b7,0x297,0x1d6,0xf0,0x94a,0x10a5,0x10a5,0x4a49,0xefde,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xf77e,0x9430,0x1141,0x1a0,0x1c0,0x240,0x2c0,0x2e0,0x2e0,0x2e0,0x2e0,0x2c0,0x280,0x200,0x1c0,0x120,0x1141,0x10a2,0x10a2,0x20c2,0x10a2,0x10a2,0x20a0,0x2040,0x3000,0x4000,0x6041,0x6840,0x7060,0x7880,0x8080,0x8860,0x9040,0x9820,0x8820,0x7862,0x5861,0x5040,0x3020,0x40a2,0x20c2,0x20c2,0x10a5,0x10a5,0x1108,0x194,0x237,0x2d8,0x318,0x358,0x358,0x257,0x174,0xac,0x1125,0x10a5,0x10a2,0xc65a,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xc617,0x4a49,0x10a2,0x180,0x220,0x2a0,0x300,0x300,0x300,0x300,0x300,0x300,0x2e0,0x2a0,0x200,0x1a0,0x1a0,0x10a2,0x20c2,0x10a2,0x20c2,0x10a2,0x20c2,0x20a0,0x20a0,0x3020,0x2000,0x2800,0x3000,0x4000,0x4800,0x6000,0x7800,0x8800,0x7840,0x6921,0x30c0,0x2040,0x10a2,0x20a0,0x20c2,0x10a2,0x1125,0x10c7,0x191,0x238,0x2d8,0x378,0x398,0x398,0x397,0x358,0x217,0x131,0x94a,0x94a,0x1141,0x6b2c,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xf7dd,0xffff,0xffff,0x842f,0x1141,0x1a0,0x1e0,0x2a0,0x320,0x300,0x321,0x321,0x321,0x321,0x321,0x300,0x2e0,0x280,0x1e0,0x1c0,0x1141,0x10a2,0x20c2,0x20c2,0x10a2,0x10a2,0x20c2,0x20a0,0x2040,0x2040,0x2040,0x20a0,0x30c0,0x3042,0x4022,0x5042,0x50a1,0x40a0,0x2040,0x20a0,0x20c4,0x10a2,0x10a2,0x20c2,0x2946,0x94a,0x16e,0x238,0x299,0x378,0x3b7,0x3b7,0x3b7,0x3b7,0x3f6,0x2f8,0x1b7,0xc9,0x94a,0x1141,0x1125,0xcf9a,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xd6b9,0x42c7,0x1141,0x180,0x240,0x300,0x341,0x341,0x341,0x341,0x341,0x341,0x341,0x341,0x320,0x300,0x260,0x1e0,0x160,0x1141,0x10a2,0x10a2,0x10a2,0x10a5,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x2040,0x2040,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x20c4,0x20c4,0x10a5,0x94a,0x92b,0x236,0x2b9,0x358,0x3d7,0x3f6,0x3f6,0x3d6,0x3d6,0x416,0x397,0x238,0x10e,0x94a,0x10a5,0x10a2,0xa4b3,0xffff,0xffff,0xffff,0xffff,0xffff,0xf7dd,0xf7dd,0x842f,0x1141,0x1a0,0x1c0,0x2c0,0x361,0x361,0x341,0x362,0x362,0x362,0x362,0x361,0x361,0x341,0x320,0x2e0,0x200,0x1a0,0x1141,0xb595,0xbdd6,0x10a2,0xc5d6,0x10a2,0xc5d6,0x10a2,0x10a2,0x10a2,0xc5d8,0x10a2,0x10a5,0xc5d8,0x2842,0x20a0,0xd658,0x10a2,0xb595,0x2842,0x10a5,0x10a2,0x10a5,0x1129,0x214,0x2b9,0x358,0x3d6,0x416,0x3f6,0x3f5,0x3f6,0x3d6,0x415,0x3f6,0x2f7,0x171,0x10e6,0x1125,0x2924,0x62ca,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xef3b,0x4b69,0x1141,0x140,0x240,0x300,0x381,0x361,0x362,0xb83,0xb83,0xb83,0x382,0x362,0x362,0x361,0x341,0x301,0x220,0x160,0xbdd6,0x10a2,0x10a2,0x20c2,0xc617,0x10a2,0xc5d6,0xb554,0x20c2,0xc5d6,0xbdd6,0x10a2,0xbdd8,0x10a5,0xbdd6,0x10a2,0xb595,0x842f,0xb556,0x20c4,0x10a5,0x10a5,0x8e8,0x1f3,0x2b9,0x338,0x3d6,0x436,0x415,0x415,0x415,0x415,0x3f5,0xc14,0x1434,0x375,0x214,0x1128,0x5acb,0x20c4,0x4167,0xf77e,0xffff,0xffff,0xffff,0xffff,0xffff,0xa533,0x2922,0x1141,0x160,0x280,0x362,0x382,0x382,0xb83,0xb84,0x1384,0xb84,0xb83,0xb83,0x362,0x362,0x362,0x301,0x1e0,0x140,0x10a2,0xbe17,0x3145,0x10a2,0xbdd6,0x10a2,0xce38,0x8430,0xbdd6,0x8430,0xbe17,0x1125,0xbdd6,0x10a5,0xc65a,0x10a2,0xad95,0xc617,0xce38,0x10a5,0x10a5,0x8c8,0x170,0x2d8,0x358,0x3f6,0x435,0x435,0x455,0xc34,0xc34,0xc35,0xc34,0x1433,0x1c73,0xbd4,0x2b4,0x1108,0x3967,0x20c4,0x3146,0xbdd8,0xffff,0xffff,0xffff,0xffff,0xffff,0x7bad,0x1141,0x1a0,0x1a0,0x2e0,0x383,0x383,0x1384,0x1365,0x1b66,0x1b66,0x1385,0x1384,0xb83,0xb82,0x362,0x362,0x2c0,0x1e0,0x1141,0x10a2,0x10a2,0xc617,0x10a5,0xbdd6,0x10a2,0xbdd6,0x10a2,0x836e,0x10a2,0xbdd6,0x10a2,0xbdd8,0x10a2,0xbdd8,0x10a2,0xbe17,0x2924,0xbdd6,0x10a5,0x8c8,0xee,0x238,0x338,0x3f6,0x435,0x455,0x474,0xc74,0xc74,0xc74,0xc54,0xc54,0x1433,0x2c73,0x1414,0x1334,0x12a,0x39c8,0x3188,0x20c4,0xad34,0xffff,0xffff,0xffff,0xffff,0xe6fc,0x2a85,0x10a2,0x120,0x200,0x321,0x384,0x1364,0x1b65,0x2347,0x2347,0x2347,0x1b66,0x1b65,0x1384,0xb83,0xb83,0xb62,0x280,0x1e0,0x1141,0xbe17,0xbdd6,0x3145,0x10a2,0xc617,0x10a2,0xad95,0x10a2,0x10a2,0x10a2,0xc617,0x10a2,0x10a2,0xc5d6,0x20c4,0x10a2,0xbdd8,0x10a2,0xbdd8,0x10a5,0xaa,0x1f5,0x2f8,0x3f6,0x455,0x474,0x494,0xc94,0xcb4,0x1494,0x1494,0x1494,0xc74,0x1453,0x3492,0x1c13,0x1b94,0x14c,0x4208,0x3188,0x3146,0x8430,0xffff,0xffff,0xffff,0xffff,0xce38,0x2924,0x1141,0x160,0x260,0x342,0xb84,0x1365,0x1b66,0x2b48,0x2b29,0x2b28,0x2347,0x1b66,0x1385,0xb84,0xb63,0xb42,0x260,0x180,0x1141,0x10a2,0x10a2,0x10a5,0x10a2,0x10a5,0x1125,0x10a2,0x20c2,0x10a2,0x2922,0x20c2,0x10a2,0x2922,0x3145,0x2924,0x20c4,0x10a5,0x10a2,0x10a2,0x8a8,0x153,0x279,0x397,0x455,0x494,0xcb3,0xcb3,0xcd4,0x14b3,0x14b3,0x14b3,0x14b3,0x1494,0x1c53,0x3c92,0x1c72,0x2394,0x16f,0x4209,0x52cc,0x3146,0x6b2c,0xffff,0xffff,0xffff,0xffff,0x9cd2,0x1141,0x1141,0x180,0x2a0,0x362,0xb64,0x1b65,0x2367,0x2b48,0x3329,0x3328,0x2347,0x1b66,0x1365,0xb64,0xb83,0x342,0x240,0x140,0x10a2,0x10a2,0x10a2,0x10a2,0x10a5,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x2924,0x10a2,0x20c4,0x10a2,0x20c4,0x94a,0x8cb,0x1b6,0x338,0x416,0x495,0x4b4,0xcb3,0xcd3,0x1cd3,0x1cd3,0x24d3,0x24d3,0x1cd3,0x14d3,0x1cb3,0x4472,0x2c73,0x23d4,0x98e,0x422a,0x52cc,0x31a6,0x4a49,0xffff,0xffff,0xffff,0xffff,0x8430,0x2922,0x1141,0x180,0x2a0,0x382,0xb84,0x1365,0x1b66,0x2347,0x2b48,0x2b48,0x2347,0x1b65,0x1364,0xb83,0x383,0x302,0x200,0x1a0,0x1141,0x10a2,0x10a2,0x10a5,0x10a5,0x1125,0x20a0,0x10a2,0x10a2,0x10a2,0x10a2,0x1141,0x10a2,0x10a5,0x20c4,0x20c4,0x10a5,0x20c4,0x10a5,0x10a5,0x10d,0x216,0x357,0x475,0x494,0xcb4,0xcd3,0x1cd3,0x24d3,0x2cb2,0x3c92,0x3492,0x24d3,0x1cd3,0x1cb2,0x3cb1,0x2c52,0x2bf3,0x1ce,0x4a4a,0x52cc,0x31a6,0x3188,0xffff,0xffff,0xffff,0xffff,0x9cd2,0x1141,0x2922,0x1a0,0x2c0,0x382,0xb83,0x1364,0x1385,0x1b66,0x2366,0x2346,0x1b65,0x1384,0xb83,0x383,0x362,0x260,0x1a0,0x1141,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x20c4,0x10a2,0x2922,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x2924,0x10a2,0x20c4,0x20c4,0x10a5,0x8c8,0x170,0x278,0x3d7,0x495,0x4b4,0xcb4,0x14d3,0x1cd3,0x3492,0x4492,0x4c92,0x4c92,0x3492,0x24d2,0x2cb2,0x4492,0x3492,0x23f3,0x1ce,0x4a4a,0x5b2e,0x2922,0x4227,0xffff,0xffff,0xffff,0xffff,0xb554,0x1141,0x1141,0x180,0x2c0,0x382,0xb63,0xb83,0x1384,0x1385,0x1365,0x1385,0x1384,0xb83,0xb83,0x362,0x2a0,0x241,0x1a0,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a5,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a5,0x10a2,0x10a2,0x10a2,0x10a2,0x10a5,0x8c8,0x1b3,0x2b9,0x416,0x475,0x4b4,0x4d4,0xcd3,0x24d3,0x3492,0x4492,0x5471,0x4c92,0x3c92,0x2cb2,0x2cb2,0x4492,0x2c52,0x23d4,0x9cf,0x526a,0x6b6e,0x2924,0x31a6,0xffff,0xffff,0xffff,0xffff,0x9491,0x10a2,0x1a0,0x1a0,0x2c0,0x382,0x362,0x383,0xb83,0xb83,0xb83,0xb83,0xb83,0x383,0x382,0x2a0,0x240,0x1a0,0x10a2,0x1141,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a5,0x10a2,0x10a2,0x10a2,0x20a0,0x10a2,0x10a2,0x10a2,0x2924,0x10a2,0x10a2,0x10a2,0x20c4,0x8c8,0xaa,0x1b7,0x319,0x436,0x474,0x494,0xcb4,0xcd3,0x1cd3,0x2c93,0x3c92,0x4492,0x4492,0x3492,0x24d2,0x3492,0x4492,0x3472,0x2bb4,0x9ee,0x5289,0x6bb1,0x2924,0x5b2e,0xffff,0xffff,0xffff,0xffff,0x842f,0x1141,0x1141,0x180,0x2c0,0x362,0x362,0x362,0x362,0x362,0x362,0x362,0x362,0x362,0x2e0,0x240,0x1a0,0x1141,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a5,0x10a5,0x1125,0x2922,0x10a2,0x10a2,0x1141,0x10a2,0x1125,0x20c4,0x20c4,0x20c4,0x20c4,0x10a5,0x8c8,0xef,0x218,0x378,0x436,0x455,0x494,0x4b3,0xcd3,0x14d3,0x24d3,0x2cb2,0x2cb2,0x2cb2,0x2cb2,0x2493,0x3492,0x3c92,0x2c32,0x23b3,0x11ec,0x5289,0x52cc,0x2946,0x6b2c,0xffff,0xffff,0xffff,0xffff,0x732a,0x10a2,0x1141,0x180,0x280,0x361,0x362,0x341,0x361,0x361,0x361,0x341,0x341,0x300,0x220,0x160,0x1141,0x10a2,0x10a2,0x10a5,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a5,0x10a2,0x20a0,0x10a2,0x10a2,0x10a2,0x2922,0x10a2,0x10a5,0x20c4,0x10a5,0xc8,0x154,0x279,0x3b7,0x435,0x455,0x474,0x494,0xcb4,0xcd3,0x14d3,0x1cd3,0x1cd3,0x24d3,0x1cd3,0x1cb3,0x3c92,0x3c92,0x2c33,0x2333,0x2a0c,0x526a,0x4a49,0x2946,0x8430,0xffff,0xffff,0xffff,0xffff,0x4a49,0x1141,0x1141,0x140,0x260,0x320,0x341,0x321,0x341,0x341,0x341,0x341,0x320,0x260,0x1c0,0x1141,0x10a2,0x10a2,0x10a2,0x10a5,0x2922,0x10a2,0x20a0,0x20c2,0x20a0,0x10a2,0x20c2,0x20c2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x20c4,0x10a5,0xa9,0x176,0x238,0x378,0x416,0x455,0x454,0x474,0xc94,0xcb4,0xcd4,0xcd3,0x14d3,0x14d3,0x1494,0x2493,0x3c92,0x2c52,0x23f3,0xad1,0x3a2b,0x4a49,0x2946,0x31a6,0x9cd2,0xffff,0xffff,0xffff,0xffff,0x6b2c,0x1141,0x10a2,0x1a0,0x220,0x300,0x341,0x321,0x321,0x321,0x321,0x320,0x2a0,0x1e0,0x1a0,0x10a2,0x10a2,0x1141,0x10a5,0x10a2,0x10a2,0x20a0,0x10a2,0x30c0,0x20a0,0x20a0,0x20c2,0x20c2,0x10a2,0x10a2,0x2040,0x20a0,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x10a2,0x8c8,0x131,0x1d8,0x2f8,0x3f7,0x435,0x454,0x475,0xc74,0xc94,0xc94,0xc94,0xcb4,0x14b3,0x14b3,0x1c72,0x3492,0x2452,0x23f3,0xa2e,0x4a4a,0x4208,0x2924,0x41a6,0xbdd6,0xffff,0xffff,0xffff,0xffff,0x8453,0x1141,0x10a2,0x1141,0x1c0,0x2a0,0x320,0x300,0x2e1,0x300,0x300,0x2e0,0x200,0x140,0x1141,0x10a2,0x10a5,0x10a2,0x10a2,0x10a2,0x10a2,0x30c0,0x4980,0x4980,0x30c0,0x20a0,0x2040,0x20a0,0x10a2,0x10a2,0x2040,0x2040,0x1125,0x10a2,0x1141,0x10a2,0x10a2,0x10a2,0x10a5,0xa8,0x1d5,0x278,0x397,0x416,0x435,0x455,0x455,0xc54,0xc74,0xc74,0xc74,0xc74,0x1454,0x2473,0x2c93,0x1c13,0x13b4,0x19ac,0x4209,0x4a49,0x2924,0x4227,0xdeda,0xffff,0xffff,0xffff,0xffff,0xbdd6,0x20c4,0x10a2,0x1141,0x160,0x240,0x2e0,0x300,0x2e0,0x2e0,0x2e0,0x260,0x1a0,0x1125,0x10a2,0x1141,0x20c4,0x10a2,0x20a0,0x20a0,0x4980,0x5120,0x61a0,0x59a0,0x4940,0x4100,0x4980,0x30c0,0x30c0,0x30c0,0x30c0,0x2040,0x10a2,0x10a2,0x1125,0x10a2,0x1141,0x10a2,0x10a5,0x94a,0x16d,0x237,0x2f8,0x3d7,0x416,0x415,0x435,0x435,0xc35,0xc55,0xc54,0xc54,0x1433,0x1cb3,0x1454,0xbf4,0x2b1,0x296a,0x39c7,0x3146,0x31a6,0x732a,0xffff,0xffff,0xffff,0xffff,0xffff,0xce38,0x2924,0x10a2,0x1141,0x140,0x200,0x2c0,0x2e0,0x2e0,0x2c0,0x2a0,0x1e0,0x1a0,0x1141,0x10a5,0x20c2,0x20a0,0x20a0,0x30c0,0x38e0,0x7a64,0x7242,0x7241,0x7a81,0x6a20,0x6200,0x51a0,0x59e2,0x4981,0x3940,0x4162,0x30c0,0x20a0,0x10a2,0x1125,0x10a2,0x20c2,0x10a2,0x10a2,0x10a5,0x94a,0x1d1,0x258,0x338,0x3d7,0x416,0x415,0x435,0x435,0x435,0x435,0x435,0x1454,0x1c74,0xbf5,0x355,0x98e,0x2147,0x2987,0x20c4,0x4227,0x8430,0xffff,0xffff,0xffff,0xffff,0xffff,0xef5d,0x4a49,0x10a2,0x10a2,0x1141,0x1a0,0x260,0x2a0,0x2a0,0x2a0,0x260,0x1a0,0x1141,0x10a2,0x2922,0x20c2,0x20a0,0x2922,0x4981,0x6a42,0x7a81,0x7a80,0x82a0,0x82c0,0x7a80,0x8301,0x7280,0x7281,0x6a40,0x6221,0x5a02,0x4161,0x2922,0x20a0,0x10a2,0x10a5,0x10a2,0x20c4,0x20a0,0x10a2,0x10a5,0x8e6,0x1f3,0x258,0x358,0x3f7,0x3f6,0x3f6,0x415,0x415,0x415,0x415,0x1454,0xc35,0x3b6,0x294,0x92a,0x1904,0x3188,0x3146,0x41a6,0xce38,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0x6bb1,0x10a2,0x10a2,0x1141,0x140,0x1e0,0x260,0x280,0x280,0x1e0,0x120,0x1141,0x10a2,0x10a2,0x2922,0x30c0,0x41c0,0x72c2,0x72c0,0x9342,0x7a80,0x9340,0x9320,0x9360,0x82e0,0x8b40,0x8300,0x7ac0,0x8322,0x72a1,0x72a3,0x59e2,0x4141,0x30c0,0x2040,0x20c2,0x20c2,0x20c2,0x10a2,0x1125,0x1125,0xe9,0x1d4,0x257,0x358,0x3d7,0x3f6,0x3f6,0x3f5,0x3f5,0x3f4,0x455,0x3f6,0x2b7,0x16e,0x18e6,0x2986,0x2946,0x31a6,0x6b2c,0xef5d,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xbdd8,0x20c2,0x10a2,0x10a2,0x1a0,0x180,0x200,0x220,0x200,0x160,0x1141,0x10a2,0x20a0,0x20a0,0x2922,0x41c0,0x6ae1,0x72e0,0x8300,0x8b00,0x9340,0x9340,0x9340,0x9b80,0xa3e1,0x9360,0x9ba0,0x9b80,0x8b20,0x8b41,0x7aa0,0x7ac3,0x6223,0x4961,0x4980,0x20a0,0x20a0,0x20c4,0x20c4,0x10a2,0x10a5,0x1125,0x909,0x1d4,0x257,0x357,0x3d6,0x3d6,0x3b6,0x3f6,0x3f6,0x3f5,0x2f7,0x1d4,0x8c8,0x94a,0x1125,0x2986,0x4227,0xacf4,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xef5d,0x4a49,0x1141,0x10a2,0x1141,0x120,0x1a0,0x1c0,0x160,0x1a0,0x1141,0x20a0,0x20a0,0x2922,0x3140,0x6ae2,0x7b41,0x7b20,0x9380,0x8300,0x9b80,0x9ba0,0x9b80,0x9340,0x9bc0,0x9380,0x9380,0xa3c0,0x9b80,0x9b80,0xa3e3,0x82e0,0x7aa1,0x8305,0x6a64,0x3920,0x30c0,0x10a2,0x10a2,0x1141,0x1125,0x10a5,0x10a5,0x109,0x1b3,0x257,0x338,0x3d7,0x3d6,0x3d7,0x3f6,0x317,0x217,0x10d,0x94a,0x94a,0x2946,0x2a85,0x4a49,0xe6fc,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0x8c90,0x10a2,0x10a2,0x10a2,0x2922,0x140,0x180,0x120,0x1141,0x10a2,0x20a0,0x20a0,0x28e0,0x6282,0x6ac0,0x7b20,0x8b40,0x8b20,0x9ba0,0x9ba0,0x9360,0x9b80,0xa401,0x9be0,0x9be0,0xa400,0x9ba0,0xac00,0x9b80,0x9b80,0xa3c1,0x8b00,0x82e0,0x72a1,0x7282,0x5a02,0x4980,0x20a0,0x20a0,0x10a2,0x10a2,0x10a2,0x8c8,0x8c8,0x1b2,0x237,0x2f8,0x357,0x378,0x317,0x217,0x131,0x94a,0x94a,0x1125,0x1125,0x2a85,0xa4b3,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xcf9a,0x2924,0x10a2,0x1141,0x10a2,0x2924,0x120,0x2922,0x1141,0x10a2,0x20a0,0x4980,0x5a02,0x72e2,0x8321,0x8300,0x8b40,0x9380,0x9320,0x9b81,0x9b80,0xa402,0x9380,0x93c0,0x9c00,0x9be0,0x9bc0,0xa400,0x9bc0,0x9be0,0x9360,0xa401,0x8b40,0x8b41,0x8322,0x72a1,0x6a83,0x4160,0x2922,0x10a2,0x20a0,0x20c2,0x10a2,0x10a5,0x94a,0x96f,0x1d5,0x237,0x299,0x236,0x151,0xa8,0x1125,0x1125,0x2924,0x31a6,0x4a49,0xef5d,0xf77e,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0x7c0e,0x1141,0x10a2,0x10a2,0x1141,0x2986,0x1125,0x1141,0x10a2,0x2922,0x51c2,0x72c3,0x72a0,0x8320,0x8b20,0x9360,0x9360,0x9361,0x9b81,0x9ba2,0x9bc1,0x93e0,0x9c20,0x9c20,0x9c20,0x9c20,0x9c00,0x9c00,0x9be0,0x9bc0,0x9ba0,0x93a0,0x8b40,0x9381,0x8301,0x72c1,0x7b04,0x5201,0x3920,0x2922,0x10a2,0x10a2,0x2922,0x10a5,0x3188,0x12c,0x1f3,0x1b7,0x132,0xaa,0x10a5,0x20c4,0x20c4,0x3145,0x4a49,0x9d14,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xcf9a,0x3185,0x10a2,0x10a2,0x1141,0x1141,0x1141,0x20a0,0x2922,0x4140,0x6a62,0x6a60,0x8b41,0x8b00,0x9b80,0x9340,0x9360,0x9381,0x93a2,0x93c2,0x93e1,0x9400,0x9420,0x9440,0x9440,0x9440,0x9420,0x9420,0x9400,0x93e0,0x93c0,0x93a0,0x9bc0,0x9360,0x9381,0x8321,0x72c0,0x8b84,0x6281,0x5a42,0x3100,0x2922,0x20a0,0x20c2,0x20c4,0x10a5,0x8c8,0x10d,0xc8,0x10a5,0x2946,0x20c4,0x2922,0x3185,0x5b2e,0xefde,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xad34,0x10a2,0x10a2,0x10a2,0x10a2,0x20a0,0x20a0,0x4980,0x51c0,0x6a60,0x8b42,0x8b20,0x8b00,0x9320,0x9b80,0x9380,0x9380,0x93c1,0x93c1,0x93e0,0x9420,0x9440,0x9460,0x9460,0x9460,0x9440,0x9440,0x9400,0x93e0,0x93c0,0x93a0,0x9ba0,0x8b40,0x8b20,0x9381,0x8320,0x7ae0,0x7b20,0x6a80,0x6241,0x49a1,0x3920,0x4980,0x10a2,0x2924,0x1125,0x10a5,0x1125,0x10a5,0x10a5,0x20c4,0x3146,0x4a49,0xc5d8,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xdeda,0x6b8c,0x20c2,0x10a2,0x20c4,0x10a2,0x30c0,0x4160,0x5a20,0x7ae1,0x7ac0,0x8b20,0x9340,0xa3c1,0x9340,0x9380,0x93a0,0x93c0,0x93e0,0x9400,0x9420,0x9440,0x9460,0x9460,0x9460,0x9460,0x9440,0x9400,0x93e0,0x93c0,0x93a0,0x8b40,0x9bc1,0x9380,0x8b40,0x93a1,0x8320,0x8340,0x7b00,0x7ae2,0x72a3,0x6242,0x59e2,0x4982,0x20a0,0x10a2,0x2924,0x10a2,0x20c2,0x1125,0x31a6,0x31a6,0xad34,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xd6b9,0x31a6,0x20c2,0x10a2,0x30c2,0x30c0,0x49c0,0x6242,0x72c2,0x7ac1,0x7aa0,0x8ae0,0x82c0,0x9b60,0x9380,0x93a0,0x93c0,0x93e0,0x9400,0x9420,0x9440,0x9460,0x9460,0x9460,0x9440,0x9420,0x9400,0x93e0,0x93c0,0x93a0,0x9380,0x9360,0x9be2,0x8b40,0x8b40,0x8b40,0x9360,0x7280,0x7aa0,0x7281,0x72c3,0x6222,0x4981,0x2922,0x20c2,0x2922,0x2924,0x2946,0x20c4,0x31a6,0x8430,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xbe17,0x31a6,0x2924,0x10a2,0x20a0,0x30c0,0x49c1,0x6242,0x6a41,0x9343,0x9342,0x9320,0x9b60,0x9360,0x93a0,0x93c0,0x93e0,0x9400,0x9420,0x9420,0x9420,0x9440,0x9440,0x9420,0x9420,0x9400,0x93e0,0x93c0,0x93a0,0x9be1,0x7ae0,0x93a1,0x9360,0x8b20,0x82e0,0x8b40,0x9361,0x7ac1,0x6a61,0x5a01,0x51c2,0x2922,0x20c2,0x20c2,0x20c2,0x2924,0x2986,0x31a6,0x73ae,0xef5d,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xad34,0x4a49,0x20c2,0x10a2,0x2922,0x30c0,0x3900,0x6a44,0x7263,0x7a60,0x9322,0x8b20,0x9360,0x9380,0x93c0,0x93e0,0x93e0,0x93e0,0x93e0,0x9c00,0x9400,0x9400,0x9400,0x9400,0x93e0,0x93e0,0x93c0,0x93c0,0x93c0,0x9380,0x9380,0x8b40,0x9b82,0x9362,0x82c0,0x7240,0x6a82,0x5a02,0x3900,0x2922,0x20a0,0x20c2,0x10a2,0x2922,0x2946,0x4a49,0x9cd2,0xef5d,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xbdd6,0x3145,0x2922,0x20a0,0x20a0,0x30c0,0x2922,0x51a1,0x7262,0x7aa1,0x82e0,0x8b41,0x8b80,0x8ba0,0x93c0,0x93e0,0x93e0,0x9be0,0x9be0,0x9be0,0x9400,0x93e0,0x93e0,0x93e0,0x93c0,0x93c0,0x93a0,0x93a0,0x8b60,0x8b40,0x8b62,0x8302,0x72a1,0x7a82,0x6221,0x4160,0x4980,0x30c0,0x20a0,0x2922,0x10a2,0x20c2,0x20c4,0x31a6,0x8cd5,0xe75e,0xffff,0xefde,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xad34,0x3145,0x10a2,0x4980,0x20a0,0x4980,0x20a0,0x3940,0x49c0,0x72c3,0x72c1,0x8342,0x8b61,0x8340,0x9be1,0xa401,0x9be0,0x9be0,0x9be0,0xa420,0x93c0,0x93e0,0xa440,0x93c0,0x9bc0,0x9380,0x8b81,0x93c3,0x7ae2,0x72a2,0x6a63,0x5a23,0x49a2,0x4980,0x20a0,0x2842,0x2842,0x20c2,0x10a2,0x20c2,0x3185,0x4a49,0x8430,0xef5d,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xbdd6,0x41a6,0x20c2,0x2922,0x20a0,0x51e4,0x51e4,0x2922,0x3100,0x51e0,0x6aa2,0x7b03,0x72e1,0x8341,0x72c0,0x8b60,0x9bc1,0x93c1,0x8ba0,0x9c01,0x8b80,0x8b60,0x8b60,0x93a1,0x8b62,0x7ae1,0x6240,0x6a83,0x5a23,0x3941,0x2922,0x20a0,0x20a0,0x20c2,0x20c4,0x20c4,0x2924,0x2922,0x3145,0x41c8,0x9cd2,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xefde,0xffff,0xffff,0xffff,0xbdd6,0x6aec,0x20c4,0x20c4,0x3146,0x41c8,0x3122,0x3982,0x3941,0x3100,0x3920,0x5201,0x6261,0x72e2,0x8343,0x72c1,0x7b02,0x8383,0x7ae1,0x72c0,0x8ba4,0x72a1,0x6a61,0x6aa2,0x5a01,0x4980,0x4980,0x2922,0x2922,0x2922,0x2922,0x2922,0x20a0,0x20c2,0x2922,0x2924,0x3145,0x6b2c,0xce38,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xefde,0xffff,0xffff,0xd65a,0x9473,0x41c8,0x3146,0x2924,0x41a6,0x41c5,0x41a5,0x3983,0x49c3,0x41a2,0x3100,0x4180,0x30c0,0x3940,0x49a0,0x3960,0x51e1,0x4180,0x4140,0x4980,0x30c0,0x2922,0x4980,0x2922,0x2922,0x2922,0x2922,0x2922,0x2922,0x2922,0x2922,0x21a4,0x3185,0x4a49,0x9cd2,0xef5d,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xefde,0xffff,0xffff,0xffff,0xffff,0xc5d8,0x73ae,0x2946,0x20c4,0x31a6,0x4a49,0x41c6,0x7bad,0x732a,0x732a,0x41a4,0x41c4,0x49e5,0x41a4,0x3983,0x41a4,0x49c4,0x4183,0x3922,0x49a4,0x49a4,0x41a6,0x41a6,0x3146,0x3145,0x2924,0x2924,0x2924,0x2922,0x21a4,0x4227,0x6b8c,0xce99,0xef9d,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xef5d,0xbdd6,0x7bad,0x31a6,0x2924,0x3145,0x31a6,0x62ca,0x6b2c,0x73ae,0x39a6,0x41e6,0x39a6,0x4207,0x39a6,0x41c6,0x41a6,0x41a6,0x41a6,0x3145,0x4a49,0x41c8,0x3188,0x3146,0x2946,0x2946,0x2986,0x4a49,0x7c0e,0xc617,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xf7dd,0xc617,0x73ae,0x4a49,0x4a49,0x31a6,0x31a6,0x41c8,0x18e3,0x31a6,0x3186,0x41c8,0x41c8,0x41c8,0x41c8,0x4a49,0x41c8,0x41a6,0x31a6,0x3185,0x31a6,0x31a6,0x4a49,0x52cc,0x9cd2,0xdeda,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xf7dd,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xdeda,0xbdd6,0x8430,0x6b6e,0x4a49,0x4a49,0x41c8,0x41c8,0x31a6,0x2946,0x2946,0x2924,0x3145,0x31a6,0x4a49,0x4a49,0x732a,0x6b2c,0x9cd2,0xce38,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xf7dd,0xf7dd,0xf7dd,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xef5d,0xdeda,0xbdd6,0xad34,0x9491,0x8430,0x8430,0x8430,0x9cd2,0xad34,0xc617,0xd6b9,0xef5d,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xf7dd,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xf7dd,0xf7dd,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xf7dd,0xffff,0xffff,0xffff,0xf7dd,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff};
Image Simon(SimonData);

// all the other images

Author :  jicehel

Sorunome or any other people who know how to use include: it's good now with the variables but i have something to do has i have eror when i use


Sons.cpp: In function 'int intro()':

Sons.cpp:5: error: no matching function for call to 'Gamebuino_Meta::Gui::popup(const Gamebuino_Meta::MultiLang [], int)'

     gb.gui.popup(NewGamePopup, 50);


Error:  exit status 1
no matching function for call to 'Gamebuino_Meta::Gui::popup(const Gamebuino_Meta::MultiLang [], int)'


I have put file hee: https://github.com/Jicehel/Simon-pour-META/tree/Update-(with-errors)


Thanks to correct the error done or to say me what i have to add. I'll understand one day..  ;)

Author :  Sorunome

1st: #include <D:\Jean-Charles\META\Simon\Simon.h> just do #include "Simon.h" and it'll find the file.

2nd: As explained in the language tutorial if you use #includes with extern linking the compiler won't know how long the MultiLang[] arrays are, so you gotta tell it that. You can either do this by setting LANGUAGE_DEFAULT_SIZE (in your case to 2) in config-gamebuino or by manually passing the amount of language entries like this: gb.gui.popup(NewGamePopup, 50, 2);

I hope that helps

Author :  jicehel

1st => It was i done first but i had that it don't find the.h

I have try again to remove path before but i have always this messge: D:\Jean-Charles\META\Simon\Simon.ino:6:49: fatal error: Graphiques.h: No such file or directory

 #include <Graphiques.h>  //import des graphiques

=> So i'll writte again the path as it works. I think its a problem of config or something like that but will fix it later as it don't be a real problem for the program  ;)


2nd: Thanks for this other solution, i had read it but i forgotten it. Works fine  ;)


I have updated files working now thanks to your help in https://github.com/Jicehel/Simon-pour-META and i'll continue to update it. Not sure i'll not ask another question later ...   ;)   (I'll add  language.cpp and language.h files too  as proposed in the language tutorial )

Author :  Sorunome

You have to do #include "Graphiques.h" and not #include <Graphiques.h>, note the difference of "" and <>.


Author :  jicehel

Sorry, i need another help to make a string from 3 parts

  • First is ChaineJoueur:
const MultiLang lang_joueur[] = {
  { LANG_EN, "Player " },   { LANG_FR, "Joueur " },
  { LANG_DE, "Spieler " },  { LANG_ES, "jugador " },
};
const char* ChaineJoueur = gb.language.get(lang_joueur);
  • Second is the int : JoueurActif
  • Third is another MultiLang string:¬†
const MultiLang lang_tour_jouer[] = {
  { LANG_EN, ",it's your turn to play" },   { LANG_FR, ", c'est ton tour de jouer" },
  { LANG_DE, ", jetzt sind Sie dran" },  { LANG_ES, ", es tu turno de jugar" },
};
const char* ChaineTourDeJouer = gb.language.get(lang_tour_jouer);


I have try some things but i have errors. I put one of the bad part of the code below:

          JoueurActif = (JoueurActif+1);  
          Message = strcat(ChaineJoueur, JoueurActif);
          Message = strcat(Message, ChaineTourDeJouer);
          gb.gui.popup(Message, 20,LANGUAGE_DEFAULT_SIZE);

When i try it, i have these errors mesages

D:\Jean-Charles\META\Simon\Simon.ino: In function 'void TourOrdinateur()':

Simon:136: error: invalid conversion from ‚Äėconst char*‚Äô to ‚Äėchar*‚Äô [-fpermissive]

       Message = strcat(ChaineJoueur, JoueurActif);

                                                 ^</span></pre>

How should i do it ?

Author :  jicehel

PS: I had try other things like: Message = ChaineJoueur + JoueurActif + ChaineTourDeJouer; but i have errors too 

Simon:136: error: invalid operands of types 'const char*' and 'const char*' to binary 'operator+'

D:\Jean-Charles\META\Simon\Simon.ino: In function ‚Äėvoid TourOrdinateur()‚Äô:

       Message = ChaineJoueur + JoueurActif + ChaineTourDeJouer;

Simon:136: error: invalid operands of types ‚Äėconst char*‚Äô and ‚Äėconst char*‚Äô to binary ‚Äėoperator+‚Äô

                                              ^

       Message = ChaineJoueur + JoueurActif + ChaineTourDeJouer;

Simon:137: error: no matching function for call to ‚ÄėGamebuino_Meta::Gui::popup(char*&, int, int)‚Äô

                                              ^

       gb.gui.popup(Message, <span class="hljs-number">20</span>,LANGUAGE_DEFAULT_SIZE);

                                                     ^

Simon:137: error: no matching function for call to ‚ÄėGamebuino_Meta::Gui::popup(char*&, int, int)‚Äô


Sorry for that, it's an error of type of var i think but i'm not good yet in c. If someone can show me how to do, thanks in advance

Main it's the conversion from point char* string => string that i don't control (less more than others things...). It's written in langage tutorial that i could use the var as nprmal strings but i think i don't really know how to well use strings... (I tought i was able but i missed some things, it's seems for the moment)

Author :  jicehel

If i try to declare as string:

const MultiLang lang_joueur[] = {
  { LANG_EN, "Player " },   { LANG_FR, "Joueur " },
  { LANG_DE, "Spieler " },  { LANG_ES, "Jugador " },
};
const char ChaineJoueur[12] = gb.language.get(lang_joueur);

const MultiLang lang_tour_jouer[] = {
{ LANG_EN, ",it's your turn to play" }, { LANG_FR, ", c'est ton tour de jouer" },
{ LANG_DE, ", jetzt sind Sie dran" }, { LANG_ES, ", es tu turno de jugar" },
};
const char ChaineTourDeJouer[30] = gb.language.get(lang_jouer);

I have this error:

Language.cpp:63: error: array must be initialized with a brace-enclosed initializer

const char ChaineJoueur[12] = gb.language.get(lang_joueur);

                                                      ^

Language.cpp:69: error: 'lang_jouer' was not declared in this scope

const char ChaineTourDeJouer[30] = gb.language.get(lang_jouer);

Author :  Chimrod

You've got a typo between lang_jouer and lang_joueur (check : there is a missing u in the first expression)

Author :  jicehel

No the both exist: lang_joueur is the const string for 'player' is english, french, spanish and german and lang_jouer is the const string for the rest of the sentence after the number of the player to say that it's his turn to play.

I could do thing another way but i would understand this error because it's a thing i don't know with c (as alot thing atm in this language but i'll try to learn quickly ;) )

Author :  Chimrod

You named it lang_tour_jouer not lang_jouer !

Author :  jicehel

Yes, that's right, it's explain the second error. I'll correct it this night but i don't think that it's the main problem where is an error too in the first one (ChaineJoueur[12]). I have tried first to not limit it (Chainejoueur[]) but it seems not like it.

Author :  Chimrod

Je viens de voir à ton premier message que tu parlais français ! 


Je n'ai pas l'environnement Arduino ici pour tester, mais quelque chose me parait bizzare sur ta ligne :

const char ChaineJoueur[12] = gb.language.get(lang_joueur); 

Tu d√©finis ici la variable ChaineJoueur comme constante (ce qui permet certaines optimisations m√©moire), mais elle n'est pas constante puisqu'il s'agit du r√©sultat d'une √©valuation. Je pense qu'apr√®s const char ChaineJoueur[12]le compilateur s'attend √† voir = { ‚Ķ } (la d√©finition standard d'un tableau), d'o√Ļ l'erreur donn√©e au moment de la compilation.

Si l'hypothèse est juste, il te suffit de retirer le const pour faire compiler le code !