#include "gecode/minimodel.hh"
#include "gecode/int/element.hh"
#include "qsolver.hh"
#include "implicative.hh"
Include dependency graph for connect-5-3-3-3.cpp:
Go to the source code of this file.
Namespaces | |
namespace | Gecode |
namespace | Gecode::MiniModel |
Defines | |
#define | UNIVERSAL true |
#define | EXISTENTIAL false |
#define | WIDTH 3 |
#define | HEIGHT 3 |
#define | DEPTH 9 |
#define | VARS_PER_BOARD (WIDTH*HEIGHT) |
#define | VARS_PER_STEP (VARS_PER_BOARD + 1) |
#define | CELL_VCODE(I, J, TIME) |
#define | MOVE_VCODE(TIME) ( VARS_PER_BOARD + ((TIME)-1)*VARS_PER_STEP ) |
#define | AUX_VCODE(N) ( (N) + CELL_VCODE(HEIGHT,WIDTH,DEPTH) ) |
#define | B(I, J, TIME) p.var(CELL_VCODE(I,J,TIME)) |
#define | M(TIME) p.var(MOVE_VCODE(TIME)) |
#define | AUX(N) p.bvar(AUX_VCODE(N)) |
Functions | |
int | main () |
#define AUX | ( | N | ) | p.bvar(AUX_VCODE(N)) |
#define AUX_VCODE | ( | N | ) | ( (N) + CELL_VCODE(HEIGHT,WIDTH,DEPTH) ) |
Definition at line 26 of file connect-5-3-3-3.cpp.
#define B | ( | I, | |||
J, | |||||
TIME | ) | p.var(CELL_VCODE(I,J,TIME)) |
#define CELL_VCODE | ( | I, | |||
J, | |||||
TIME | ) |
Value:
( (((I)-1)*WIDTH) + ((J)-1) + \ (((TIME)==0)? 0 : (((TIME))*(VARS_PER_STEP))))
Definition at line 21 of file connect-5-3-3-3.cpp.
#define DEPTH 9 |
Definition at line 16 of file connect-5-3-3-3.cpp.
#define EXISTENTIAL false |
#define HEIGHT 3 |
Definition at line 15 of file connect-5-3-3-3.cpp.
#define M | ( | TIME | ) | p.var(MOVE_VCODE(TIME)) |
#define MOVE_VCODE | ( | TIME | ) | ( VARS_PER_BOARD + ((TIME)-1)*VARS_PER_STEP ) |
Definition at line 24 of file connect-5-3-3-3.cpp.
#define UNIVERSAL true |
#define VARS_PER_BOARD (WIDTH*HEIGHT) |
Definition at line 18 of file connect-5-3-3-3.cpp.
#define VARS_PER_STEP (VARS_PER_BOARD + 1) |
Definition at line 19 of file connect-5-3-3-3.cpp.
#define WIDTH 3 |
Definition at line 14 of file connect-5-3-3-3.cpp.
int main | ( | ) |
Definition at line 35 of file connect-5-3-3-3.cpp.
References AUX, B, Implicative::bvar(), EXISTENTIAL, M, Implicative::makeStructure(), Implicative::nextScope(), Implicative::QBoolVar(), Implicative::QIntVar(), QSolver::solve(), Implicative::space(), UNIVERSAL, and Implicative::var().