{
play_t *play = (play_t *) malloc (sizeof (play_t));
CHECKALLOC (play);
- play->tab = (char *) malloc (xsize * ysize);
+ play->tab = (char *) calloc (1, xsize * ysize + 1);
CHECKALLOC (play->tab);
memset (play->tab, ' ', xsize * ysize);
play->xsize = xsize;
{
draw_t *draw = (draw_t *) malloc (sizeof (draw_t));
CHECKALLOC (draw);
- draw->tiles = (char *) calloc (1, nbtiles);
+ draw->tiles = (char *) calloc (1, nbtiles + 1);
CHECKALLOC (draw->tiles);
draw->nbtiles = nbtiles;
return draw;
}
}
+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);
+
+ int l = sprintf (buffer, "nbplayers: %d\n", nbplayers);
+ l += sprintf (buffer + l, "lang: %s\n", lang);
+ l += sprintf (buffer + l, "board: %s\n", board);
+ l += sprintf (buffer + l, "play: %s\n", play->tab);
+ l += sprintf (buffer + l, "draw: %s\n", draw->tiles);
+ for (i = 0; i < nbplayers; i++) {
+ l += sprintf (buffer + l, "game[%d]: %s\n", i, game[i]->tiles);
+ }
+ l += sprintf (buffer + l, "n: %d\n", n);
+ l += sprintf (buffer + l, "turn[%d]: %s\n", n, turn[n]->tab);
+ for (i = 0; i < nbplayers; i++) {
+ l += sprintf (buffer + l, "score[%d]: %d\n", i, score[i]);
+ }
+
+ return buffer;
+}
+
+int writedata (char *filename, char *data)
+{
+ int ret = 0;
+ FILE *fd = fopen (filename, "w");
+ if (fd) {
+ fwrite (data, strlen (data), 1, fd);
+ fclose (fd);
+ ret = 1;
+ }
+ return ret;
+}
+
/* vim: set ts=4 sw=4 et: */
void checkspellingfromcache (word_t *words, char **listofwords);
+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 writedata (char *filename, char *data);
+
#endif /* __FUNCTION_H__ */
/* vim: set ts=4 sw=4 et: */