// int i;
int row = 0, col = 0;
int orientation = 0;
int length = 0;
char *dict = NULL;
//
/*-------------------------------------------------------------*/
/*mnem_init(argv[0]);*/
if (argc != 3) {
if (argc <= 2) {
dict = "SOWPODS";
} else {
fprintf(stderr, "syntax: %s board.dat dict?\n", argv[0]);
exit(1);
}
} else dict = argv[2]; /* Default word list is TWL98 */
/* default param when debugging makes running gbd easier */
if (argv[1] == NULL) boardfile = "test.txt"; else boardfile = argv[1];
if (!dawg_init(dict, &dawg, &nedges)) {
fprintf(stderr, "%s: cannot open wordlist '%s'\n", argv[0], dict);
exit(2);
}
/* Clear the arrays */
assert(WIDTH == HEIGHT);
for (row = 0; row < (HEIGHT+2); row++) {
for (col = 0; col < (WIDTH+2); col++) {
board[row][col] = 0; apparent_letter[row][col] = 0;
crosschecks[row][col] = NULL;
vertical_word[row][col] = NULL;
vindex[row][col] = 0;
}
}
for (i = 0; i < 256; i++) {
tot[i] = 2; /* Blank ;-) */
score[i] = 0;
totprob[i] = 0.0;
watkins_rackvalue[i] = 25.0;
}
#ifdef SWEDISH
for (i = 0; i < 256; i++) {
tot[i] = 0; /* NEED TO ADD Blank! */
score[i] = 0;
totprob[i] = 0.0;
watkins_rackvalue[i] = 25.0;
}
score[latin1_tolower('A')] = 1; tot[latin1_tolower('A')] = 8;
score[latin1_tolower('Ä')] = 3; tot[latin1_tolower('Ä')] = 2;
score[latin1_tolower('B')] = 4; tot[latin1_tolower('B')] = 2;
score[latin1_tolower('C')] = 10;tot[latin1_tolower('C')] = 1;
score[latin1_tolower('D')] = 1; tot[latin1_tolower('D')] = 5;
score[latin1_tolower('E')] = 1; tot[latin1_tolower('E')] = 7;
score[latin1_tolower('F')] = 3; tot[latin1_tolower('F')] = 2;
score[latin1_tolower('G')] = 2; tot[latin1_tolower('G')] = 3;
score[latin1_tolower('H')] = 2; tot[latin1_tolower('H')] = 2;
score[latin1_tolower('I')] = 1; tot[latin1_tolower('I')] = 5;
score[latin1_tolower('J')] = 7; tot[latin1_tolower('J')] = 1;
score[latin1_tolower('K')] = 2; tot[latin1_tolower('K')] = 3;
score[latin1_tolower('L')] = 1; tot[latin1_tolower('L')] = 5;
score[latin1_tolower('M')] = 2; tot[latin1_tolower('M')] = 3;
score[latin1_tolower('N')] = 1; tot[latin1_tolower('N')] = 6;
score[latin1_tolower('O')] = 2; tot[latin1_tolower('O')] = 5;
score[latin1_tolower('Ö')] = 4; tot[latin1_tolower('Ö')] = 2;
score[latin1_tolower('P')] = 4; tot[latin1_tolower('P')] = 2;
score[latin1_tolower('R')] = 1; tot[latin1_tolower('R')] = 8;
score[latin1_tolower('S')] = 1; tot[latin1_tolower('S')] = 8;
score[latin1_tolower('T')] = 1; tot[latin1_tolower('T')] = 8;
score[latin1_tolower('U')] = 4; tot[latin1_tolower('U')] = 3;
score[latin1_tolower('V')] = 3; tot[latin1_tolower('V')] = 2;
score[latin1_tolower('X')] = 8; tot[latin1_tolower('X')] = 1;
score[latin1_tolower('Y')] = 7; tot[latin1_tolower('Y')] = 1;
score[latin1_tolower('Z')] = 8; tot[latin1_tolower('Z')] = 1;
score[latin1_tolower('Å')] = 4; tot[latin1_tolower('Å')] = 2;
score['?'] = 0; tot['?'] = 2;
{
int j;
char *nextp = FULLRACK;
for (i = 0; i < 256; i++) {
for (j = 0; j < tot[i]; j++) {
*nextp++ = i;
}
}
*nextp = '\0';
}
#else
// change here for other languages
for (i = 0; i < 26; i++) {
tot['a'+i] = itot[i];
score['a'+i] = iscore[i];
watkins_rackvalue['a'+i] = iwatkins_rackvalue[i];
}
#endif
/* hand-coded random board. This could be replaced by a more complex
format which includes tile distributions, values, language etc */
{int score; for (score = 0; score < MAX_PLAYSCORE; score++) playscore[score] = 0.0;}
strcpy(fullrack, FULLRACK); /* If no tiles given in file, do megamove analysis */
read_board_for_opps_move(boardfile);
if (tiles[0] == '\0') {
megaanalysis = TRUE;
tiles_held = strlen(fullrack);
strcpy(tiles, fullrack);
}
fprintf(logfile, "\nUnseen tiles are: %s\n\n", fullrack);
//fprintf(stderr, "test X\n"); fflush(stderr);