This repository has been archived on 2026-10-11. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
lightup/game_tools.h
T
2022-02-17 16:35:13 +01:00

58 lines
1.3 KiB
C

/**
* @file game_tools.h
* @brief Game Tools.
* @details See @ref index for further details.
* @copyright University of Bordeaux. All rights reserved, 2021.
*
**/
#ifndef __GAME_TOOLS_H__
#define __GAME_TOOLS_H__
#include <stdbool.h>
#include <stdio.h>
#include "game.h"
/**
* @name Game Tools
* @{
*/
/**
* @brief Creates a game by loading its description from a text file.
* @details See the file format description in @ref index.
* @param filename input file
* @return the loaded game
**/
game game_load(char* filename);
/**
* @brief Saves a game in a text file.
* @details See the file format description in @ref index.
* @param g game to save
* @param filename output file
**/
void game_save(cgame g, char* filename);
/**
* @brief Computes the solution of a given game
* @param g the game to solve
* @details The game @p g is updated with the first solution found. If there are
* no solution for this game, @p g must be unchanged.
* @return true if a solution is found, false otherwise
*/
bool game_solve(game g);
/**
* @brief Computes the total number of solutions of a given game.
* @param g the game
* @details The game @p g must be unchanged.
* @return the number of solutions
*/
uint game_nb_solutions(cgame g);
/**
* @}
*/
#endif // __GAME_TOOLS_H__