Files
jminos/src/Pieces/PiecesFiles.h
zulianc 8342bf3969
All checks were successful
Linux arm64 / Build (push) Successful in 12m30s
petits [[nodiscard]] pour le fun
2025-06-19 22:31:41 +02:00

43 lines
1.5 KiB
C++

#pragma once
#include "Piece.h"
#include <vector>
#include <string>
/**
* Manages creating pieces files and importing the data back from them
*/
class PiecesFiles {
public:
/**
* Default constructor
*/
PiecesFiles();
/**
* Generate a file containing all the pieces of the specified size
* @return If the pieces are saved correctly
*/
[[nodiscard]] bool savePieces(int polyominoSize) const;
/**
* Generate a file containing all the pieces of the specified size, assuming they have been correctly generated
* @return If the piece are saved correctly
*/
[[nodiscard]] bool savePieces(int polyominoSize, std::vector<Polyomino>& polyominoes) const;
/**
* Replace the content of the vectors by the pieces of the specified size, if the pieces can't be loaded correctly the vectors stays untouched
* @return If the pieces could be loaded correctly
*/
[[nodiscard]] bool loadPieces(int polyominoSize, std::vector<Piece>& pieces, std::vector<int>& convexPieces, std::vector<int>& holelessPieces, std::vector<int>& otherPieces) const;
/**
* Puts the path to the piece file of the specified size in order, if the data folder wasn't found the string stays untouched
* @return If the data folder was found
*/
bool getFilePath(int polyominoSize, std::string& filePath) const;
};