about summary refs log tree commit diff stats
path: root/Source/Validator.h
blob: 2a102dd141470c2503814eebe526ce1f46da0e52 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#pragma once
#include <vector>
#include <tuple>

#ifndef NEGATIONS_CANCEL_NEGATIONS
#define NEGATIONS_CANCEL_NEGATIONS true
#endif

#ifndef SIMPLE_POLYOMINOS
#define SIMPLE_POLYOMINOS true
#endif

#ifndef DISABLE_CACHE
#define DISABLE_CACHE false
#endif

struct Region{};
class Puzzle;
struct Pos;
class Validator {
public:
    static void Validate(Puzzle& p);

private:
    static void RegionCheckNegations(Puzzle& p, const Region& r);
    static std::vector<Pos> RegionCheck(Puzzle& p, const Region& r);
};