void showboard (play_t *play, board_t *board, int xoffset, int yoffset, int full)
{
- int x, y;
- for (x = -1; x <= board->xsize; x++) {
- for (y = -1; y <= board->ysize; y++) {
+ for (int x = -1; x <= board->xsize; x++) {
+ for (int y = -1; y <= board->ysize; y++) {
int c = ' ';
char pos[12] = {0};
sprintf (pos, "%c%d", 'A' + y, 1 + x);
void _displaytitle (char *title, int xoffset, int yoffset)
{
- int i;
- for (i = 0; title[i] != '\0'; i++) {
+ for (int i = 0; title[i] != '\0'; i++) {
mvaddch (yoffset, xoffset + i, title[i]);
mvaddch (yoffset + 1, xoffset + i, ACS_HLINE);
}
int j = 2;
j += _helpwindow (msg, xoffset, yoffset + j, length);
j++;
- j += _helpwindow (msg2, xoffset, yoffset + j, length);
+ /*j +=*/ _helpwindow (msg2, xoffset, yoffset + j, length);
return length;
}
void valuewindow (bag_t *bag, int xoffset, int yoffset, int length, char current)
{
_displaytitle ("Tile values", xoffset, yoffset);
- int i;
int n = length / 5;
int N = (bag->nbletters + n - 1) / n;
- for (i = 0; i < bag->nbletters; i++) {
+ for (int i = 0; i < bag->nbletters; i++) {
int x = xoffset + (i % 2) + 5 * (i / N);
int y = yoffset + 2 + (i % N);
set_color (((bag->lettervalues + i)->letter == current) ? yellow : black);
void drawwindow (draw_t *game, int score, int xoffset, int yoffset, int mode)
{
- int i;
-
- for (i = 0; i < 2 * game->nbtiles - 1; i++) {
+ for (int i = 0; i < 2 * game->nbtiles - 1; i++) {
mvaddch (yoffset - 1, xoffset + i, ACS_HLINE);
mvaddch (yoffset, xoffset + i, ' ');
mvaddch (yoffset + 1, xoffset + i, ACS_HLINE);
}
set_color (black);
- for (i = 0; i < game->nbtiles; i++) {
+ for (int i = 0; i < game->nbtiles; i++) {
if (game->tiles[i] != ' ') {
mvaddch (yoffset, xoffset + 2 * i, game->tiles[i]);
}
void spellwindow (word_t *words, int xoffset, int yoffset, int mode)
{
_displaytitle ("Spelling", xoffset, yoffset);
- int i, n = 0;
- for (i = 0; i < words->maxnbwords; i++) {
+ for (int i = 0, n = 0; i < words->maxnbwords; i++) {
if (words->status[i] != none) {
if (mode) {
switch (words->status[i]) {
mvaddstr (yoffset + 2 + n, xoffset, words->tab[i]);
set_color (white);
} else {
- int j;
- for (j = 0; words->tab[i][j] != '\0'; j++) {
+ for (int j = 0; words->tab[i][j] != '\0'; j++) {
mvaddch (yoffset + 2 + n, xoffset + j, ' ');
}
}
int _nbletters (play_t *play)
{
- int i, n = 0;
- for (i = 0; i < play->xsize * play->ysize; i++) {
+ int n = 0;
+ for (int i = 0; i < play->xsize * play->ysize; i++) {
if (play->tab[i] != ' ') {
n++;
}
void retrievetiles (draw_t *draw, draw_t *game, int mode)
{
- int i;
if (mode) {
- for (i = 0; i < game->nbtiles; i++) {
+ for (int i = 0; i < game->nbtiles; i++) {
if (game->tiles[i] != ' ') {
draw->tiles[draw->nbtiles++] = game->tiles[i];
game->tiles[i] = ' ';
}
}
}
- for (i = 0; (i < game->nbtiles) && (draw->nbtiles > 0); i++) {
+ for (int i = 0; (i < game->nbtiles) && (draw->nbtiles > 0); i++) {
if (game->tiles[i] != ' ') {
continue;
}
char getnextletter (draw_t *game)
{
char letter = 0;
- int i;
- for (i = 0; i < game->nbtiles; i++) {
+ for (int i = 0; i < game->nbtiles; i++) {
game->index = (game->index + 1) % game->nbtiles;
if (game->tiles[game->index] != ' ') {
letter = game->tiles[game->index];
int returnletter (draw_t *game, char letter)
{
- int i, ret = 0;
- for (i = 0; i < game->nbtiles; i++) {
+ int ret = 0;
+ for (int i = 0; i < game->nbtiles; i++) {
if (game->tiles[i] == ' ') {
game->tiles[i] = letter;
game->index = i - 1;
int _findvalue (bag_t *bag, char letter)
{
int value = 0;
- int k;
- for (k = 0; k < bag->nbletters; k++) {
+ for (int k = 0; k < bag->nbletters; k++) {
if (bag->lettervalues[k].letter == letter) {
value = bag->lettervalues[k].value;
break;
int intern = 0;
int score = 0;
- int i, j;
-
/* words in line */
- for (j = 0; j < play->ysize; j++) {
+ for (int j = 0; j < play->ysize; j++) {
int s = 0;
int accountable = 0;
int wfactor = 1;
int nbletters = 0;
- for (i = 0; i < play->xsize; i++) {
+ for (int i = 0; i < play->xsize; i++) {
char letter = *_getletteraddr (play, i, j);
if (letter != ' ') {
}
/* words in column */
- for (i = 0; i < play->xsize; i++) {
+ for (int i = 0; i < play->xsize; i++) {
int s = 0;
int accountable = 0;
int wfactor = 1;
int nbletters = 0;
- for (j = 0; j < play->ysize; j++) {
+ for (int j = 0; j < play->ysize; j++) {
char letter = *_getletteraddr (play, i, j);
if (letter != ' ') {
int isturnempty (play_t *turn)
{
int ret = 1;
- int i;
- for (i = 0; i < turn->xsize * turn->ysize; i++) {
+ for (int i = 0; i < turn->xsize * turn->ysize; i++) {
if (turn->tab[i] != ' ') {
ret = 0;
break;
word_t *initword (int maxnbwords, int maxlength)
{
- int i;
word_t *words = (word_t *) calloc (1, sizeof (word_t));
CHECKALLOC (words);
words->tab = (char **) calloc (maxnbwords, sizeof (char *));
CHECKALLOC (words->tab);
- for (i = 0; i < maxnbwords; i++) {
+ for (int i = 0; i < maxnbwords; i++) {
words->tab[i] = (char *) calloc (maxlength, 1);
CHECKALLOC (words->tab[i]);
}
{
if (words) {
if (words->tab) {
- int i;
- for (i = 0; i < words->maxnbwords; i++) {
+ for (int i = 0; i < words->maxnbwords; i++) {
free (words->tab[i]);
}
}
void findwords (word_t *words, play_t *play, play_t *turn)
{
- int i, j;
-
/* clean */
- for (i = 0; i < words->maxnbwords; i++) {
+ for (int i = 0; i < words->maxnbwords; i++) {
words->tab[i][0] = '\0';
words->status[i] = none;
}
int n = 0;
/* words in line */
- for (j = 0; j < play->ysize; j++) {
+ for (int j = 0; j < play->ysize; j++) {
int nbletters = 0;
int accountable = 0;
- for (i = 0; i < play->xsize; i++) {
+ for (int i = 0; i < play->xsize; i++) {
char letter = *_getletteraddr (play, i, j);
if (letter != ' ') {
words->tab[n][nbletters++] = letter;
}
/* words in column */
- for (i = 0; i < play->xsize; i++) {
+ for (int i = 0; i < play->xsize; i++) {
int nbletters = 0;
int accountable = 0;
- for (j = 0; j < play->ysize; j++) {
+ for (int j = 0; j < play->ysize; j++) {
char letter = *_getletteraddr (play, i, j);
if (letter != ' ') {
words->tab[n][nbletters++] = letter;
int l1 = strlen (str1);
int l2 = strlen (str2);
int l = (l1 < l2) ? l1 : l2;
- int i;
- for (i = 0; i < l; i++) {
+ for (int i = 0; i < l; i++) {
if (str1[i] != '.') {
ret = str1[i] - str2[i];
if (ret != 0) {
{
FILE *fd = (dict) ? fopen (dict, "r") : NULL;
if (fd) {
- int i;
char str[128] = {0};
while (fscanf (fd, "%s", str) > 0) {
int stop = 1;
- for (i = 0; i < words->maxnbwords; i++) {
+ for (int i = 0; i < words->maxnbwords; i++) {
if (words->status[i] == notchecked) {
if (_strrcmp (words->tab[i], str) == 0) {
words->status[i] = correct;
}
}
fclose (fd);
- for (i = 0; i < words->maxnbwords; i++) {
+ for (int i = 0; i < words->maxnbwords; i++) {
if (words->status[i] == notchecked) {
words->status[i] = incorrect;
}
void checkspellingfromcache (word_t *words, char **listofwords)
{
if (listofwords) {
- int i;
while (*listofwords) {
int stop = 1;
- for (i = 0; i < words->maxnbwords; i++) {
+ for (int i = 0; i < words->maxnbwords; i++) {
if (words->status[i] == notchecked) {
if (_strrcmp (words->tab[i], *listofwords) == 0) {
words->status[i] = correct;
break;
}
}
- for (i = 0; i < words->maxnbwords; i++) {
+ for (int i = 0; i < words->maxnbwords; i++) {
if (words->status[i] == notchecked) {
words->status[i] = incorrect;
}
char *savedata (int nbplayers, char *lang, char *board, play_t *play, draw_t *draw, draw_t **game, int n, play_t **turn, int *score)
{
- int i;
char *buffer = (char *) calloc (10000, 1);
CHECKALLOC (buffer);
l += sprintf (buffer + l, "play->tab: \"%s\"\n", play->tab);
l += sprintf (buffer + l, "draw->nbtiles: %d\n", draw->nbtiles);
l += sprintf (buffer + l, "draw->tiles: \"%s\"\n", draw->tiles);
- for (i = 0; i < nbplayers; i++) {
+ for (int i = 0; i < nbplayers; i++) {
l += sprintf (buffer + l, "game[%d]->nbtiles: %d\n", i, game[i]->nbtiles);
l += sprintf (buffer + l, "game[%d]->tiles: \"%s\"\n", i, game[i]->tiles);
}
l += sprintf (buffer + l, "current: %d\n", n);
l += sprintf (buffer + l, "turn[%d]->tab: \"%s\"\n", n, turn[n]->tab);
- for (i = 0; i < nbplayers; i++) {
+ for (int i = 0; i < nbplayers; i++) {
l += sprintf (buffer + l, "score[%d]: %d\n", i, score[i]);
}
if (fd) {
fseek (fd, 0, SEEK_END);
int size = ftell (fd);
+ if (size == -1) {
+ VERBOSE (WARNING, printf ("can't fully read file (%s)\n", filename));
+ fclose (fd);
+ return buffer;
+ }
buffer = (char *) calloc (size + 1, 1);
CHECKALLOC (buffer);
}
if (*board) {
- int i;
play->xsize = (*board)->xsize;
play->ysize = (*board)->ysize;
- for (i = 0; i < MAXNBPLAYERS; i++) {
+ for (int i = 0; i < MAXNBPLAYERS; i++) {
turn[i]->xsize = (*board)->xsize;
turn[i]->ysize = (*board)->ysize;
}
/* main function */
int main (int argc, char *argv[])
{
- int n;
-
/* get basename */
char *pt = progname = argv[0];
while (*pt) {
draw_t *draw = initdraw (bag);
draw_t **game = (draw_t **) calloc (MAXNBPLAYERS, sizeof (draw_t *));
CHECKALLOC (game);
- for (n = 0; n < MAXNBPLAYERS; n++) {
+ for (int n = 0; n < MAXNBPLAYERS; n++) {
game[n] = newdraw (board->length);
}
- for (n = 0; n < nbplayers; n++) {
+ for (int n = 0; n < nbplayers; n++) {
retrievetiles (draw, game[n], 0);
}
VERBOSE (DEBUG, printf ("bag: 0x%p\ndraw: 0x%p\ngame: 0x%p\ngame[0]: 0x%p", bag, draw, game, game[0]));
play_t **turn = (play_t **) calloc (MAXNBPLAYERS, sizeof (play_t *));
CHECKALLOC (turn);
- for (n = 0; n < MAXNBPLAYERS; n++) {
+ for (int n = 0; n < MAXNBPLAYERS; n++) {
turn[n] = initplay (board->xsize, board->ysize);
}
CHECKALLOC (xdrawwin);
int *ydrawwin = (int *) calloc (MAXNBPLAYERS, sizeof (int));
CHECKALLOC (ydrawwin);
- for (n = 0; n < MAXNBPLAYERS; n++) {
+ for (int n = 0; n < MAXNBPLAYERS; n++) {
xdrawwin[n] = 1 + n * xoffset + n * (board->length * 2 - 1);
ydrawwin[n] = 2 * yoffset + max (board->ysize, 1 + (bag->nbletters + 1) /2);
}
int *score = (int *) calloc (MAXNBPLAYERS, sizeof (int));
CHECKALLOC (score);
- n = 0;
+ int n = 0;
if (file) {
char *buffer = loaddata (file);
if (buffer) {
free (buffer);
}
- int i;
- for (i = 0; i < nbplayers; i++) {
+ for (int i = 0; i < nbplayers; i++) {
drawwindow (game[i], score[i], xdrawwin[i], ydrawwin[i], 0);
}
endwin ();
freeplay (play);
- for (n = 0; n < MAXNBPLAYERS; n++) {
+ for (int n = 0; n < MAXNBPLAYERS; n++) {
freeplay (turn[n]);
freedraw (game[n]);
}