mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-01-20 14:13:02 +00:00
rulegen-tests improved
This commit is contained in:
parent
a98d9cb699
commit
914f2b9a57
@ -470,7 +470,7 @@ void print_rules() {
|
|||||||
for(auto r: ts.rules)
|
for(auto r: ts.rules)
|
||||||
print(hlog, " ", rule_name(r));
|
print(hlog, " ", rule_name(r));
|
||||||
if(ts.giver.at)
|
if(ts.giver.at)
|
||||||
print(hlog, " ", get_aid(ts.giver));
|
print(hlog, " ", ts.giver);
|
||||||
else
|
else
|
||||||
print(hlog, " (no giver)");
|
print(hlog, " (no giver)");
|
||||||
|
|
||||||
@ -490,7 +490,7 @@ void restart_game_on(hrmap *m) {
|
|||||||
|
|
||||||
bool add_header = false;
|
bool add_header = false;
|
||||||
bool add_labels = true;
|
bool add_labels = true;
|
||||||
string test_stats = "gsmctTlAhf";
|
string test_stats = "gsmTPcuQthlpf"; // "gsmctTlAhf";
|
||||||
|
|
||||||
pair<int,int> longest_shortcut() {
|
pair<int,int> longest_shortcut() {
|
||||||
int res = 0;
|
int res = 0;
|
||||||
@ -764,8 +764,8 @@ void test_current(string tesname) {
|
|||||||
|
|
||||||
// for(auto& sh: shortcuts) println(hlog, sh.first, " : ", isize(sh.second), " shortcuts (CSV)");
|
// for(auto& sh: shortcuts) println(hlog, sh.first, " : ", isize(sh.second), " shortcuts (CSV)");
|
||||||
|
|
||||||
|
/*if(status == "ACC")*/ print_rules();
|
||||||
if(status != "ACC") treestates = alt_treestates;
|
if(status != "ACC") treestates = alt_treestates;
|
||||||
if(status == "ACC") print_rules();
|
|
||||||
/* for(auto& a: analyzers)
|
/* for(auto& a: analyzers)
|
||||||
println(hlog, "analyzer ", a.first, " size is ", isize(a.second.spread)); */
|
println(hlog, "analyzer ", a.first, " size is ", isize(a.second.spread)); */
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
@ -837,6 +837,7 @@ void set_arcm(eVariation v, string symbol) {
|
|||||||
|
|
||||||
bool set_general(const string& s) {
|
bool set_general(const string& s) {
|
||||||
stop_game();
|
stop_game();
|
||||||
|
arb::current.name = s;
|
||||||
if(s[0] == 'X') {
|
if(s[0] == 'X') {
|
||||||
int a, b, c, d;
|
int a, b, c, d;
|
||||||
sscanf(s.c_str()+2, "%d%d%d%d", &a, &b, &c, &d);
|
sscanf(s.c_str()+2, "%d%d%d%d", &a, &b, &c, &d);
|
||||||
@ -906,6 +907,58 @@ void test_from_file(string list) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void rulecat(string list) {
|
||||||
|
|
||||||
|
set_dir(list);
|
||||||
|
|
||||||
|
vector<string> filenames;
|
||||||
|
std::ifstream is("devmods/rulegen-tests/" + list + ".lst");
|
||||||
|
string s;
|
||||||
|
while(getline(is, s)) {
|
||||||
|
while(s != "" && s[0] == ' ') s = s.substr(1);
|
||||||
|
if(s != "" && s[0] != '#') filenames.push_back(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
for(const string& s: filenames) {
|
||||||
|
string cat1;
|
||||||
|
/*
|
||||||
|
if(s[0] == 'X' && s[4] == '1')
|
||||||
|
cat1 = "regular";
|
||||||
|
else if(s[0] == 'X' && s[4] == '0')
|
||||||
|
cat1 = "bitruncated";
|
||||||
|
else if(s[0] == 'X' && s[4] == '5' && s[6] == 1 && s[7] == 0)
|
||||||
|
cat1 = "regular"; */
|
||||||
|
if(0) ;
|
||||||
|
else if(s[0] == 'X')
|
||||||
|
cat1 = "variations";
|
||||||
|
/*
|
||||||
|
else if(s[0] == 'P' && is_reg(s))
|
||||||
|
cat1 = "regular";
|
||||||
|
else if(s[0] == 'D' && is_reg(s))
|
||||||
|
cat1 = "regular";
|
||||||
|
else if(s[0] == 'B' && is_reg(s))
|
||||||
|
cat1 = "bitruncated";
|
||||||
|
*/
|
||||||
|
else if(s[0] == 'P')
|
||||||
|
cat1 = "archimedean";
|
||||||
|
else if(s[0] == 'D')
|
||||||
|
cat1 = "lavasz";
|
||||||
|
else if(s[0] == 'B')
|
||||||
|
cat1 = "archibi";
|
||||||
|
else {
|
||||||
|
int i = 0;
|
||||||
|
while(s[i] != '/') i++;
|
||||||
|
i++;
|
||||||
|
int i1 = i;
|
||||||
|
while(s[i] != '/') i++;
|
||||||
|
cat1 = s.substr(i1, i-i1);
|
||||||
|
if(cat1 == "multitile" && s.substr(i+1, 9) == "polyforms")
|
||||||
|
cat1 = "polyforms";
|
||||||
|
}
|
||||||
|
printf("CSV;%s;%s\n", cat1.c_str(), s.c_str());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void label_all(int i, int mode) {
|
void label_all(int i, int mode) {
|
||||||
queue<tcell*> to_label;
|
queue<tcell*> to_label;
|
||||||
auto m = dynamic_cast<hrmap_testproto*> (currentmap);
|
auto m = dynamic_cast<hrmap_testproto*> (currentmap);
|
||||||
@ -989,6 +1042,11 @@ int testargs() {
|
|||||||
shift();
|
shift();
|
||||||
test_from_file(args());
|
test_from_file(args());
|
||||||
}
|
}
|
||||||
|
else if(argis("-rulecat")) {
|
||||||
|
PHASEFROM(3);
|
||||||
|
shift();
|
||||||
|
rulecat(args());
|
||||||
|
}
|
||||||
else if(argis("-trv")) {
|
else if(argis("-trv")) {
|
||||||
shift(); test_rotate_val = argi();
|
shift(); test_rotate_val = argi();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user