Change Solver puzzle title use and add optional input file name suffix

This commit is contained in:
2025-02-14 17:13:05 +01:00
parent 28baf4db3e
commit 979961d60e
29 changed files with 95 additions and 58 deletions

View File

@@ -24,7 +24,7 @@ class BridgeRepair
{
public:
virtual const std::string getPuzzleName() const override;
virtual const std::string getInputFileName() const override;
virtual const int getPuzzleDay() const override;
virtual void processDataLine(const std::string& line) override;
virtual void finish() override;
private:

View File

@@ -24,7 +24,7 @@ class CeresSearch
{
public:
virtual const std::string getPuzzleName() const override;
virtual const std::string getInputFileName() const override;
virtual const int getPuzzleDay() const override;
virtual void finish() override;
private:
const char xmas_[4] = { 'X', 'M', 'A', 'S' };

View File

@@ -26,7 +26,7 @@ class DiskFragmenter
{
public:
virtual const std::string getPuzzleName() const override;
virtual const std::string getInputFileName() const override;
virtual const int getPuzzleDay() const override;
virtual void processDataLine(const std::string& line) override;
virtual void finish() override;
private:

View File

@@ -26,7 +26,7 @@ class GardenGroups
{
public:
virtual const std::string getPuzzleName() const override;
virtual const std::string getInputFileName() const override;
virtual const int getPuzzleDay() const override;
virtual void finish() override;
private:
void traverseRegion(Grid<bool>& isVisited, std::stack<Point2>& otherRegionsStack, const Point2& start);

View File

@@ -22,7 +22,7 @@ class GuardGallivant
{
public:
virtual const std::string getPuzzleName() const override;
virtual const std::string getInputFileName() const override;
virtual const int getPuzzleDay() const override;
virtual void processDataLine(const std::string& line) override;
virtual void finish() override;
private:

View File

@@ -24,7 +24,7 @@ class HistorianHysteria
{
public:
virtual const std::string getPuzzleName() const override;
virtual const std::string getInputFileName() const override;
virtual const int getPuzzleDay() const override;
virtual void processDataLine(const std::string& line) override;
virtual void finish() override;
private:

View File

@@ -25,7 +25,7 @@ class HoofIt
{
public:
virtual const std::string getPuzzleName() const override;
virtual const std::string getInputFileName() const override;
virtual const int getPuzzleDay() const override;
virtual void finish() override;
private:
static constexpr char getTrailheadChar();

View File

@@ -22,7 +22,7 @@ class LanParty : public Solver
{
public:
virtual const std::string getPuzzleName() const override;
virtual const std::string getInputFileName() const override;
virtual const int getPuzzleDay() const override;
virtual void processDataLine(const std::string& line) override;
virtual void finish() override;
private:

View File

@@ -25,7 +25,7 @@ class MullItOver
public:
MullItOver();
virtual const std::string getPuzzleName() const override;
virtual const std::string getInputFileName() const override;
virtual const int getPuzzleDay() const override;
virtual void processDataLine(const std::string& line) override;
virtual void finish() override;
private:

View File

@@ -24,7 +24,7 @@ class PlutonianPebbles : public Solver
{
public:
virtual const std::string getPuzzleName() const override;
virtual const std::string getInputFileName() const override;
virtual const int getPuzzleDay() const override;
virtual void processDataLine(const std::string& line) override;
virtual void finish() override;
private:

View File

@@ -26,7 +26,7 @@ class PrintQueue
public:
PrintQueue();
virtual const std::string getPuzzleName() const override;
virtual const std::string getInputFileName() const override;
virtual const int getPuzzleDay() const override;
virtual void processDataLine(const std::string& line) override;
virtual void finish() override;
private:

View File

@@ -24,7 +24,7 @@ class RedNosedReports
{
public:
virtual const std::string getPuzzleName() const override;
virtual const std::string getInputFileName() const override;
virtual const int getPuzzleDay() const override;
virtual void processDataLine(const std::string& line) override;
virtual void finish() override;
private:

View File

@@ -27,7 +27,7 @@ class ResonantCollinearity
{
public:
virtual const std::string getPuzzleName() const override;
virtual const std::string getInputFileName() const override;
virtual const int getPuzzleDay() const override;
virtual void finish() override;
private:
static constexpr char getEmptyChar();

View File

@@ -20,15 +20,20 @@
class Solver
{
public:
Solver();
Solver(const int inputFileNameSuffix = 0);
virtual ~Solver(){};
const std::string getPuzzleTitle() const;
const std::string getInputFileName() const;
virtual const std::string getPuzzleName() const = 0;
virtual const std::string getInputFileName() const = 0;
virtual void processDataLine(const std::string &line) = 0;
virtual const int getPuzzleDay() const = 0;
virtual void processDataLine(const std::string& line) = 0;
virtual void finish() = 0;
long long int getResultPart1() const;
long long int getResultPart2() const;
protected:
long long int part1;
long long int part2;
private:
int inputFileNameSuffix_;
std::string clean(const std::string& original) const;
};