"H8\0" /* CS */
};
-static char _tiles_fr[106] = {
+#define NB_TILES_FR 102
+static char _tiles_fr[NB_TILES_FR] = {
' ', ' ',
'E', 'E', 'E', 'E', 'E', 'E', 'E', 'E', 'E', 'E', 'E', 'E', 'E', 'E', 'E',
'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
'Z'
};
-static lettervalue_t _lettervalues_fr[27] = {
+#define NB_LETTERVALUES_FR 27
+static lettervalue_t _lettervalues_fr[NB_LETTERVALUES_FR] = {
{' ', 0},
{'E', 1},
{'A', 1},
if (strcmp (lang, "fr") == 0) {
pt = &_bag;
- pt->nbtiles = sizeof (_tiles_fr);
+ pt->nbtiles = NB_TILES_FR;
pt->tiles = _tiles_fr;
- pt->nbletters = 27;
+ pt->nbletters = NB_LETTERVALUES_FR;
pt->lettervalues = _lettervalues_fr;
}
char *progname = NULL;
char *version = "0.1";
-char *language = "FR";
+char *boardname = "15x15-7";
+char *language = "fr";
int usage (int ret)
{
FILE *fd = ret ? stderr : stdout;
- fprintf (fd, "usage: %s [-h] [-l lang] [-v level]\n", progname);
+ fprintf (fd, "usage: %s [-b board] [-h] [-l lang] [-v level]\n", progname);
+ fprintf (fd, " -b: board (%s)\n", boardname);
fprintf (fd, " -h: help message\n");
fprintf (fd, " -l: language (%s)\n", language);
fprintf (fd, " -v: verbose level (%d)\n", verbose);
}
char c = arg[1];
switch (c) {
+ case 'b':
+ arg = (arg[2]) ? arg + 2 : (--argc > 0) ? *(++argv) : NULL;
+ if (arg) {
+ boardname = arg;
+ } else {
+ VERBOSE (ERROR, fprintf (stderr, "%s: no board specified\n", progname));
+ return usage (1);
+ }
+ break;
case 'l':
arg = (arg[2]) ? arg + 2 : (--argc > 0) ? *(++argv) : NULL;
if (arg) {
}
}
- board_t *board = getboard ("15x15-7");
+ board_t *board = getboard (boardname);
+ if (!board) {
+ VERBOSE (ERROR, fprintf (stderr, "board not found\n"));
+ return 1;
+ }
+ bag_t *bag = getbag (language);
+ if (!bag) {
+ VERBOSE (ERROR, fprintf (stderr, "language not found\n"));
+ return 1;
+ }
+
play_t *play = initplay (board->xsize, board->ysize);
VERBOSE (DEBUG, printf ("play: 0x%p\nboard: 0x%p\n", play, board));