HyperRogue  11.3d
game/visualization engine based on non-Euclidean geometry
Classes | Namespaces | Macros | Typedefs | Functions | Variables
dpgen.cpp File Reference

dual geometry puzzle generator More...

#include "hyper.h"

Classes

struct  hr::dpgen::puzzle
 

Namespaces

 hr
 

Macros

#define A   4,2
 

Typedefs

typedef tuple< cell *, cell *, int > hr::dpgen::cpos
 

Functions

void hr::dpgen::enqueue (cpos p, int d, int li)
 
void hr::dpgen::solve (cpos at)
 
void hr::dpgen::launch (int seed, int elimit, int hlimit)
 
EX void hr::dpgen::check ()
 
EX void hr::dpgen::show_menu ()
 

Variables

EX bool hr::dpgen::in
 
map< cpos, int > hr::dpgen::visited
 
vector< cpos > hr::dpgen::all
 
vector< int > hr::dpgen::last
 
int hr::dpgen::last_elimit
 
int hr::dpgen::last_hlimit
 
vector< puzzle > hr::dpgen::puzzles
 
bool hr::dpgen::hide_random = false
 
int hr::dpgen::last_seed = 0
 
auto hr::dpgen::sbhook
 

Detailed Description

dual geometry puzzle generator

Variable Documentation

◆ puzzles

vector<puzzle> hr::dpgen::puzzles
Initial value:
= {
{"easy 1", 1, 3, 2},
{"easy 2", 2, 3, 2},
{"easy 3", 5, 3, 2},
{"medium 1", 7, 3, 3},
{"medium 2", 11, 3, 3},
{"hard 1", 1, 4, 3},
{"hard 2", 1, 3, 4},
{"hard 3", 1, 3, 5},
}

◆ sbhook

auto hr::dpgen::sbhook
Initial value:
= addHook(hooks_args, 100, [] {
using namespace arg;
if(0) ;
else if(argis("-dpgen")) {
shift(); last_seed = argi();
shift(); last_elimit = argi();
shift(); last_hlimit = argi();
launch(last_seed, last_elimit, last_hlimit);
}
else if(argis("-d:dpgen")) {
pushScreen(show_menu);
}
else if(argis("-dph")) {
last_seed = 1;
last_elimit = 3;
last_hlimit = 2;
launch(1, 3, 2);
hide_random = true;
pushScreen(show_menu);
}
else return 1;
return 0;
}) + addHook(hooks_o_key, 91, [] {
if(in) return named_dialog(XLAT("select a puzzle"), show_menu);
else return named_functionality();
})
hr::XLAT
string XLAT(string)
Definition: language.cpp:319