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 28 29 30 31 32 33 34 35 36 37 38 39
|
// This file is part of Golly.
// See docs/License.html for the copyright notice.
#ifndef RULELOADERALGO_H
#define RULELOADERALGO_H
#include "ghashbase.h"
#include "ruletable_algo.h"
#include "ruletreealgo.h"
/**
* This algorithm loads rule data from external files.
*/
class ruleloaderalgo : public ghashbase {
public:
ruleloaderalgo();
virtual ~ruleloaderalgo();
virtual state slowcalc(state nw, state n, state ne, state w, state c,
state e, state sw, state s, state se);
virtual const char* setrule(const char* s);
virtual const char* getrule();
virtual const char* DefaultRule();
virtual int NumCellStates();
static void doInitializeAlgoInfo(staticAlgoInfo &);
protected:
ruletable_algo* LocalRuleTable; // local instance of RuleTable algo
ruletreealgo* LocalRuleTree; // local instance of RuleTree algo
enum RuleTypes {TABLE, TREE} rule_type;
void SetAlgoVariables(RuleTypes ruletype);
const char* LoadTableOrTree(FILE* rulefile, const char* rule);
};
extern const char* noTABLEorTREE;
#endif
|