testsAndMisc/C/opening_learner/mistakes.h

38 lines
734 B
C
Raw Normal View History

2025-09-08 16:58:17 +02:00
#ifndef MISTAKES_H
#define MISTAKES_H
#include <stdbool.h>
2025-11-01 20:11:45 +01:00
#include <stddef.h>
2025-09-08 16:58:17 +02:00
// A lightweight mistake store in memory + file persistence.
2025-11-01 20:11:45 +01:00
typedef struct
{
2025-09-08 16:58:17 +02:00
char fen[128];
char best_move[8];
// PGN-like ply list in UCI for context
char line[512];
} Mistake;
2025-11-01 20:11:45 +01:00
typedef struct
{
2025-09-08 16:58:17 +02:00
Mistake *items;
2025-11-01 20:11:45 +01:00
size_t count;
size_t cap;
2025-09-08 16:58:17 +02:00
} MistakeList;
2025-11-01 20:11:45 +01:00
typedef struct
{
const char *fen;
const char *best_move;
const char *line;
} MistakeEntry;
2025-09-08 16:58:17 +02:00
void mistakes_init(MistakeList *ml);
void mistakes_free(MistakeList *ml);
2025-11-01 20:11:45 +01:00
void mistakes_add(MistakeList *ml, const MistakeEntry *entry);
2025-09-08 16:58:17 +02:00
bool mistakes_save(const MistakeList *ml, const char *path);
bool mistakes_load(MistakeList *ml, const char *path);
#endif